Creates a Periodicity object by matching nodes on two periodic boundary planes. More...
#include <cl_Mesh_PeriodicityFactory.hpp>
Public Member Functions | |
| PeriodicityFactory (Mesh *aMesh, ProtoMesh *aProtoMesh=nullptr) | |
| ~PeriodicityFactory () | |
| void | set_master_plane (const Vector< id_t > &aPointIDs) |
| void | set_slave_plane (const Vector< id_t > &aPointIDs) |
| void | set_master_plane (Cell< Node * > &aNodes) |
| void | set_slave_plane (Cell< Node * > &aNodes) |
| void | set_master_plane (const id_t A, const id_t B, const id_t C) |
| Define the master plane from three .geo Point IDs. | |
| void | set_slave_plane (const id_t A, const id_t B, const id_t C) |
| Define the slave plane from three .geo Point IDs. | |
| Periodicity * | create_periodicity () |
| proto::PeriodicityData * | to_proto (Periodicity *aPeriodicity) |
| Periodicity * | from_proto (proto::PeriodicityData *aPeriodicity, const bool aCrosslinkEntities) |
| void | update_periodicity (Periodicity *aPeriodicity) |
| Match nodes, then derive edge and face pairs. | |
| void | tag_periodic_sidesets () |
Creates a Periodicity object by matching nodes on two periodic boundary planes.
The planes are defined by three .geo Point IDs each. Nodes on sidesets lying on each plane are detected automatically. Master-to-slave correspondence is established by projecting both sides into a shared in-plane coordinate system: facets are paired through their centroids with a 2D k-d tree nearest-neighbor search, and nodes are then matched within each facet pair.
| belfem::mesh::PeriodicityFactory::PeriodicityFactory | ( | Mesh * | aMesh, |
| ProtoMesh * | aProtoMesh = nullptr ) |
| belfem::mesh::PeriodicityFactory::~PeriodicityFactory | ( | ) |
| Periodicity * belfem::mesh::PeriodicityFactory::create_periodicity | ( | ) |
| Periodicity * belfem::mesh::PeriodicityFactory::from_proto | ( | proto::PeriodicityData * | aPeriodicity, |
| const bool | aCrosslinkEntities ) |
| void belfem::mesh::PeriodicityFactory::set_master_plane | ( | const id_t | A, |
| const id_t | B, | ||
| const id_t | C ) |
Define the master plane from three .geo Point IDs.
Points A, B, C must not be collinear.
Define the slave plane from three .geo Point IDs.
The point mapping (e.g. 11->11, 14->15, 16->16) must produce the same in-plane coordinate system as the master.
| void belfem::mesh::PeriodicityFactory::tag_periodic_sidesets | ( | ) |
| proto::PeriodicityData * belfem::mesh::PeriodicityFactory::to_proto | ( | Periodicity * | aPeriodicity | ) |
| void belfem::mesh::PeriodicityFactory::update_periodicity | ( | Periodicity * | aPeriodicity | ) |
Match nodes, then derive edge and face pairs.
The resulting Periodicity object is owned by the mesh.