![]() |
PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
|
Namespaces | |
| namespace | anonymous_namespace{annulusMesh2D.cpp} |
| namespace | anonymous_namespace{annulusMesh3D.cpp} |
| namespace | anonymous_namespace{builtinGmshGeometry.cpp} |
| namespace | anonymous_namespace{meshGenerator.cpp} |
| namespace | anonymous_namespace{openBoundaryWalls3D.cpp} |
Functions | |
| void | buildAnnulus2DInCurrentModel (const geom::AnnulusGeomObject &a, double h) |
| void | buildAnnulus3DInCurrentModel (const geom::AnnulusGeomObject &a, double h) |
| void | buildGmshGeometryInCurrentModel (const geom::GeomObject &g, double h) |
| int | gmshMeshGenerateDim (const inp::ModelDeck *modelDeck) |
| void | fillMeshFromActiveGmshModel (mesh::Mesh *mesh_p, const inp::MeshDeck *meshDeck, const inp::ModelDeck *modelDeck) |
| int | addDiskOcc (double xc, double yc, double zc, double rx, double ry, double theta=0.) |
| OCC disk compatible with older Gmsh (no zAxis/xAxis) and newer APIs. | |
| void | generateBuiltinParticleMeshGmsh (const std::shared_ptr< geom::GeomObject > &geomObj, double h, const std::string &filenameStem, bool vtk_out, bool write_mesh_file, mesh::Mesh *out_mesh, const inp::MeshDeck *meshDeck, const inp::ModelDeck *modelDeck) |
| In-process Gmsh mesh from geom::GeomObject (after createGeomObject on deck / Particle data). | |
| void | physicalGroupsWallOpenFromY2D (int surfaceTag, double yOpen, double tol, const std::string &physWall, const std::string &physOpen) |
| void | physicalGroupsWallOpenFromFace3D (int volumeTag, int openFace, const util::Point &lo, const util::Point &hi, double t, double tol, const std::string &physWall, const std::string &physOpen) |
| std::shared_ptr< mesh::Mesh > | createParticleMesh (const inp::MeshDeck &zmeshDeck, const geom::GeomData &zgeomDeck, const inp::ModelDeck *modelDeck, const std::string &modelName) |
| Build a reference-particle mesh: file, uniform rectangle, or in-process Gmsh. | |
| void | buildCylinderOcc (const geom::Cylinder &c) |
| void | buildEllipseOcc (const geom::Ellipse &e, double h) |
| void | buildEllipsoidOcc (const geom::Ellipsoid &e) |
|
inline |
OCC disk compatible with older Gmsh (no zAxis/xAxis) and newer APIs.
Gmsh before ~4.11 only accepts addDisk(xc,yc,zc,rx,ry,tag). Later versions add optional axis vectors for in-plane rotation. On older Gmsh, apply a z-rotation about the disk center when theta is nonzero.
Definition at line 26 of file gmshOccCompat.h.
Referenced by mesh_gen::anonymous_namespace{annulusMesh2D.cpp}::addEllipseDiskOcc(), mesh_gen::anonymous_namespace{annulusMesh2D.cpp}::buildCircleAnnulus2D(), and buildEllipseOcc().
| void mesh_gen::buildAnnulus2DInCurrentModel | ( | const geom::AnnulusGeomObject & | a, |
| double | h | ||
| ) |
OCC: outer rectangle minus inner rectangle (coplanar XY), then mesh-size point embed.
Definition at line 201 of file annulusMesh2D.cpp.
References geom::AnnulusGeomObject::d_dim, geom::AnnulusGeomObject::d_inObj_p, geom::GeomObject::d_name, and geom::AnnulusGeomObject::d_outObj_p.
Referenced by buildGmshGeometryInCurrentModel().
| void mesh_gen::buildAnnulus3DInCurrentModel | ( | const geom::AnnulusGeomObject & | a, |
| double | h | ||
| ) |
OCC: outer cuboid minus inner cuboid (axis-aligned shell), then mesh-size point embed.
Definition at line 143 of file annulusMesh3D.cpp.
References geom::AnnulusGeomObject::d_dim, geom::AnnulusGeomObject::d_inObj_p, geom::GeomObject::d_name, and geom::AnnulusGeomObject::d_outObj_p.
Referenced by buildGmshGeometryInCurrentModel().
| void mesh_gen::buildCylinderOcc | ( | const geom::Cylinder & | c | ) |
OCC cylinder matching geom::Cylinder (base center, axis × length, radius).
Definition at line 23 of file primitiveOccMesh.cpp.
References geom::Cylinder::d_l, geom::Cylinder::d_r, util::Point::d_x, geom::Cylinder::d_xa, geom::Cylinder::d_xBegin, util::Point::d_y, and util::Point::d_z.
Referenced by buildGmshGeometryInCurrentModel().
| void mesh_gen::buildEllipseOcc | ( | const geom::Ellipse & | e, |
| double | h | ||
| ) |
OCC disk / ellipse in the plane z = center.d_z (see geom::Ellipse).
Definition at line 38 of file primitiveOccMesh.cpp.
References addDiskOcc(), geom::Ellipse::d_a, geom::Ellipse::d_b, geom::Ellipse::d_theta, geom::Ellipse::d_x, util::Point::d_x, util::Point::d_y, and util::Point::d_z.
Referenced by buildGmshGeometryInCurrentModel().
| void mesh_gen::buildEllipsoidOcc | ( | const geom::Ellipsoid & | e | ) |
OCC ellipsoid: unit sphere + affine map R diag(r1,r2,r3) and translation.
Definition at line 56 of file primitiveOccMesh.cpp.
References geom::Ellipsoid::d_a, geom::Ellipsoid::d_b, geom::Ellipsoid::d_c, geom::Ellipsoid::d_x, util::Point::d_x, util::Point::d_y, util::Point::d_z, and geom::ellipsoidRotationMatrix().
Referenced by buildGmshGeometryInCurrentModel().
| void mesh_gen::buildGmshGeometryInCurrentModel | ( | const geom::GeomObject & | geom, |
| double | h | ||
| ) |
Build OCC/geo entities in the current Gmsh model from a concrete geom::GeomObject.
New shapes: add a branch here or in helpers (e.g. primitiveOccMesh.cpp), and register the name in geom::acceptable_geometries / createGeomObject. AnnulusGeomObject uses d_name annulus_object; meshGenerator also allows that name (deck types are circle_minus_circle / rectangle_minus_rectangle / …). open_rect_channel_2d: U-channel polygon (geom::OpenRectChannel2D) + optional physical groups via openBoundaryWalls2D. open_cuboid_channel_3d: cuboidal shell with one outer face slab removed (geom::OpenCuboidChannel3D) + physical groups via openBoundaryWalls3D.
Definition at line 293 of file builtinGmshGeometry.cpp.
References buildAnnulus2DInCurrentModel(), buildAnnulus3DInCurrentModel(), buildCylinderOcc(), buildEllipseOcc(), buildEllipsoidOcc(), and geom::GeomObject::d_name.
Referenced by generateBuiltinParticleMeshGmsh().
| std::shared_ptr< mesh::Mesh > mesh_gen::createParticleMesh | ( | const inp::MeshDeck & | zmeshDeck, |
| const geom::GeomData & | zgeomDeck, | ||
| const inp::ModelDeck * | modelDeck, | ||
| const std::string & | modelName | ||
| ) |
Build a reference-particle mesh: file, uniform rectangle, or in-process Gmsh.
Definition at line 40 of file particleMesh.cpp.
References mesh::createUniformMesh(), inp::MeshDeck::d_createMesh, inp::MeshDeck::d_createMeshInfo, inp::ModelDeck::d_dim, inp::MeshDeck::d_filename, geom::GeomData::d_geom_p, geom::GeomData::d_geomName, inp::MeshDeck::d_hMeshing, inp::MeshDeck::d_voidRegions, inp::MeshDeck::d_writeMeshFile, generateBuiltinParticleMeshGmsh(), anonymous_namespace{particleMesh.cpp}::maybeWriteMeshFile(), util::io::removeExtensionFromFile(), and mesh::removeNodesInBoxes().
Referenced by particle::createReferenceParticles().
| void mesh_gen::fillMeshFromActiveGmshModel | ( | mesh::Mesh * | mesh_p, |
| const inp::MeshDeck * | meshDeck, | ||
| const inp::ModelDeck * | modelDeck | ||
| ) |
Fill PeriDEM Mesh from the active Gmsh model (after mesh::generate).
Definition at line 31 of file gmshMeshPipeline.cpp.
References mesh::Mesh::loadFromTetraElements3D(), mesh::Mesh::loadFromTriangleElements2D(), util::msh_type_tetrahedron, and util::msh_type_triangle.
Referenced by generateBuiltinParticleMeshGmsh().
| void mesh_gen::generateBuiltinParticleMeshGmsh | ( | const std::shared_ptr< geom::GeomObject > & | geomObj, |
| double | h, | ||
| const std::string & | filenameStem, | ||
| bool | vtk_out, | ||
| bool | write_mesh_file, | ||
| mesh::Mesh * | out_mesh, | ||
| const inp::MeshDeck * | meshDeck, | ||
| const inp::ModelDeck * | modelDeck | ||
| ) |
In-process Gmsh mesh from geom::GeomObject (after createGeomObject on deck / Particle data).
Single entry point: geometry is only the shared object; mesh size, VTK, file stem, and write flags are explicit. Simulation code unpacks MeshDeck + GeomData.d_geom_p at the call site.
Definition at line 66 of file meshGenerator.cpp.
References buildGmshGeometryInCurrentModel(), inp::ModelDeck::d_dim, fillMeshFromActiveGmshModel(), geom::getAcceptableGeometries(), and gmshMeshGenerateDim().
Referenced by anonymous_namespace{testMeshGen.cpp}::builtinMeshCheckForGeometry(), createParticleMesh(), getInputJson(), and anonymous_namespace{testMeshGen.cpp}::testCircleMeshWritesFiles().
| int mesh_gen::gmshMeshGenerateDim | ( | const inp::ModelDeck * | modelDeck | ) |
Meshing dimension for Gmsh::generate (1–3), aligned with ModelDeck::d_dim.
Definition at line 22 of file gmshMeshPipeline.cpp.
References inp::ModelDeck::d_dim.
Referenced by generateBuiltinParticleMeshGmsh().
| void mesh_gen::physicalGroupsWallOpenFromFace3D | ( | int | volumeTag, |
| int | openFace, | ||
| const util::Point & | lo, | ||
| const util::Point & | hi, | ||
| double | t, | ||
| double | tol, | ||
| const std::string & | physWall = "wall", |
||
| const std::string & | physOpen = "open" |
||
| ) |
After a 3D volume is built in the current Gmsh model, partition its boundary surfaces into physical groups "wall" vs "open" for an open cuboidal shell (one outer face slab removed).
| volumeTag | Gmsh volume tag (dimension 3). |
| openFace | Same convention as geom::OpenCuboidChannel3D::d_openFace (0..5). |
| lo | Outer AABB low corner (world axes). |
| hi | Outer AABB high corner. |
| t | Wall thickness (used to locate the opening plane). |
| tol | Length tolerance for classifying nearly planar faces. |
| physWall | Physical name for wall surfaces. |
| physOpen | Physical name for opening / cavity-facing rim surfaces. |
Definition at line 32 of file openBoundaryWalls3D.cpp.
References util::Point::d_x, util::Point::d_y, and util::Point::d_z.
Referenced by mesh_gen::anonymous_namespace{builtinGmshGeometry.cpp}::buildOpenCuboidChannel3DGeo().
| void mesh_gen::physicalGroupsWallOpenFromY2D | ( | int | surfaceTag, |
| double | yOpen, | ||
| double | tol, | ||
| const std::string & | physWall = "wall", |
||
| const std::string & | physOpen = "open" |
||
| ) |
After a 2D plane surface is built in the current Gmsh model, partition its boundary curves into physical groups: "wall" vs "open" for a top opening at +y.
Curves classified as "open" are nearly horizontal segments whose elevation is near yOpen (outer top of a closed rectangular annulus). U-channels have no such edge (the opening is a gap), so all curves are typically "wall".
| surfaceTag | Gmsh surface tag (dimension 2). |
| yOpen | Reference y-coordinate of the intended open (top) side. |
| tol | Length tolerance for "horizontal" vs slanted edges. |
Definition at line 18 of file openBoundaryWalls2D.cpp.
Referenced by mesh_gen::anonymous_namespace{builtinGmshGeometry.cpp}::buildOpenRectChannel2DGeo().