MAST
|
#include <interface_dof_handler.h>
Public Member Functions | |
LevelSetInterfaceDofHandler () | |
virtual | ~LevelSetInterfaceDofHandler () |
void | init (const MAST::SystemInitialization &sys_init, MAST::LevelSetIntersection &intersection, MAST::FieldFunction< Real > &phi) |
MAST::FieldFunction< Real > & | get_level_set_function () |
bool | if_factor_element (const libMesh::Elem &elem) const |
void | partition_local_elem_rows (const libMesh::Elem &elem, std::vector< libMesh::dof_id_type > &material_dofs, std::vector< libMesh::dof_id_type > &void_dofs) |
identifies which rows in the element residual vector and rows/columns in the jacobian matrix correspond to the material and void. More... | |
void | partition_global_elem_rows (const libMesh::Elem &elem, std::vector< libMesh::dof_id_type > &material_dofs, std::vector< libMesh::dof_id_type > &void_dofs) |
fills the material_dofs and void_dofs with the dofs_ids in the global system corresponding to these dofs in the element. More... | |
void | solution_of_factored_element (const libMesh::Elem &elem, RealVectorX &elem_sol) |
updates the components of the solution vector in elem_sol for the void domain using the stored solution for this element. More... | |
void | element_factored_jacobian (const libMesh::Elem &elem, const RealMatrixX &jac, std::vector< libMesh::dof_id_type > &material_dof_ids, RealMatrixX &jac_factored_uu) |
a wrapper around the second element_factored_jacobian. More... | |
void | element_factored_residual_and_jacobian (const libMesh::Elem &elem, const RealMatrixX &jac, const RealVectorX &res, std::vector< libMesh::dof_id_type > &material_dof_ids, RealMatrixX &jac_factored_uu, RealVectorX &res_factored_u) |
factorizes the residual and jacobian into the components for the dofs on material nodes. More... | |
void | element_factored_jacobian (const libMesh::Elem &elem, const RealMatrixX &jac, std::vector< libMesh::dof_id_type > &material_dof_ids, std::vector< libMesh::dof_id_type > &void_dof_ids, RealMatrixX &jac_uu, RealMatrixX &jac_uf, RealMatrixX &jac_fu, RealMatrixX &jac_ff, RealMatrixX &jac_factored_uu) |
This takes the jacobian jac and factors it over the material and void domains and returns the following matrix in jac_factored_uu : . More... | |
void | update_factored_element_solution (const libMesh::Elem &elem, const RealMatrixX &res, const RealMatrixX &jac, const RealMatrixX &sol, const RealMatrixX &dsol, RealVectorX &updated_sol) |
Protected Member Functions | |
void | _compute_matrix_inverse (const RealMatrixX &mat, RealMatrixX &mat_inv) |
Protected Attributes | |
const MAST::SystemInitialization * | _sys_init |
MAST::FieldFunction< Real > * | _phi |
std::map< const libMesh::Elem *, RealVectorX > | _elem_sol |
std::map< const libMesh::Elem *, std::set< const libMesh::Node * > > | _elem_void_nodes |
map of nodes on each element that will be added as independent dofs. More... | |
std::map< const libMesh::Node *, std::set< const libMesh::Elem * > > | _void_node_elems |
map of elements that each node will provide a new dof for More... | |
std::map< const libMesh::Elem *, std::map< libMesh::dof_id_type, libMesh::dof_id_type > > | _dof_ids |
new dof ids for each elem/old_dof pair. More... | |
Definition at line 41 of file interface_dof_handler.h.
MAST::LevelSetInterfaceDofHandler::LevelSetInterfaceDofHandler | ( | ) |
Definition at line 33 of file interface_dof_handler.cpp.
|
virtual |
Definition at line 41 of file interface_dof_handler.cpp.
|
protected |
Definition at line 461 of file interface_dof_handler.cpp.
void MAST::LevelSetInterfaceDofHandler::element_factored_jacobian | ( | const libMesh::Elem & | elem, |
const RealMatrixX & | jac, | ||
std::vector< libMesh::dof_id_type > & | material_dof_ids, | ||
RealMatrixX & | jac_factored_uu | ||
) |
a wrapper around the second element_factored_jacobian.
This takes the jacobian jac
and factors it over the material and void domains and returns the following matrix in jac_factored_uu
: . The *_dof_ids
are the local rows of the element vector/matrix quantities that are in the material domain.
Definition at line 245 of file interface_dof_handler.cpp.
void MAST::LevelSetInterfaceDofHandler::element_factored_jacobian | ( | const libMesh::Elem & | elem, |
const RealMatrixX & | jac, | ||
std::vector< libMesh::dof_id_type > & | material_dof_ids, | ||
std::vector< libMesh::dof_id_type > & | void_dof_ids, | ||
RealMatrixX & | jac_uu, | ||
RealMatrixX & | jac_uf, | ||
RealMatrixX & | jac_fu, | ||
RealMatrixX & | jac_ff, | ||
RealMatrixX & | jac_factored_uu | ||
) |
This takes the jacobian jac
and factors it over the material and void domains and returns the following matrix in jac_factored_uu
: .
The *_dof_ids
are the local rows of the element vector/matrix quantities that are in the material/void domain.
Definition at line 326 of file interface_dof_handler.cpp.
void MAST::LevelSetInterfaceDofHandler::element_factored_residual_and_jacobian | ( | const libMesh::Elem & | elem, |
const RealMatrixX & | jac, | ||
const RealVectorX & | res, | ||
std::vector< libMesh::dof_id_type > & | material_dof_ids, | ||
RealMatrixX & | jac_factored_uu, | ||
RealVectorX & | res_factored_u | ||
) |
factorizes the residual and jacobian into the components for the dofs on material nodes.
The factored Jacobian is defined as jac_factored_uu
: . The factored residual is defined as res_factored_u
: . The material_dof_ids
are the rows in the element quantity that belong to the material domain.
Definition at line 275 of file interface_dof_handler.cpp.
|
inline |
Definition at line 54 of file interface_dof_handler.h.
bool MAST::LevelSetInterfaceDofHandler::if_factor_element | ( | const libMesh::Elem & | elem | ) | const |
Definition at line 132 of file interface_dof_handler.cpp.
void MAST::LevelSetInterfaceDofHandler::init | ( | const MAST::SystemInitialization & | sys_init, |
MAST::LevelSetIntersection & | intersection, | ||
MAST::FieldFunction< Real > & | phi | ||
) |
Definition at line 47 of file interface_dof_handler.cpp.
void MAST::LevelSetInterfaceDofHandler::partition_global_elem_rows | ( | const libMesh::Elem & | elem, |
std::vector< libMesh::dof_id_type > & | material_dofs, | ||
std::vector< libMesh::dof_id_type > & | void_dofs | ||
) |
fills the material_dofs
and void_dofs
with the dofs_ids in the global system corresponding to these dofs in the element.
Definition at line 191 of file interface_dof_handler.cpp.
void MAST::LevelSetInterfaceDofHandler::partition_local_elem_rows | ( | const libMesh::Elem & | elem, |
std::vector< libMesh::dof_id_type > & | material_dofs, | ||
std::vector< libMesh::dof_id_type > & | void_dofs | ||
) |
identifies which rows in the element residual vector and rows/columns in the jacobian matrix correspond to the material and void.
This is done under the assumption that the dofs are stored in an variable major sequence. For example, an element with four nodes and two variales will have the following sequence .
Definition at line 142 of file interface_dof_handler.cpp.
void MAST::LevelSetInterfaceDofHandler::solution_of_factored_element | ( | const libMesh::Elem & | elem, |
RealVectorX & | elem_sol | ||
) |
updates the components of the solution vector in elem_sol
for the void domain using the stored solution for this element.
Definition at line 217 of file interface_dof_handler.cpp.
void MAST::LevelSetInterfaceDofHandler::update_factored_element_solution | ( | const libMesh::Elem & | elem, |
const RealMatrixX & | res, | ||
const RealMatrixX & | jac, | ||
const RealMatrixX & | sol, | ||
const RealMatrixX & | dsol, | ||
RealVectorX & | updated_sol | ||
) |
Definition at line 381 of file interface_dof_handler.cpp.
|
protected |
new dof ids for each elem/old_dof pair.
Definition at line 175 of file interface_dof_handler.h.
|
protected |
Definition at line 159 of file interface_dof_handler.h.
|
protected |
map of nodes on each element that will be added as independent dofs.
Definition at line 165 of file interface_dof_handler.h.
|
protected |
Definition at line 157 of file interface_dof_handler.h.
|
protected |
Definition at line 156 of file interface_dof_handler.h.
|
protected |
map of elements that each node will provide a new dof for
Definition at line 170 of file interface_dof_handler.h.