MAST
Multidisciplinary-design Adaptation and Sensitivity Toolkit (MAST)
MAST::SubElemMeshRefinement Class Reference

Detailed Description

Definition at line 38 of file sub_elem_mesh_refinement.h.

#include <sub_elem_mesh_refinement.h>

Inheritance diagram for MAST::SubElemMeshRefinement:
Collaboration diagram for MAST::SubElemMeshRefinement:

Public Member Functions

 SubElemMeshRefinement (libMesh::MeshBase &mesh, libMesh::System &sys)
 
virtual ~SubElemMeshRefinement ()
 
bool clear_mesh ()
 
virtual void constrain ()
 provides implementation of the libMesh::System::Constraint::constrain() virtual method More...
 
bool initialized ()
 
bool process_mesh (const MAST::FieldFunction< Real > &phi, bool strong_discontinuity, Real time, unsigned int negative_level_set_subdomain_offset, unsigned int inactive_subdomain_offset, unsigned int level_set_boundary_id)
 

Protected Member Functions

libMesh::Elem * _add_elem ()
 
libMesh::Node * _add_node (const libMesh::Point &p, bool strong_disontinuity, bool positive_phi, unsigned int processor_id, const std::pair< const libMesh::Node *, const libMesh::Node *> &bounding_nodes)
 
void _process_negative_element (unsigned int negative_level_set_subdomain_offset, unsigned level_set_boundary_id, libMesh::Elem &e, MAST::LevelSetIntersection &intersect)
 
void _process_sub_elements (bool strong_discontinuity, unsigned int negative_level_set_subdomain_offset, unsigned int level_set_boundary_id, libMesh::Elem &e, MAST::LevelSetIntersection &intersect, bool positive_phi, const std::vector< const libMesh::Elem *> &elems)
 

Protected Attributes

std::set< std::pair< const libMesh::Node *, std::pair< const libMesh::Node *, const libMesh::Node * > > > _hanging_node
 
unsigned int _inactive_subdomain_offset
 
bool _initialized
 
unsigned int _level_set_boundary_id
 
libMesh::MeshBase & _mesh
 
std::set< unsigned int > _negative_level_set_ids
 
unsigned int _negative_level_set_subdomain_offset
 
std::vector< libMesh::Elem * > _new_elems
 
std::vector< libMesh::Node * > _new_nodes
 
MAST::SubElemNodeMap_node_map
 
std::vector< std::pair< libMesh::Elem *, unsigned int > > _old_elems
 
bool _strong_discontinuity
 
libMesh::System & _system
 

Constructor & Destructor Documentation

◆ SubElemMeshRefinement()

MAST::SubElemMeshRefinement::SubElemMeshRefinement ( libMesh::MeshBase &  mesh,
libMesh::System &  sys 
)

Definition at line 33 of file sub_elem_mesh_refinement.cpp.

◆ ~SubElemMeshRefinement()

MAST::SubElemMeshRefinement::~SubElemMeshRefinement ( )
virtual

Definition at line 49 of file sub_elem_mesh_refinement.cpp.

Member Function Documentation

◆ _add_elem()

libMesh::Elem* MAST::SubElemMeshRefinement::_add_elem ( )
protected

◆ _add_node()

libMesh::Node * MAST::SubElemMeshRefinement::_add_node ( const libMesh::Point &  p,
bool  strong_disontinuity,
bool  positive_phi,
unsigned int  processor_id,
const std::pair< const libMesh::Node *, const libMesh::Node *> &  bounding_nodes 
)
protected
Returns
a node between the bounding nodes at the specified location. If a node already exists between these bounding nodes the that node is returned. Else, a new node is created, added to the mesh and returned.

Definition at line 649 of file sub_elem_mesh_refinement.cpp.

◆ _process_negative_element()

void MAST::SubElemMeshRefinement::_process_negative_element ( unsigned int  negative_level_set_subdomain_offset,
unsigned  level_set_boundary_id,
libMesh::Elem &  e,
MAST::LevelSetIntersection intersect 
)
protected

