12#ifndef BELFEM_CL_MESH_PERIODICITY_HPP
13#define BELFEM_CL_MESH_PERIODICITY_HPP
75 bool mNodePairsRestored = false ;
193 return mMasterNodes ;
205 return mMasterEdges ;
217 return mMasterFaces ;
229 return mMasterFacets ;
235 return mSlaveFacets ;
241 return mMasterPlane ;
253 return mPopulated.test(
static_cast< uint >( aType ) );
259 mPopulated.set(
static_cast< uint >( aType ) );
265 mPopulated.reset(
static_cast< uint >( aType ) );
271 return mMasterHesse ;
283 return mMasterHesse ;
296 real tAM = std::abs( aNodeA->
x() * mMasterHesse( 0 )
297 + aNodeA->
y() * mMasterHesse( 1 )
298 + aNodeA->
z() * mMasterHesse( 2 )
299 - mMasterHesse( 3 ) );
301 real tBM = std::abs( aNodeB->
x() * mMasterHesse( 0 )
302 + aNodeB->
y() * mMasterHesse( 1 )
303 + aNodeB->
z() * mMasterHesse( 2 )
304 - mMasterHesse( 3 ) );
306 real tAS = std::abs( aNodeA->
x() * mSlaveHesse( 0 )
307 + aNodeA->
y() * mSlaveHesse( 1 )
308 + aNodeA->
z() * mSlaveHesse( 2 )
309 - mSlaveHesse( 3 ) );
311 real tBS = std::abs( aNodeB->
x() * mSlaveHesse( 0 )
312 + aNodeB->
y() * mSlaveHesse( 1 )
313 + aNodeB->
z() * mSlaveHesse( 2 )
314 - mSlaveHesse( 3 ) );
317 if ( tAM < aTolerance && tBS < aTolerance )
321 if ( tAS < aTolerance && tBM < aTolerance )
331 return mNodePairBackup.size() > 0 ;
337 return mNodePairsRestored ;
Cell is a wrapper around the standard vector.
Definition cl_Cell.hpp:42
Top-level container for all mesh entities.
Definition cl_Mesh.hpp:60
Definition cl_Node.hpp:30
real y() const
Definition cl_Node.hpp:191
real x() const
Definition cl_Node.hpp:183
real z() const
Definition cl_Node.hpp:199
Creates a Periodicity object by matching nodes on two periodic boundary planes.
Definition cl_Mesh_PeriodicityFactory.hpp:34
Cell< Node * > & master_nodes()
Definition cl_Mesh_Periodicity.hpp:191
bool has_node_pair_backup() const
Definition cl_Mesh_Periodicity.hpp:329
Cell< Face * > & master_faces()
Definition cl_Mesh_Periodicity.hpp:215
int pair_orientation(Node *aNodeA, Node *aNodeB, const real aTolerance=BELFEM_MESH_EPSILON) const
Definition cl_Mesh_Periodicity.hpp:294
void flag(const EntityType aType)
Definition cl_Mesh_Periodicity.hpp:257
Cell< Node * > & master_plane()
Definition cl_Mesh_Periodicity.hpp:239
Cell< Edge * > & master_edges()
Definition cl_Mesh_Periodicity.hpp:203
bool is_flagged(const EntityType aType) const
Definition cl_Mesh_Periodicity.hpp:251
Cell< Edge * > & slave_edges()
Definition cl_Mesh_Periodicity.hpp:209
const Vector< real > & master_hesse() const
Definition cl_Mesh_Periodicity.hpp:281
friend class PeriodicityFactory
Definition cl_Mesh_Periodicity.hpp:78
void reset_nodes()
Definition cl_Mesh_Periodicity.cpp:173
Cell< Facet * > & slave_facets()
Definition cl_Mesh_Periodicity.hpp:233
void unflag(const EntityType aType)
Definition cl_Mesh_Periodicity.hpp:263
void reset_facets()
Definition cl_Mesh_Periodicity.cpp:237
Cell< Facet * > & master_facets()
Definition cl_Mesh_Periodicity.hpp:227
Cell< Node * > & slave_nodes()
Definition cl_Mesh_Periodicity.hpp:197
bool node_pairs_restored() const
Definition cl_Mesh_Periodicity.hpp:335
Periodicity(Mesh *aMesh)
Definition cl_Mesh_Periodicity.cpp:22
Cell< Node * > & slave_plane()
Definition cl_Mesh_Periodicity.hpp:245
void restore_node_pairs()
Definition cl_Mesh_Periodicity.cpp:276
void clear_node_pair_backup()
Definition cl_Mesh_Periodicity.cpp:304
const Vector< real > & slave_hesse() const
Definition cl_Mesh_Periodicity.hpp:287
void reset_faces()
Definition cl_Mesh_Periodicity.cpp:216
void backup_node_pairs()
Definition cl_Mesh_Periodicity.cpp:258
Cell< Face * > & slave_faces()
Definition cl_Mesh_Periodicity.hpp:221
void update()
Re-runs the factory on this object: resets all pairs, re-collects facets and nodes,...
Definition cl_Mesh_Periodicity.cpp:38
void add_node_pair_to_backup(Node *aNodeA, Node *aNodeB, const real aTolerance=BELFEM_MESH_EPSILON)
Definition cl_Mesh_Periodicity.cpp:311
void reset_edges()
Definition cl_Mesh_Periodicity.cpp:194
void set_entity_dependencies()
Definition cl_Mesh_Periodicity.cpp:49
Definition cl_EF_EdgeFunction.hpp:17
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int uint
Definition typedefs.hpp:30
constexpr real BELFEM_MESH_EPSILON
Definition typedefs.hpp:92
EntityType
Definition Mesh_Enums.hpp:116
double real
Definition typedefs.hpp:36