MAST
|
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface for cases where: More...
#include <geom_elem.h>
Public Member Functions | |
GeomElem () | |
virtual | ~GeomElem () |
virtual const libMesh::Elem & | get_reference_elem () const |
virtual const libMesh::Elem & | get_reference_local_elem () const |
virtual const libMesh::Elem & | get_quadrature_elem () const |
virtual const libMesh::Elem & | get_quadrature_local_elem () const |
unsigned int | dim () const |
unsigned int | n_sides_quadrature_elem () const |
number of sides on quadrature element. More... | |
libMesh::FEType | get_fe_type (unsigned int i) const |
void | set_local_y_vector (const RealVectorX &y_vec) |
for 1D elements the transformed coordinate system attached to the element defines the local x-axis along the length of the element. More... | |
virtual void | init (const libMesh::Elem &elem, const MAST::SystemInitialization &sys_init) |
initialize the object for the specified reference elem . More... | |
virtual std::unique_ptr< MAST::FEBase > | init_fe (bool init_grads, bool init_second_order_derivative, int extra_quadrature_order=0) const |
initializes the finite element shape function and quadrature object with the order of quadrature rule changed based on the extra_quadrature_order . More... | |
virtual std::unique_ptr< MAST::FEBase > | init_side_fe (unsigned int s, bool init_grads, int extra_quadrature_order=0) const |
initializes the finite element shape function and quadrature object for the side with the order of quadrature rule changed based on the extra_quadrature_order More... | |
virtual void | external_side_loads_for_quadrature_elem (std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase * > &bc, std::map< unsigned int, std::vector< MAST::BoundaryConditionBase * >> &loads) const |
From the given list of boundary loads, this identifies the sides of the quadrature element and the loads in bc that are to be applied on it. More... | |
virtual void | get_boundary_ids_on_quadrature_elem_side (unsigned int s, std::vector< libMesh::boundary_id_type > &bc_ids) const |
bool | use_local_elem () const |
Vector and matrix quantities defined on one- and two-dimensional elements that are oriented in two or three-dimensional spaces may need to be transformed to/from element coordinate system. More... | |
const RealVectorX & | domain_surface_normal () const |
void | transform_point_to_global_coordinate (const libMesh::Point &local_pt, libMesh::Point &global_pt) const |
void | transform_vector_to_global_coordinate (const libMesh::Point &local_vec, libMesh::Point &global_vec) const |
void | transform_vector_to_local_coordinate (const libMesh::Point &global_vec, libMesh::Point &local_vec) const |
void | transform_vector_to_global_coordinate (const RealVectorX &local_vec, RealVectorX &global_vec) const |
void | transform_vector_to_local_coordinate (const RealVectorX &global_vec, RealVectorX &local_vec) const |
const RealMatrixX & | T_matrix () const |
O. More... | |
Protected Member Functions | |
void | _init_local_elem () |
initializes the local element More... | |
void | _init_local_elem_1d () |
initializes the local element More... | |
void | _init_local_elem_2d () |
initializes the local element More... | |
Protected Attributes | |
const MAST::SystemInitialization * | _sys_init |
system initialization object for this element More... | |
bool | _use_local_elem |
const libMesh::Elem * | _ref_elem |
reference element in the mesh for which the data structure is initialized More... | |
libMesh::Elem * | _local_elem |
a local element is created if More... | |
RealVectorX | _local_y |
the y-axis that is used to define the coordinate system for a 1-D element. More... | |
RealVectorX | _domain_surface_normal |
surface normal of the 1D/2D element. More... | |
std::vector< libMesh::Node * > | _local_nodes |
nodes for local element More... | |
RealMatrixX | _T_mat |
Transformation matrix defines T_ij = V_i^t . More... | |
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface for cases where:
Definition at line 59 of file geom_elem.h.
MAST::GeomElem::GeomElem | ( | ) |
Definition at line 32 of file geom_elem.cpp.
|
virtual |
Definition at line 41 of file geom_elem.cpp.
|
protected |
initializes the local element
Definition at line 323 of file geom_elem.cpp.
|
protected |
initializes the local element
Definition at line 380 of file geom_elem.cpp.
|
protected |
initializes the local element
Definition at line 432 of file geom_elem.cpp.
unsigned int MAST::GeomElem::dim | ( | ) | const |
Definition at line 91 of file geom_elem.cpp.
const RealVectorX & MAST::GeomElem::domain_surface_normal | ( | ) | const |
Definition at line 219 of file geom_elem.cpp.
|
virtual |
From the given list of boundary loads, this identifies the sides of the quadrature element and the loads in bc
that are to be applied on it.
The map of side and loads is returned in loads
.
Definition at line 175 of file geom_elem.cpp.
|
virtual |
Definition at line 209 of file geom_elem.cpp.
libMesh::FEType MAST::GeomElem::get_fe_type | ( | unsigned int | i | ) | const |
Definition at line 110 of file geom_elem.cpp.
|
virtual |
Reimplemented in MAST::LevelSetIntersectedElem.
Definition at line 72 of file geom_elem.cpp.
|
virtual |
Reimplemented in MAST::LevelSetIntersectedElem.
Definition at line 81 of file geom_elem.cpp.
|
virtual |
Definition at line 54 of file geom_elem.cpp.
|
virtual |
Definition at line 63 of file geom_elem.cpp.
|
virtual |
initialize the object for the specified reference elem
.
Reimplemented in MAST::LevelSetIntersectedElem.
Definition at line 128 of file geom_elem.cpp.
|
virtual |
initializes the finite element shape function and quadrature object with the order of quadrature rule changed based on the extra_quadrature_order
.
Reimplemented in MAST::LevelSetIntersectedElem.
Definition at line 142 of file geom_elem.cpp.
|
virtual |
initializes the finite element shape function and quadrature object for the side with the order of quadrature rule changed based on the extra_quadrature_order
Reimplemented in MAST::LevelSetIntersectedElem.
Definition at line 159 of file geom_elem.cpp.
unsigned int MAST::GeomElem::n_sides_quadrature_elem | ( | ) | const |
number of sides on quadrature element.
Definition at line 101 of file geom_elem.cpp.
void MAST::GeomElem::set_local_y_vector | ( | const RealVectorX & | y_vec | ) |
for 1D elements the transformed coordinate system attached to the element defines the local x-axis along the length of the element.
The local-y axis should be specified using this method. This then provides the complete information about setting up the local three-dimensional coordinate system.
Definition at line 119 of file geom_elem.cpp.
const RealMatrixX & MAST::GeomElem::T_matrix | ( | ) | const |
O.
Definition at line 228 of file geom_elem.cpp.
void MAST::GeomElem::transform_point_to_global_coordinate | ( | const libMesh::Point & | local_pt, |
libMesh::Point & | global_pt | ||
) | const |
Definition at line 238 of file geom_elem.cpp.
void MAST::GeomElem::transform_vector_to_global_coordinate | ( | const libMesh::Point & | local_vec, |
libMesh::Point & | global_vec | ||
) | const |
Definition at line 258 of file geom_elem.cpp.
void MAST::GeomElem::transform_vector_to_global_coordinate | ( | const RealVectorX & | local_vec, |
RealVectorX & | global_vec | ||
) | const |
void MAST::GeomElem::transform_vector_to_local_coordinate | ( | const libMesh::Point & | global_vec, |
libMesh::Point & | local_vec | ||
) | const |
Definition at line 275 of file geom_elem.cpp.
void MAST::GeomElem::transform_vector_to_local_coordinate | ( | const RealVectorX & | global_vec, |
RealVectorX & | local_vec | ||
) | const |
Definition at line 303 of file geom_elem.cpp.
bool MAST::GeomElem::use_local_elem | ( | ) | const |
Vector and matrix quantities defined on one- and two-dimensional elements that are oriented in two or three-dimensional spaces may need to be transformed to/from element coordinate system.
This is required for one-dimensional elements that are not along the x-axis or two-dimensional elements that are not in the x-y plane.
true
if transformation is required, false
otherwise. Definition at line 314 of file geom_elem.cpp.
|
protected |
surface normal of the 1D/2D element.
Definition at line 246 of file geom_elem.h.
|
protected |
a local element is created if
Definition at line 235 of file geom_elem.h.
|
protected |
nodes for local element
Definition at line 251 of file geom_elem.h.
|
protected |
the y-axis that is used to define the coordinate system for a 1-D element.
This must be provided a local element is required.
Definition at line 241 of file geom_elem.h.
|
protected |
reference element in the mesh for which the data structure is initialized
Definition at line 230 of file geom_elem.h.
|
protected |
system initialization object for this element
Definition at line 222 of file geom_elem.h.
|
protected |
Transformation matrix defines T_ij = V_i^t .
Vn_j, where V_i are the unit vectors of the global cs, and Vn_j are the unit vectors of the local cs. To transform a vector from global to local cs, an_j = T^t a_i, and the reverse transformation is obtained as a_j = T an_i
Definition at line 260 of file geom_elem.h.
|
protected |
Definition at line 224 of file geom_elem.h.