Definition at line 566 of file sub_elem_mesh_refinement.cpp.

◆ _process_sub_elements()

void MAST::SubElemMeshRefinement::_process_sub_elements ( bool  strong_discontinuity,
unsigned int  negative_level_set_subdomain_offset,
unsigned int  level_set_boundary_id,
libMesh::Elem &  e,
MAST::LevelSetIntersection intersect,
bool  positive_phi,
const std::vector< const libMesh::Elem *> &  elems 
)
protected

Definition at line 405 of file sub_elem_mesh_refinement.cpp.

◆ clear_mesh()

bool MAST::SubElemMeshRefinement::clear_mesh ( )

Definition at line 220 of file sub_elem_mesh_refinement.cpp.

◆ constrain()

void MAST::SubElemMeshRefinement::constrain ( )
virtual

provides implementation of the libMesh::System::Constraint::constrain() virtual method

Definition at line 286 of file sub_elem_mesh_refinement.cpp.

◆ initialized()

bool MAST::SubElemMeshRefinement::initialized ( )
inline

Definition at line 48 of file sub_elem_mesh_refinement.h.

◆ process_mesh()

bool MAST::SubElemMeshRefinement::process_mesh ( const MAST::FieldFunction< Real > &  phi,
bool  strong_discontinuity,
Real  time,
unsigned int  negative_level_set_subdomain_offset,
unsigned int  inactive_subdomain_offset,
unsigned int  level_set_boundary_id 
)

Definition at line 58 of file sub_elem_mesh_refinement.cpp.

Member Data Documentation

◆ _hanging_node

std::set<std::pair<const libMesh::Node*, std::pair<const libMesh::Node*, const libMesh::Node*> > > MAST::SubElemMeshRefinement::_hanging_node
protected

Definition at line 117 of file sub_elem_mesh_refinement.h.

◆ _inactive_subdomain_offset

unsigned int MAST::SubElemMeshRefinement::_inactive_subdomain_offset
protected

Definition at line 102 of file sub_elem_mesh_refinement.h.

◆ _initialized

bool MAST::SubElemMeshRefinement::_initialized
protected

Definition at line 96 of file sub_elem_mesh_refinement.h.

◆ _level_set_boundary_id

unsigned int MAST::SubElemMeshRefinement::_level_set_boundary_id
protected

Definition at line 104 of file sub_elem_mesh_refinement.h.

◆ _mesh

libMesh::MeshBase& MAST::SubElemMeshRefinement::_mesh
protected

Definition at line 106 of file sub_elem_mesh_refinement.h.

◆ _negative_level_set_ids

std::set<unsigned int> MAST::SubElemMeshRefinement::_negative_level_set_ids
protected

Definition at line 113 of file sub_elem_mesh_refinement.h.

◆ _negative_level_set_subdomain_offset

unsigned int MAST::SubElemMeshRefinement::_negative_level_set_subdomain_offset
protected

Definition at line 100 of file sub_elem_mesh_refinement.h.

◆ _new_elems

std::vector<libMesh::Elem*> MAST::SubElemMeshRefinement::_new_elems
protected

Definition at line 115 of file sub_elem_mesh_refinement.h.

◆ _new_nodes

std::vector<libMesh::Node*> MAST::SubElemMeshRefinement::_new_nodes
protected

Definition at line 114 of file sub_elem_mesh_refinement.h.

◆ _node_map

MAST::SubElemNodeMap* MAST::SubElemMeshRefinement::_node_map
protected

Definition at line 111 of file sub_elem_mesh_refinement.h.

◆ _old_elems

std::vector<std::pair<libMesh::Elem*, unsigned int> > MAST::SubElemMeshRefinement::_old_elems
protected

Definition at line 116 of file sub_elem_mesh_refinement.h.

◆ _strong_discontinuity

bool MAST::SubElemMeshRefinement::_strong_discontinuity
protected

Definition at line 98 of file sub_elem_mesh_refinement.h.

◆ _system

libMesh::System& MAST::SubElemMeshRefinement::_system
protected

Definition at line 108 of file sub_elem_mesh_refinement.h.


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