MAST
MAST::LevelSetIntersectedElem Class Reference

This class inherits from MAST::GeomElem and provides an interface to initialize FE objects on sub-elements obtained from intersection of level-set function with a reference element. More...

#include <level_set_intersected_elem.h>

Inheritance diagram for MAST::LevelSetIntersectedElem:
Collaboration diagram for MAST::LevelSetIntersectedElem:

Public Member Functions

 LevelSetIntersectedElem ()
 
virtual ~LevelSetIntersectedElem ()
 
virtual const libMesh::Elem & get_quadrature_elem () const
 
virtual const libMesh::Elem & get_quadrature_local_elem () const
 
bool if_elem_has_level_set_boundary () const
 
bool if_subelem_has_side_on_level_set_boundary () const
 
int get_subelem_side_on_level_set_boundary () const
 
virtual void init (const libMesh::Elem &elem, const MAST::SystemInitialization &sys_init)
 This method should not get called for this class. More...
 
virtual void init (const libMesh::Elem &elem, const MAST::SystemInitialization &sys_init, MAST::LevelSetIntersection &intersection)
 Initializes the object for a sub element obtained from the level-set intersection of a reference element. More...
 
virtual std::unique_ptr< MAST::FEBaseinit_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::FEBaseinit_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...
 
- Public Member Functions inherited from MAST::GeomElem
 GeomElem ()
 
virtual ~GeomElem ()
 
virtual const libMesh::Elem & get_reference_elem () const
 
virtual const libMesh::Elem & get_reference_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 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 RealVectorXdomain_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 RealMatrixXT_matrix () const
 O. More...
 

Protected Attributes

const libMesh::Elem * _sub_elem
 
libMesh::Elem * _local_sub_elem
 
MAST::LevelSetIntersection_intersection
 
std::vector< libMesh::Node * > _local_subelem_nodes
 nodes for local element More...
 
- Protected Attributes inherited from MAST::GeomElem
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...
 

Additional Inherited Members

- Protected Member Functions inherited from MAST::GeomElem
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...
 

Detailed Description

This class inherits from MAST::GeomElem and provides an interface to initialize FE objects on sub-elements obtained from intersection of level-set function with a reference element.

Definition at line 38 of file level_set_intersected_elem.h.

Constructor & Destructor Documentation

MAST::LevelSetIntersectedElem::LevelSetIntersectedElem ( )

Definition at line 26 of file level_set_intersected_elem.cpp.

MAST::LevelSetIntersectedElem::~LevelSetIntersectedElem ( )
virtual

Definition at line 36 of file level_set_intersected_elem.cpp.

Member Function Documentation

const libMesh::Elem & MAST::LevelSetIntersectedElem::get_quadrature_elem ( ) const
virtual
Returns
a reference to quadrature element.

Reimplemented from MAST::GeomElem.

Definition at line 48 of file level_set_intersected_elem.cpp.

const libMesh::Elem & MAST::LevelSetIntersectedElem::get_quadrature_local_elem ( ) const
virtual
Returns
a reference to quadrature element.

Reimplemented from MAST::GeomElem.

Definition at line 57 of file level_set_intersected_elem.cpp.

int MAST::LevelSetIntersectedElem::get_subelem_side_on_level_set_boundary ( ) const
Returns
the side id of the sub element which is coincident with the zero level set boundary.

Definition at line 86 of file level_set_intersected_elem.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool MAST::LevelSetIntersectedElem::if_elem_has_level_set_boundary ( ) const
Returns
true if the element has a zero level set boundary that passes through it.

Definition at line 66 of file level_set_intersected_elem.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool MAST::LevelSetIntersectedElem::if_subelem_has_side_on_level_set_boundary ( ) const
Returns
true if the sub element has a side that is coincident with the zero level set boundary.

Definition at line 76 of file level_set_intersected_elem.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void MAST::LevelSetIntersectedElem::init ( const libMesh::Elem &  elem,
const MAST::SystemInitialization sys_init 
)
inlinevirtual

This method should not get called for this class.

Call the overloaded method that accepts the intersection object.

Reimplemented from MAST::GeomElem.

Definition at line 79 of file level_set_intersected_elem.h.

Here is the call graph for this function:

Here is the caller graph for this function:

void MAST::LevelSetIntersectedElem::init ( const libMesh::Elem &  elem,
const MAST::SystemInitialization sys_init,
MAST::LevelSetIntersection intersection 
)
virtual

Initializes the object for a sub element obtained from the level-set intersection of a reference element.

Definition at line 96 of file level_set_intersected_elem.cpp.

Here is the call graph for this function:

std::unique_ptr< MAST::FEBase > MAST::LevelSetIntersectedElem::init_fe ( bool  init_grads,
bool  init_second_order_derivative,
int  extra_quadrature_order = 0 
) const
virtual

initializes the finite element shape function and quadrature object with the order of quadrature rule changed based on the extra_quadrature_order.

Reimplemented from MAST::GeomElem.

Definition at line 114 of file level_set_intersected_elem.cpp.

Here is the caller graph for this function:

std::unique_ptr< MAST::FEBase > MAST::LevelSetIntersectedElem::init_side_fe ( unsigned int  s,
bool  init_grads,
int  extra_quadrature_order = 0 
) const
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 from MAST::GeomElem.

Definition at line 129 of file level_set_intersected_elem.cpp.

Here is the caller graph for this function:

Member Data Documentation

MAST::LevelSetIntersection* MAST::LevelSetIntersectedElem::_intersection
protected

Definition at line 121 of file level_set_intersected_elem.h.

libMesh::Elem* MAST::LevelSetIntersectedElem::_local_sub_elem
protected

Definition at line 119 of file level_set_intersected_elem.h.

std::vector<libMesh::Node*> MAST::LevelSetIntersectedElem::_local_subelem_nodes
protected

nodes for local element

Definition at line 126 of file level_set_intersected_elem.h.

const libMesh::Elem* MAST::LevelSetIntersectedElem::_sub_elem
protected

Definition at line 118 of file level_set_intersected_elem.h.


The documentation for this class was generated from the following files: