Symmetry boundary condition
Symmetry boundary conditionPosted by Kirill St at February 20. 2013
I want to simplify my model by using its symmetry geometry and calculate only "half" of it in OpenFOAM.
The question is how to define symmetry boundary condition in salome and how to mesh it with viscous layer.
The symmetry condition has to be defined in OpenFOAM. In Salome, only the shape of boundaries (be it inlet, outlet, wall, symmetry, etc.) must be defined. This is done by putting the elements describing them into "mesh groups" ("groups" being things like "patches" in OpenFOAM).
The best way do it is to first create groups in the Geometry module (right-click in the study tree on the geometry to mesh > Create Group). For a 3D case, you will need to define face groups (for example, one called "inlet", another called "outlet", etc.). So, you should click on the "face" icon in the dialogue box, then select in the 3D window the sub-geometries your are interested in and then click on Add then Apply. Notice that the [Shift] key has to be used in the 3D window instead of the [Ctrl] key to make multiple selections.
Then, in the Mesh module, right-click in the study tree on the mesh > Create Groups from Geometry, then select in the study tree the groups from the Geometry module (then Apply and Close).
Once done, you should be able to display your boundaries in the 3D window of the Mesh module like in the enclosed screenshot.
Then, you can export your mesh in OpenFOAM and modify the OpenFOAM files to define the type of your boundary conditions, including the symmetry condition.
Thanks I am familiar with the way of importing and defining the faces in salome, it is very easy and user friendly. Now what I asking is how to divide the full 3D model to 3D model with symmetric face and how to mesh it.
OK, so you have a mesh and you want to cut in its middle...
Not a trivial thing. Personally, I would remesh it completely after having cut the geometry.
I have an idea how to do what you want but it would be usable only if implemented into a script (else it would last one day to do it manually). Here is the idea:
- 1- You create in the Geometry module some volume containing the part of the domain to delete.
- 2- In the Mesh module, you cut your mesh using Modification > Remove > Elements, then using a filter of type "Belong to Geom" (and using the volume you just created).
- 3- Now you can create a group for the symmetry by using the Modification > Create boundary elements, then by cutting the group (Mesh > Cut Groups) with the other groups you already have (inlet, outlet, wall, etc.).
- 4- The last step is to project the nodes of the symmetry group on the symmetry plane. It's here that a script would be useful. You can try to get all the nodes of the symmetry group, then for each node create a vertex in the Geometry module having the same coordinates, project it on the symmetry plane (Operations > Transformation > Projection), and then affect the new vertex position to the node.
Of course, if the symmetry plane is parallel to OXY, OYZ or OZX, you can directly modify the z, x or y coordinate (respectively) of each node to the desired value.
I think it should work, but its necessitates some knowledge in scripting.
I hope I well understood what you wanted...
If you just want to simply cut the geometry and remesh it completely, you can:
- Use the Operations > Boolean > Cut tool if you want to mesh a single solid
- Use the Operations > Partitions tool if you want to mesh a compsolid (with several solids inside). Then you will have to explode your partition (New Entity > Explode) to get the solid you want to keep and to put them in a new compound (New Entity > Build > Compound).
In each case you will have to recreate the groups and the mesh in the Mesh module.
If you want to copy groups and algorithms/hypotheses/groups between geometrical objects and meshes, you can try the cfdmsh script.
I hope this answered your question...
I will try booth of the ways.