Vector operations on Cell Zones
Can I get standard vector operations done on certain cell zones alone.. For e.g fvm::laplacian(U) or fvc::grad(U)?
Take a look at fvMeshSubset. This allows you to define an fvMesh on a set of cells (where exposed internal faces are added to a "default" patch).
Once you have this defined, you can define GeometricFields (like volVectorFields such as velocity - U) using this mesh subset, and subsequently, vector calculus operators as well.
Boundary conditions, etc will all be handled automatically.
Could you point me to an example where fvMeshSubset is used inside a code? That would be extremely helpful.
I can't seem to find any examples, but you can accumulate a set of cells in a labelHashSet, and use the fvMeshSubset::setCellSubset member function to construct your mesh. From then on, field creation, etc is the same as fvMesh, but you would substitute the fvMeshSubset::subMesh() member function instead of a regular mesh.
Urgent help on fvMeshSubset
I need to do the same and came to the same idea. My problem is, that setCellSubset fails.
Here my example code:
for(int i = 0; i < mesh.C().internalField().size(); i++)
const vector& v = mesh.C().internalField()[i];
if(v.x() > 8.75-1e-5 && v.x() < 13.75+1e-5 && v.y() > 1.25-1e-5 && v.y() < 6.25+1e-5 && v.z() > 0.5595-1e-5 && v.z() < 1.5605+1e-5)
I have the following problem:
Number of cells in new mesh: 18
Number of faces in new mesh: 75
Number of points in new mesh: 48
--> FOAM FATAL ERROR:
Cannot find face 281 in any of the patches
It seems your patches are not consistent with the mesh : internalFaces:278 total number of faces:442
From function label polyBoundaryMesh::whichPatch(const label faceIndex) const
in file meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C at line 541.
#0 Foam::error::printStack(Foam::Ostream&) in "/opt/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1 Foam::error::abort() in "/opt/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#2 Foam::polyBoundaryMesh::whichPatch(int) const in "/opt/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#3 Foam::fvMeshSubset::setCellSubset(Foam::HashSet<in t, Foam::Hash<int> > const&, int) in "/opt/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libfiniteVolume.so"
Any help is very much appreciated!!
my problem was, that external faces where not assigned to a label and the internal mesh intersects these external faces.
|All times are GMT -4. The time now is 15:30.|