CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Pre-Processing (https://www.cfd-online.com/Forums/openfoam-pre-processing/)
-   -   createPatch produces error "faces with negative volume decomposition" (https://www.cfd-online.com/Forums/openfoam-pre-processing/125427-createpatch-produces-error-faces-negative-volume-decomposition.html)

DaSh October 25, 2013 05:39

createPatch produces error "faces with negative volume decomposition"
 
Hello All,

I just rebuild a closed cylindrical mesh into a cyclic cylindrical mesh. For the purpose of reducing the number etc. I used createPatch, respective a createPatchdict. Everything worked fine so far, but now I get this error when trying to run pisoFoam:

Code:

Create time

Create mesh for time = 0

Reading field p

Reading field U

Reading/calculating face flux field phi

Selecting incompressible transport model Newtonian
Selecting turbulence model type LESModel
Selecting LES turbulence model Smagorinsky
#0  Foam::error::printStack(Foam::Ostream&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1  Foam::sigFpe::sigHandler(int) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#2  in "/lib64/libc.so.6"
#3  Foam::divide(Foam::Field<double>&, double const&, Foam::UList<double> const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#4  Foam::operator/(double const&, Foam::tmp<Foam::Field<double> > const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#5  Foam::surfaceInterpolation::makeDeltaCoeffs() const in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libfiniteVolume.so"
#6  Foam::surfaceInterpolation::deltaCoeffs() const in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libfiniteVolume.so"
#7  Foam::incompressible::LESModel::LESModel(Foam::word const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libincompressibleLESModels.so"
#8  Foam::incompressible::LESModels::Smagorinsky::Smagorinsky(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&, Foam::word const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libincompressibleLESModels.so"
#9  Foam::incompressible::LESModel::adddictionaryConstructorToTable<Foam::incompressible::LESModels::Smagorinsky>::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libincompressibleLESModels.so"
#10  Foam::incompressible::LESModel::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libincompressibleLESModels.so"
#11  Foam::incompressible::turbulenceModel::addturbulenceModelConstructorToTable<Foam::incompressible::LESModel>::NewturbulenceModel(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libincompressibleLESModels.so"
#12  Foam::incompressible::turbulenceModel::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libincompressibleTurbulenceModel.so"
#13 
 in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/pisoFoam"
#14  __libc_start_main in "/lib64/libc.so.6"
#15 
 at /home/abuild/rpmbuild/BUILD/glibc-2.15/csu/../sysdeps/x86_64/elf/start.S:116
Gleitkomma-Ausnahme

I did checkMesh -allGeometry -allTopology and I found out, that createPatch produces the following
Code:

Create polyMesh for time = 0

Time = 0

Mesh stats
    points:          456000
    faces:            1319760
    internal faces:  1272240
    cells:            432000
    boundary patches: 6
    point zones:      0
    face zones:      0
    cell zones:      0

Overall number of cells of each type:
    hexahedra:    432000
    prisms:        0
    wedges:        0
    pyramids:      0
    tet wedges:    0
    tetrahedra:    0
    polyhedra:    0

Checking topology...
    Boundary definition OK.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
    Topological cell zip-up check OK.
    Face-face connectivity OK.
    Number of regions: 1 (OK).

Checking patch topology for multiply connected surfaces ...
    Patch              Faces    Points  Surface topology                  Bounding box
    aeussereWand        18000    18240    ok (non-closed singly connected)  (-1 0 -1) (1 5 1)
    innereWand          18000    18240    ok (non-closed singly connected)  (-0.5 0 -0.5) (0.5 5 0.5)
    cyc_half0          2880    3025    ok (non-closed singly connected)  (-1 0 0) (1 0 1)
    cyc_half1          2880    3025    ok (non-closed singly connected)  (-1 0 -1) (1 0 0)
    cyc_half10          2880    3025    ok (non-closed singly connected)  (-1 5 0) (1 5 1)
    cyc_half11          2880    3025    ok (non-closed singly connected)  (-1 5 -1) (1 5 0)

Checking geometry...
    Overall domain bounding box (-1 0 -1) (1 5 1)
    Mesh (non-empty, non-wedge) directions (1 1 1)
    Mesh (non-empty) directions (1 1 1)
    Boundary openness (1.00823e-17 -8.79755e-18 -1.68404e-16) OK.
    Max cell openness = 2.53899e-16 OK.
    Max aspect ratio = 5.92719 OK.
    Minimum face area = 0.000278357. Maximum face area = 0.00174528.  Face area magnitudes OK.
    Min volume = 1.85571e-05. Max volume = 3.59782e-05.  Total volume = 11.7796.  Cell volumes OK.
    Mesh non-orthogonality Max: 0.000138361 average: 2.95756e-06
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 0.0127689 OK.
    Coupled point location match (average 0) OK.
 ***Error in face tets: 11520 faces with low quality or negative volume decomposition tets.
  <<Writing 11520 faces with low quality or negative volume decomposition tets to set lowQualityTetFaces
    Min/max edge length = 0.0130896 0.0666667 OK.
    All angles in faces OK.
    Face flatness (1 = flat, 0 = butterfly) : average = 1  min = 1
    All face flatness OK.
    Cell determinant (wellposedness) : minimum: 0.260484 average: 3.33264
    Cell determinant check OK.
    Concave cell check OK.

Failed 1 mesh checks.

Problem is, that the 11520 (=4 * 2880, these are the cyclics) negative volumes, were not there before. The closed mesh was fine!

Do you have any suggestions concerning this? Is it a bug? Why do I have these negative cells now, since I did not change the order of vertices for the faces?

Help is indeed welcome :)

Cheers,
Danesh

Edit: "Gleitkomma-Ausnahme" is german for floating point exception :-D

DaSh October 25, 2013 06:39

I walked around the problem by not using createPatch. But I guess, solving this problem (if not man made), might be helpful for others, too.

Gang Wang March 24, 2020 12:46

Quote:

Originally Posted by DaSh (Post 458950)
Hello All,

I just rebuild a closed cylindrical mesh into a cyclic cylindrical mesh. For the purpose of reducing the number etc. I used createPatch, respective a createPatchdict. Everything worked fine so far, but now I get this error when trying to run pisoFoam:

Code:

Create time

Create mesh for time = 0

Reading field p

Reading field U

Reading/calculating face flux field phi

Selecting incompressible transport model Newtonian
Selecting turbulence model type LESModel
Selecting LES turbulence model Smagorinsky
#0  Foam::error::printStack(Foam::Ostream&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1  Foam::sigFpe::sigHandler(int) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#2  in "/lib64/libc.so.6"
#3  Foam::divide(Foam::Field<double>&, double const&, Foam::UList<double> const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#4  Foam::operator/(double const&, Foam::tmp<Foam::Field<double> > const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#5  Foam::surfaceInterpolation::makeDeltaCoeffs() const in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libfiniteVolume.so"
#6  Foam::surfaceInterpolation::deltaCoeffs() const in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libfiniteVolume.so"
#7  Foam::incompressible::LESModel::LESModel(Foam::word const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libincompressibleLESModels.so"
#8  Foam::incompressible::LESModels::Smagorinsky::Smagorinsky(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&, Foam::word const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libincompressibleLESModels.so"
#9  Foam::incompressible::LESModel::adddictionaryConstructorToTable<Foam::incompressible::LESModels::Smagorinsky>::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libincompressibleLESModels.so"
#10  Foam::incompressible::LESModel::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libincompressibleLESModels.so"
#11  Foam::incompressible::turbulenceModel::addturbulenceModelConstructorToTable<Foam::incompressible::LESModel>::NewturbulenceModel(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libincompressibleLESModels.so"
#12  Foam::incompressible::turbulenceModel::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libincompressibleTurbulenceModel.so"
#13 
 in "/opt/net/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/pisoFoam"
#14  __libc_start_main in "/lib64/libc.so.6"
#15 
 at /home/abuild/rpmbuild/BUILD/glibc-2.15/csu/../sysdeps/x86_64/elf/start.S:116
Gleitkomma-Ausnahme

I did checkMesh -allGeometry -allTopology and I found out, that createPatch produces the following
Code:

Create polyMesh for time = 0

Time = 0

Mesh stats
    points:          456000
    faces:            1319760
    internal faces:  1272240
    cells:            432000
    boundary patches: 6
    point zones:      0
    face zones:      0
    cell zones:      0

Overall number of cells of each type:
    hexahedra:    432000
    prisms:        0
    wedges:        0
    pyramids:      0
    tet wedges:    0
    tetrahedra:    0
    polyhedra:    0

Checking topology...
    Boundary definition OK.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
    Topological cell zip-up check OK.
    Face-face connectivity OK.
    Number of regions: 1 (OK).

Checking patch topology for multiply connected surfaces ...
    Patch              Faces    Points  Surface topology                  Bounding box
    aeussereWand        18000    18240    ok (non-closed singly connected)  (-1 0 -1) (1 5 1)
    innereWand          18000    18240    ok (non-closed singly connected)  (-0.5 0 -0.5) (0.5 5 0.5)
    cyc_half0          2880    3025    ok (non-closed singly connected)  (-1 0 0) (1 0 1)
    cyc_half1          2880    3025    ok (non-closed singly connected)  (-1 0 -1) (1 0 0)
    cyc_half10          2880    3025    ok (non-closed singly connected)  (-1 5 0) (1 5 1)
    cyc_half11          2880    3025    ok (non-closed singly connected)  (-1 5 -1) (1 5 0)

Checking geometry...
    Overall domain bounding box (-1 0 -1) (1 5 1)
    Mesh (non-empty, non-wedge) directions (1 1 1)
    Mesh (non-empty) directions (1 1 1)
    Boundary openness (1.00823e-17 -8.79755e-18 -1.68404e-16) OK.
    Max cell openness = 2.53899e-16 OK.
    Max aspect ratio = 5.92719 OK.
    Minimum face area = 0.000278357. Maximum face area = 0.00174528.  Face area magnitudes OK.
    Min volume = 1.85571e-05. Max volume = 3.59782e-05.  Total volume = 11.7796.  Cell volumes OK.
    Mesh non-orthogonality Max: 0.000138361 average: 2.95756e-06
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 0.0127689 OK.
    Coupled point location match (average 0) OK.
 ***Error in face tets: 11520 faces with low quality or negative volume decomposition tets.
  <<Writing 11520 faces with low quality or negative volume decomposition tets to set lowQualityTetFaces
    Min/max edge length = 0.0130896 0.0666667 OK.
    All angles in faces OK.
    Face flatness (1 = flat, 0 = butterfly) : average = 1  min = 1
    All face flatness OK.
    Cell determinant (wellposedness) : minimum: 0.260484 average: 3.33264
    Cell determinant check OK.
    Concave cell check OK.

Failed 1 mesh checks.

Problem is, that the 11520 (=4 * 2880, these are the cyclics) negative volumes, were not there before. The closed mesh was fine!

Do you have any suggestions concerning this? Is it a bug? Why do I have these negative cells now, since I did not change the order of vertices for the faces?

Help is indeed welcome :)

Cheers,
Danesh

Edit: "Gleitkomma-Ausnahme" is german for floating point exception :-D

Hi!

Have you solved out this problem? I also encounter with this problem. Quite confusing. Is there any other way to smooth the mesh?

Best regards,
Gang

Swirl June 18, 2020 07:08

Same here. The mesh is fine until I use createPatch for the cyclic boundaries. Then I get some faces with "bad quality or negative volume decomposition tets". Has anyone figured out how to solve this? Any help is greatly appreciated.


All times are GMT -4. The time now is 07:12.