MAST
MAST::SubCellFE Class Reference

This class specializes the MAST::FEBase class for level-set applications where integration is to be performed on a sub-cell inside an element. More...

#include <sub_cell_fe.h>

Inheritance diagram for MAST::SubCellFE:
Collaboration diagram for MAST::SubCellFE:

Public Member Functions

 SubCellFE (const MAST::SystemInitialization &sys, const MAST::LevelSetIntersection &intersection)
 
virtual ~SubCellFE ()
 
virtual void init (const MAST::GeomElem &elem, bool init_grads, const std::vector< libMesh::Point > *pts=nullptr)
 This assumes that elem is the sub-cell and that the original element will be available as the parent of this element. More...
 
virtual void init_for_side (const MAST::GeomElem &elem, unsigned int s, bool if_calculate_dphi)
 This assumes that elem is the sub-cell and that the original element will be available as the parent of this element. More...
 
virtual const std::vector< Real > & get_JxW () const
 
virtual const std::vector< libMesh::Point > & get_qpoints () const
 
- Public Member Functions inherited from MAST::FEBase
 FEBase (const MAST::SystemInitialization &sys)
 
virtual ~FEBase ()
 
void set_extra_quadrature_order (int n)
 this is used, in addition to libMesh::System::extra_quadrature_order to set the quadrature rule. More...
 
void set_evaluate_second_order_derivatives (bool f)
 sets the flag for evaluation of second order derivative More...
 
libMesh::FEType get_fe_type () const
 
virtual const std::vector< libMesh::Point > & get_xyz () const
 physical location of the quadrature point in the global coordinate system for the reference element More...
 
virtual unsigned int n_shape_functions () const
 
virtual const std::vector< std::vector< Real > > & get_phi () const
 
virtual const std::vector< std::vector< libMesh::RealVectorValue > > & get_dphi () const
 
virtual const std::vector< std::vector< libMesh::RealTensorValue > > & get_d2phi () const
 
virtual const std::vector< Real > & get_dxidx () const
 
virtual const std::vector< Real > & get_dxidy () const
 
virtual const std::vector< Real > & get_dxidz () const
 
virtual const std::vector< Real > & get_detadx () const
 
virtual const std::vector< Real > & get_detady () const
 
virtual const std::vector< Real > & get_detadz () const
 
virtual const std::vector< Real > & get_dzetadx () const
 
virtual const std::vector< Real > & get_dzetady () const
 
virtual const std::vector< Real > & get_dzetadz () const
 
virtual const std::vector< libMesh::RealVectorValue > & get_dxyzdxi () const
 
virtual const std::vector< libMesh::RealVectorValue > & get_dxyzdeta () const
 
virtual const std::vector< libMesh::RealVectorValue > & get_dxyzdzeta () const
 
virtual const std::vector< std::vector< Real > > & get_dphidxi () const
 
virtual const std::vector< std::vector< Real > > & get_dphideta () const
 
virtual const std::vector< std::vector< Real > > & get_dphidzeta () const
 
virtual const std::vector< libMesh::Point > & get_normals_for_reference_coordinate () const
 normals defined in the global coordinate system for the reference element More...
 
virtual const std::vector< libMesh::Point > & get_normals_for_local_coordinate () const
 normals defined in the coordinate system for the local reference element. More...
 
virtual const libMesh::QBase & get_qrule () const
 

Protected Attributes

const MAST::LevelSetIntersection_intersection
 
std::vector< Real_subcell_JxW
 
- Protected Attributes inherited from MAST::FEBase
const MAST::SystemInitialization_sys
 
unsigned int _extra_quadrature_order
 
bool _init_second_order_derivatives
 
bool _initialized
 
const MAST::GeomElem_elem
 
libMesh::FEBase * _fe
 
libMesh::QBase * _qrule
 
std::vector< libMesh::Point > _qpoints
 
std::vector< libMesh::Point > _global_xyz
 
std::vector< libMesh::Point > _local_normals
 
std::vector< libMesh::Point > _global_normals
 

Detailed Description

This class specializes the MAST::FEBase class for level-set applications where integration is to be performed on a sub-cell inside an element.

This requires that the quadrature be initialized using the points in the sub-cell, but evaluated on the parent element. This way, the shape functions of the original element are used, and the quadrature weights (JxW) are provided by the sub-element.

Definition at line 40 of file sub_cell_fe.h.

Constructor & Destructor Documentation

MAST::SubCellFE::SubCellFE ( const MAST::SystemInitialization sys,
const MAST::LevelSetIntersection intersection 
)

Definition at line 33 of file sub_cell_fe.cpp.

MAST::SubCellFE::~SubCellFE ( )
virtual

Definition at line 42 of file sub_cell_fe.cpp.

Member Function Documentation

const std::vector< Real > & MAST::SubCellFE::get_JxW ( ) const
virtual

Reimplemented from MAST::FEBase.

Definition at line 391 of file sub_cell_fe.cpp.

Here is the call graph for this function:

const std::vector< libMesh::Point > & MAST::SubCellFE::get_qpoints ( ) const
virtual

Reimplemented from MAST::FEBase.

Definition at line 404 of file sub_cell_fe.cpp.

Here is the call graph for this function:

void MAST::SubCellFE::init ( const MAST::GeomElem elem,
bool  init_grads,
const std::vector< libMesh::Point > *  pts = nullptr 
)
virtual

This assumes that elem is the sub-cell and that the original element will be available as the parent of this element.

Reimplemented from MAST::FEBase.

Definition at line 48 of file sub_cell_fe.cpp.

Here is the call graph for this function:

void MAST::SubCellFE::init_for_side ( const MAST::GeomElem elem,
unsigned int  s,
bool  if_calculate_dphi 
)
virtual

This assumes that elem is the sub-cell and that the original element will be available as the parent of this element.

Reimplemented from MAST::FEBase.

Definition at line 215 of file sub_cell_fe.cpp.

Here is the call graph for this function:

Member Data Documentation

const MAST::LevelSetIntersection& MAST::SubCellFE::_intersection
protected

Definition at line 75 of file sub_cell_fe.h.

std::vector<Real> MAST::SubCellFE::_subcell_JxW
protected

Definition at line 77 of file sub_cell_fe.h.


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