|
libMesh
|
The definition of a periodic boundary. More...
#include <periodic_boundary.h>
Public Types | |
| enum | TransformationType { FORWARD =0 , INVERSE =1 } |
Public Member Functions | |
| PeriodicBoundary () | |
| Constructor. | |
| virtual | ~PeriodicBoundary ()=default |
| Destructor. | |
| PeriodicBoundary (const PeriodicBoundary &o, TransformationType t=FORWARD) | |
| Copy constructor, with option for the copy to represent an inverse transformation. | |
| PeriodicBoundary (const RealVectorValue &vector) | |
| Constructor taking a reference to the translation vector. | |
| virtual Point | get_corresponding_pos (const Point &pt) const override |
| This function should be overridden by derived classes to define how one finds corresponding nodes on the periodic boundary pair. | |
| virtual std::unique_ptr< PeriodicBoundaryBase > | clone (TransformationType t=FORWARD) const override |
| If we want the DofMap to be able to make copies of references and store them in the underlying map, this class must be clone'able, i.e. | |
| void | set_variable (unsigned int var) |
| void | merge (const PeriodicBoundaryBase &pb) |
| bool | is_my_variable (unsigned int var_num) const |
| bool | has_transformation_matrix () const |
| const DenseMatrix< Real > & | get_transformation_matrix () const |
| Get the transformation matrix, if it is defined. | |
| void | set_transformation_matrix (const DenseMatrix< Real > &matrix) |
| Set the transformation matrix. | |
| const std::set< unsigned int > & | get_variables () const |
| Get the set of variables for this periodic boundary condition. | |
Public Attributes | |
| boundary_id_type | myboundary |
| The boundary ID of this boundary and its counterpart. | |
| boundary_id_type | pairedboundary |
Protected Attributes | |
| RealVectorValue | translation_vector |
| std::set< unsigned int > | variables |
| Set of variables for this periodic boundary, empty means all variables possible. | |
| std::unique_ptr< DenseMatrix< Real > > | _transformation_matrix |
| A DenseMatrix that defines the mapping of variables on this boundary and the counterpart boundary. | |
The definition of a periodic boundary.
Used for implementing periodic BCs via constraints.
Definition at line 44 of file periodic_boundary.h.
|
inherited |
| Enumerator | |
|---|---|
| FORWARD | |
| INVERSE | |
Definition at line 51 of file periodic_boundary_base.h.
| libMesh::PeriodicBoundary::PeriodicBoundary | ( | ) |
Constructor.
Definition at line 33 of file periodic_boundary.C.
|
virtualdefault |
Destructor.
| libMesh::PeriodicBoundary::PeriodicBoundary | ( | const PeriodicBoundary & | o, |
| TransformationType | t = FORWARD |
||
| ) |
Copy constructor, with option for the copy to represent an inverse transformation.
Definition at line 41 of file periodic_boundary.C.
References libMesh::PeriodicBoundaryBase::INVERSE, libMesh::PeriodicBoundaryBase::myboundary, libMesh::PeriodicBoundaryBase::pairedboundary, and translation_vector.
| libMesh::PeriodicBoundary::PeriodicBoundary | ( | const RealVectorValue & | vector | ) |
Constructor taking a reference to the translation vector.
Definition at line 54 of file periodic_boundary.C.
|
overridevirtual |
If we want the DofMap to be able to make copies of references and store them in the underlying map, this class must be clone'able, i.e.
have a kind of virtual construction mechanism.
Implements libMesh::PeriodicBoundaryBase.
Definition at line 69 of file periodic_boundary.C.
Referenced by libMesh::MeshBase::add_disjoint_neighbor_boundary_pairs().
This function should be overridden by derived classes to define how one finds corresponding nodes on the periodic boundary pair.
Implements libMesh::PeriodicBoundaryBase.
Definition at line 62 of file periodic_boundary.C.
References translation_vector.
|
inherited |
Get the transformation matrix, if it is defined.
Throw an error if it is not defined.
Definition at line 86 of file periodic_boundary_base.C.
References libMesh::PeriodicBoundaryBase::_transformation_matrix, and libMesh::PeriodicBoundaryBase::has_transformation_matrix().
Referenced by libMesh::FEGenericBase< OutputType >::compute_periodic_constraints().
|
inherited |
Get the set of variables for this periodic boundary condition.
Definition at line 109 of file periodic_boundary_base.C.
References libMesh::PeriodicBoundaryBase::variables.
Referenced by libMesh::DofMap::add_periodic_boundary(), and libMesh::FEGenericBase< OutputType >::compute_periodic_constraints().
|
inherited |
Definition at line 79 of file periodic_boundary_base.C.
References libMesh::PeriodicBoundaryBase::_transformation_matrix.
Referenced by libMesh::FEGenericBase< OutputType >::compute_periodic_constraints(), and libMesh::PeriodicBoundaryBase::get_transformation_matrix().
|
inherited |
Definition at line 71 of file periodic_boundary_base.C.
References libMesh::PeriodicBoundaryBase::variables.
Referenced by libMesh::FEGenericBase< OutputType >::compute_periodic_constraints().
|
inherited |
Definition at line 64 of file periodic_boundary_base.C.
References libMesh::PeriodicBoundaryBase::variables.
Referenced by libMesh::DofMap::add_periodic_boundary().
|
inherited |
Set the transformation matrix.
When calling this method we require the following conditions: 1) matrix is square with size that matches this->variables.size() 2) the list of variables in this->variables set must all have the same FE type Both of these conditions are asserted in DBG mode.
Definition at line 96 of file periodic_boundary_base.C.
References libMesh::PeriodicBoundaryBase::_transformation_matrix, and libMesh::PeriodicBoundaryBase::variables.
Referenced by AzimuthalPeriodicBoundary::set_up_rotation_matrix().
|
inherited |
Definition at line 57 of file periodic_boundary_base.C.
References libMesh::PeriodicBoundaryBase::variables.
Referenced by AzimuthalPeriodicBoundary::AzimuthalPeriodicBoundary(), and AzimuthalPeriodicBoundary::AzimuthalPeriodicBoundary().
|
protectedinherited |
A DenseMatrix that defines the mapping of variables on this boundary and the counterpart boundary.
This is necessary for periodic-boundaries with vector-valued quantities (e.g. velocity or displacement) on a sector of a circular domain, for example, since in that case we must map each variable to a corresponding linear combination of all the variables. We store the DenseMatrix via a unique_ptr, and an uninitialized pointer is treated as equivalent to the identity matrix.
Definition at line 146 of file periodic_boundary_base.h.
Referenced by libMesh::PeriodicBoundaryBase::get_transformation_matrix(), libMesh::PeriodicBoundaryBase::has_transformation_matrix(), libMesh::PeriodicBoundaryBase::PeriodicBoundaryBase(), and libMesh::PeriodicBoundaryBase::set_transformation_matrix().
|
inherited |
The boundary ID of this boundary and its counterpart.
Definition at line 58 of file periodic_boundary_base.h.
Referenced by libMesh::MeshBase::add_disjoint_neighbor_boundary_pairs(), libMesh::DofMap::add_periodic_boundary(), AzimuthalPeriodicBoundary::AzimuthalPeriodicBoundary(), Biharmonic::JR::JR(), main(), PeriodicBoundary(), and PeriodicBCTest::testPeriodicBC().
|
inherited |
Definition at line 58 of file periodic_boundary_base.h.
Referenced by libMesh::MeshBase::add_disjoint_neighbor_boundary_pairs(), libMesh::DofMap::add_periodic_boundary(), AzimuthalPeriodicBoundary::AzimuthalPeriodicBoundary(), libMesh::FEGenericBase< OutputType >::compute_periodic_constraints(), Biharmonic::JR::JR(), main(), PeriodicBoundary(), and PeriodicBCTest::testPeriodicBC().
|
protected |
Definition at line 85 of file periodic_boundary.h.
Referenced by get_corresponding_pos(), and PeriodicBoundary().
|
protectedinherited |
Set of variables for this periodic boundary, empty means all variables possible.
Definition at line 134 of file periodic_boundary_base.h.
Referenced by libMesh::PeriodicBoundaryBase::get_variables(), libMesh::PeriodicBoundaryBase::is_my_variable(), libMesh::PeriodicBoundaryBase::merge(), libMesh::PeriodicBoundaryBase::set_transformation_matrix(), and libMesh::PeriodicBoundaryBase::set_variable().