libMesh
|
Public Types | |
enum | TransformationType { FORWARD =0, INVERSE =1 } |
Public Member Functions | |
AzimuthalPeriodicBoundary (Point center, Point axis, Real angle) | |
Constructor. More... | |
AzimuthalPeriodicBoundary (const AzimuthalPeriodicBoundary &o, TransformationType t=FORWARD) | |
Copy constructor, with option for the copy to represent an inverse transformation. More... | |
virtual | ~AzimuthalPeriodicBoundary ()=default |
Destructor. More... | |
void | set_up_rotation_matrix () |
Computes and stores the rotation matrix for this transformation, and then calls the base class API to store it. More... | |
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. More... | |
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. More... | |
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. More... | |
void | set_transformation_matrix (const DenseMatrix< Real > &matrix) |
Set the transformation matrix. More... | |
const std::set< unsigned int > & | get_variables () const |
Get the set of variables for this periodic boundary condition. More... | |
Public Attributes | |
boundary_id_type | myboundary |
The boundary ID of this boundary and its counterpart. More... | |
boundary_id_type | pairedboundary |
Protected Attributes | |
std::set< unsigned int > | variables |
Set of variables for this periodic boundary, empty means all variables possible. More... | |
std::unique_ptr< DenseMatrix< Real > > | _transformation_matrix |
A DenseMatrix that defines the mapping of variables on this boundary and the counterpart boundary. More... | |
Private Attributes | |
Point | _center |
Point | _axis |
Real | _theta |
RealTensorValue | _R |
Definition at line 78 of file systems_of_equations_ex9.C.
|
inherited |
|
inline |
Constructor.
Definition at line 84 of file systems_of_equations_ex9.C.
|
inline |
Copy constructor, with option for the copy to represent an inverse transformation.
Definition at line 103 of file systems_of_equations_ex9.C.
|
virtualdefault |
Destructor.
|
inlineoverridevirtual |
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 176 of file systems_of_equations_ex9.C.
|
inlineoverridevirtual |
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 163 of file systems_of_equations_ex9.C.
|
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< FEOutputType< T >::type >::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::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints().
|
inherited |
Definition at line 79 of file periodic_boundary_base.C.
References libMesh::PeriodicBoundaryBase::_transformation_matrix.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::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< FEOutputType< T >::type >::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.
|
inline |
Computes and stores the rotation matrix for this transformation, and then calls the base class API to store it.
This should only be done once, since the direction and angle do not change once the class is constructed.
Definition at line 133 of file systems_of_equations_ex9.C.
References libMesh::Real, and libMesh::TypeVector< T >::unit().
|
inherited |
Definition at line 57 of file periodic_boundary_base.C.
References libMesh::PeriodicBoundaryBase::variables.
|
private |
Definition at line 187 of file systems_of_equations_ex9.C.
|
private |
Definition at line 186 of file systems_of_equations_ex9.C.
|
private |
Definition at line 189 of file systems_of_equations_ex9.C.
|
private |
Definition at line 188 of file systems_of_equations_ex9.C.
|
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::DofMap::add_periodic_boundary(), Biharmonic::JR::JR(), main(), libMesh::PeriodicBoundary::PeriodicBoundary(), and PeriodicBCTest::testPeriodicBC().
|
inherited |
Definition at line 58 of file periodic_boundary_base.h.
Referenced by libMesh::DofMap::add_periodic_boundary(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), Biharmonic::JR::JR(), main(), libMesh::PeriodicBoundaries::neighbor(), libMesh::PeriodicBoundary::PeriodicBoundary(), and PeriodicBCTest::testPeriodicBC().
|
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().