CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Bugs

Bug in decomposePar and reconstructPar

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 25, 2010, 13:38
Default Bug in decomposePar and reconstructPar
  #1
New Member
 
Jutta Adelsberger
Join Date: Mar 2009
Posts: 4
Rep Power: 17
jutta is on a distinguished road
Hi,

while decomposing my initial fields I recognized a bug: In contrast to vol and point fields, only surfaceScalarFields are implemented in decomposePar and reconstructPar but no other surface<type>Fields. I found no reason for this restriction, so I added the missing field types in decomposePar.C and reconstructPar.C. I tested all types and it works fine.

For the sake of completeness, could you add it in 1.6.x, please?

Below you find my changes in the two mentioned files.

Best regards,
Jutta

Code:
diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
index b2e08a6..5f80b17 100644
--- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
+++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
@@ -316,6 +316,17 @@ int main(int argc, char *argv[])
     PtrList<surfaceScalarField> surfaceScalarFields;
     readFields(mesh, objects, surfaceScalarFields);
 
+    PtrList<surfaceVectorField> surfaceVectorFields;
+    readFields(mesh, objects, surfaceVectorFields);
+
+    PtrList<surfaceSphericalTensorField> surfaceSphericalTensorFields;
+    readFields(mesh, objects, surfaceSphericalTensorFields);
+
+    PtrList<surfaceSymmTensorField> surfaceSymmTensorFields;
+    readFields(mesh, objects, surfaceSymmTensorFields);
+
+    PtrList<surfaceTensorField> surfaceTensorFields;
+    readFields(mesh, objects, surfaceTensorFields);
 
     // Construct the point fields
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -600,6 +611,10 @@ int main(int argc, char *argv[])
          || volSymmTensorFields.size()
          || volTensorFields.size()
          || surfaceScalarFields.size()
+         || surfaceVectorFields.size()
+         || surfaceSphericalTensorFields.size()
+         || surfaceSymmTensorFields.size()
+         || surfaceTensorFields.size()
         )
         {
             labelIOList faceProcAddressing
@@ -631,6 +646,10 @@ int main(int argc, char *argv[])
             fieldDecomposer.decomposeFields(volTensorFields);
 
             fieldDecomposer.decomposeFields(surfaceScalarFields);
+            fieldDecomposer.decomposeFields(surfaceVectorFields);
+            fieldDecomposer.decomposeFields(surfaceSphericalTensorFields);
+            fieldDecomposer.decomposeFields(surfaceSymmTensorFields);
+            fieldDecomposer.decomposeFields(surfaceTensorFields);
         }
 
 
diff --git a/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C b/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C
index dd014c2..d2d61e5 100644
--- a/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C
+++ b/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C
@@ -181,6 +181,10 @@ int main(int argc, char *argv[])
          || objects.lookupClass(volSymmTensorField::typeName).size()
          || objects.lookupClass(volTensorField::typeName).size()
          || objects.lookupClass(surfaceScalarField::typeName).size()
+         || objects.lookupClass(surfaceVectorField::typeName).size()
+         || objects.lookupClass(surfaceSphericalTensorField::typeName).size()
+         || objects.lookupClass(surfaceSymmTensorField::typeName).size()
+         || objects.lookupClass(surfaceTensorField::typeName).size()
         )
         {
             Info << "Reconstructing FV fields" << nl << endl;
@@ -225,6 +229,26 @@ int main(int argc, char *argv[])
                 objects,
                 selectedFields
             );
+            fvReconstructor.reconstructFvSurfaceFields<vector>
+            (
+                objects,
+                selectedFields
+            );
+            fvReconstructor.reconstructFvSurfaceFields<sphericalTensor>
+            (
+                objects,
+                selectedFields
+            );
+            fvReconstructor.reconstructFvSurfaceFields<symmTensor>
+            (
+                objects,
+                selectedFields
+            );
+            fvReconstructor.reconstructFvSurfaceFields<tensor>
+            (
+                objects,
+                selectedFields
+            );
         }
         else
         {
jutta is offline   Reply With Quote

Old   March 26, 2010, 05:51
Default
  #2
Senior Member
 
Mattijs Janssens
Join Date: Mar 2009
Posts: 1,419
Rep Power: 26
mattijs is on a distinguished road
Thanks - done.
mattijs is offline   Reply With Quote

Reply

Tags
decomposepar, reconstructpar, surfacefields


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Running decomposePar / reconstructPar as parallel apps? carcass OpenFOAM Running, Solving & CFD 3 January 17, 2024 08:19
Problems with reconstructPar after run interDyMFoam FG_HSRM OpenFOAM 3 December 13, 2011 12:16
Mpich and OpenFOAM14 problem with decomposePar conry OpenFOAM Installation 2 May 7, 2007 06:25
ReconstructPar error r2d2 OpenFOAM Pre-Processing 7 September 12, 2006 10:37


All times are GMT -4. The time now is 14:10.