#include <level_set_intersection.h>
|
std::unique_ptr< libMesh::Elem > | _first_order_elem (const libMesh::Elem &e) |
| creates a first order element from the given high-order element. More...
|
|
void | _init_on_first_order_ref_elem (const MAST::FieldFunction< Real > &phi, const libMesh::Elem &e, const Real t) |
| initializes on a reference element that is a first-order counterpart of the given high-order element. More...
|
|
void | _add_node_local_coords (const libMesh::Elem &e, std::vector< std::pair< libMesh::Point, libMesh::Point > > &side_nondim_points, std::map< const libMesh::Node *, libMesh::Point > &node_coord_map) |
|
void | _find_quad4_intersections (const MAST::FieldFunction< Real > &phi, const libMesh::Elem &e, const Real t, const std::map< const libMesh::Node *, std::pair< Real, bool > > &node_phi_vals) |
|
Real | _find_intersection_on_straight_edge (const libMesh::Point &p0, const libMesh::Point &p1, const MAST::FieldFunction< Real > &phi, const Real t) |
|
Definition at line 54 of file level_set_intersection.h.
MAST::LevelSetIntersection::LevelSetIntersection |
( |
| ) |
|
MAST::LevelSetIntersection::~LevelSetIntersection |
( |
| ) |
|
|
virtual |
void MAST::LevelSetIntersection::_add_node_local_coords |
( |
const libMesh::Elem & |
e, |
|
|
std::vector< std::pair< libMesh::Point, libMesh::Point > > & |
side_nondim_points, |
|
|
std::map< const libMesh::Node *, libMesh::Point > & |
node_coord_map |
|
) |
| |
|
protected |
Real MAST::LevelSetIntersection::_find_intersection_on_straight_edge |
( |
const libMesh::Point & |
p0, |
|
|
const libMesh::Point & |
p1, |
|
|
const MAST::FieldFunction< Real > & |
phi, |
|
|
const Real |
t |
|
) |
| |
|
protected |
void MAST::LevelSetIntersection::_find_quad4_intersections |
( |
const MAST::FieldFunction< Real > & |
phi, |
|
|
const libMesh::Elem & |
e, |
|
|
const Real |
t, |
|
|
const std::map< const libMesh::Node *, std::pair< Real, bool > > & |
node_phi_vals |
|
) |
| |
|
protected |
std::unique_ptr< libMesh::Elem > MAST::LevelSetIntersection::_first_order_elem |
( |
const libMesh::Elem & |
e | ) |
|
|
protected |
creates a first order element from the given high-order element.
For a QUAD9 a QUAD4 is obtained by only using the corner nodes. Note that this does not create any new nodes. The element can be deleted after use.
Definition at line 260 of file level_set_intersection.cpp.
void MAST::LevelSetIntersection::_init_on_first_order_ref_elem |
( |
const MAST::FieldFunction< Real > & |
phi, |
|
|
const libMesh::Elem & |
e, |
|
|
const Real |
t |
|
) |
| |
|
protected |
initializes on a reference element that is a first-order counterpart of the given high-order element.
For two-dimensional elements this is a QUAD4.
Definition at line 290 of file level_set_intersection.cpp.
void MAST::LevelSetIntersection::clear |
( |
| ) |
|
unsigned int MAST::LevelSetIntersection::edge_on_boundary |
( |
| ) |
const |
- Returns
- the edge number on the element if the mode is COLINEAR_EDGE, otherwise throws an error.
Definition at line 85 of file level_set_intersection.cpp.
const libMesh::Elem & MAST::LevelSetIntersection::elem |
( |
| ) |
const |
void MAST::LevelSetIntersection::get_corner_nodes_on_negative_phi |
( |
std::set< const libMesh::Node * > & |
nodes | ) |
const |
Real MAST::LevelSetIntersection::get_node_phi_value |
( |
const libMesh::Node * |
n | ) |
const |
const libMesh::Point & MAST::LevelSetIntersection::get_nondimensional_coordinate_for_node |
( |
const libMesh::Node & |
n | ) |
const |
Real MAST::LevelSetIntersection::get_positive_phi_volume_fraction |
( |
| ) |
const |
unsigned int MAST::LevelSetIntersection::get_side_on_interface |
( |
const libMesh::Elem & |
e | ) |
const |
- Returns
- the id of side that is on the interface. In case the element does not have a side on the interface, then a negative value is returned.
Definition at line 580 of file level_set_intersection.cpp.
const std::vector< const libMesh::Elem * > & MAST::LevelSetIntersection::get_sub_elems_negative_phi |
( |
| ) |
const |
const std::vector< const libMesh::Elem * > & MAST::LevelSetIntersection::get_sub_elems_positive_phi |
( |
| ) |
const |
bool MAST::LevelSetIntersection::has_side_on_interface |
( |
const libMesh::Elem & |
e | ) |
const |
bool MAST::LevelSetIntersection::if_elem_has_boundary |
( |
| ) |
const |
bool MAST::LevelSetIntersection::if_elem_has_positive_phi_region |
( |
| ) |
const |
- Returns
true
if there is any portion of the element (interior or edge) that is on the positive side of the level set function.
Definition at line 116 of file level_set_intersection.cpp.
bool MAST::LevelSetIntersection::if_elem_on_negative_phi |
( |
| ) |
const |
- Returns
true
if the element is entirely on the negative side of the level set without any intersection. This will return true
only if the mode is NO_INTERSECTION and all nodal phi values are negative.
Definition at line 106 of file level_set_intersection.cpp.
bool MAST::LevelSetIntersection::if_elem_on_positive_phi |
( |
| ) |
const |
- Returns
true
if the element is entirely on the positive side of the level set without any intersection. This will return true
only if the mode is NO_INTERSECTION and all nodal phi values are positive.
Definition at line 97 of file level_set_intersection.cpp.
bool MAST::LevelSetIntersection::if_intersection_through_elem |
( |
| ) |
const |
- Returns
true
if the intersection passes through the interior of the element. Note that COLINEAR_EDGE or THROUGH_NODE do not qualify for this.
Definition at line 136 of file level_set_intersection.cpp.
void MAST::LevelSetIntersection::init |
( |
const MAST::FieldFunction< Real > & |
phi, |
|
|
const libMesh::Elem & |
e, |
|
|
const Real |
t, |
|
|
unsigned int |
max_elem_id, |
|
|
unsigned int |
max_node_id |
|
) |
| |
unsigned int MAST::LevelSetIntersection::node_on_boundary |
( |
| ) |
const |
- Returns
- the node number on the element if the mode is THROUDH_NODE, otherwise throws an error.
Definition at line 74 of file level_set_intersection.cpp.
unsigned int MAST::LevelSetIntersection::_edge_num_on_boundary |
|
protected |
const libMesh::Elem* MAST::LevelSetIntersection::_elem |
|
protected |
std::map<const libMesh::Elem*, int> MAST::LevelSetIntersection::_elem_sides_on_interface |
|
protected |
bool MAST::LevelSetIntersection::_if_elem_on_negative_phi |
|
protected |
true
if element is completely on the negative side of level set with no intersection
Definition at line 230 of file level_set_intersection.h.
bool MAST::LevelSetIntersection::_if_elem_on_positive_phi |
|
protected |
true
if element is completely on the positive side of level set with no intersection
Definition at line 224 of file level_set_intersection.h.
bool MAST::LevelSetIntersection::_initialized |
|
protected |
const unsigned int MAST::LevelSetIntersection::_max_elem_divs |
|
protected |
unsigned int MAST::LevelSetIntersection::_max_iters |
|
protected |
unsigned int MAST::LevelSetIntersection::_max_mesh_elem_id |
|
protected |
unsigned int MAST::LevelSetIntersection::_max_mesh_node_id |
|
protected |
std::vector<const libMesh::Elem*> MAST::LevelSetIntersection::_negative_phi_elems |
|
protected |
std::vector<libMesh::Elem*> MAST::LevelSetIntersection::_new_elems |
|
protected |
std::vector<libMesh::Node*> MAST::LevelSetIntersection::_new_nodes |
|
protected |
std::map<const libMesh::Node*, libMesh::Point> MAST::LevelSetIntersection::_node_local_coords |
|
protected |
unsigned int MAST::LevelSetIntersection::_node_num_on_boundary |
|
protected |
std::map<const libMesh::Node*, std::pair<Real, bool> > MAST::LevelSetIntersection::_node_phi_vals |
|
protected |
std::vector<const libMesh::Elem*> MAST::LevelSetIntersection::_positive_phi_elems |
|
protected |
Real MAST::LevelSetIntersection::_tol |
|
protected |
The documentation for this class was generated from the following files: