Class representing a map (diffeomorphism) F parameterizing a 3D element by its canonical preimage. More...
#include <ElemUtil.hpp>
Classes | |
class | ArgError |
class | EvaluationError |
Public Member Functions | |
Map (const std::vector< CartVect > &v) | |
Construct a Map defined by the given std::vector of vertices. More... | |
Map (const unsigned int n) | |
Construct a Map defined by n vertices. More... | |
virtual | ~Map () |
virtual CartVect | evaluate (const CartVect &xi) const =0 |
Evaluate the map on \(x_i\) (calculate \(\vec x = F($\vec \xi)\) ) More... | |
virtual CartVect | ievaluate (const CartVect &x, double tol=1e-6, const CartVect &x0=CartVect(0.0)) const |
Evaluate the inverse map (calculate \(\vec \xi = F^-1($\vec x)\) to given tolerance) More... | |
virtual bool | inside_nat_space (const CartVect &xi, double &tol) const =0 |
decide if within the natural param space, with a tolerance More... | |
virtual Matrix3 | jacobian (const CartVect &xi) const =0 |
Evaluate the map's Jacobi matrix. More... | |
virtual Matrix3 | ijacobian (const CartVect &xi) const |
Evaluate the inverse of the Jacobi matrix. More... | |
virtual double | det_jacobian (const CartVect &xi) const |
Evaluate the determinate of the Jacobi matrix. More... | |
virtual double | det_ijacobian (const CartVect &xi) const |
Evaluate the determinate of the inverse Jacobi matrix. More... | |
virtual double | evaluate_scalar_field (const CartVect &xi, const double *field_vertex_values) const =0 |
Evaluate a scalar field at a point given field values at the vertices. More... | |
virtual double | integrate_scalar_field (const double *field_vertex_values) const =0 |
Integrate a scalar field over the element given field values at the vertices. More... | |
unsigned int | size () |
Size of the vertices vector. More... | |
const std::vector< CartVect > & | get_vertices () |
Retrieve vertices. More... | |
virtual void | set_vertices (const std::vector< CartVect > &v) |
Set vertices. More... | |
virtual bool | inside_box (const CartVect &xi, double &tol) const |
Protected Attributes | |
std::vector< CartVect > | vertex |
Class representing a map (diffeomorphism) F parameterizing a 3D element by its canonical preimage.
Definition at line 51 of file ElemUtil.hpp.
|
inline |
Construct a Map defined by the given std::vector of vertices.
Definition at line 55 of file ElemUtil.hpp.
References set_vertices().
|
inline |
Construct a Map defined by n vertices.
Definition at line 61 of file ElemUtil.hpp.
|
virtual |
Definition at line 396 of file ElemUtil.cpp.
|
inlinevirtual |
Evaluate the determinate of the inverse Jacobi matrix.
Reimplemented in moab::Element::LinearTri, and moab::Element::LinearTet.
Definition at line 92 of file ElemUtil.hpp.
References moab::Matrix3::determinant(), moab::Matrix3::inverse(), and jacobian().
|
inlinevirtual |
Evaluate the determinate of the Jacobi matrix.
Reimplemented in moab::Element::LinearTri, and moab::Element::LinearTet.
Definition at line 85 of file ElemUtil.hpp.
References moab::Matrix3::determinant(), and jacobian().
Referenced by moab::Element::LinearHex::integrate_scalar_field(), moab::Element::LinearQuad::integrate_scalar_field(), and moab::Element::LinearEdge::integrate_scalar_field().
Evaluate the map on \(x_i\) (calculate \(\vec x = F($\vec \xi)\) )
Implemented in moab::Element::SpectralQuad, moab::Element::LinearEdge, moab::Element::LinearTri, moab::Element::LinearQuad, moab::Element::SpectralHex, moab::Element::LinearTet, moab::Element::QuadraticHex, and moab::Element::LinearHex.
Referenced by ievaluate().
|
pure virtual |
Evaluate a scalar field at a point given field values at the vertices.
Implemented in moab::Element::SpectralQuad, moab::Element::LinearEdge, moab::Element::LinearTri, moab::Element::LinearQuad, moab::Element::SpectralHex, moab::Element::LinearTet, moab::Element::QuadraticHex, and moab::Element::LinearHex.
Referenced by moab::Coupler::interp_field().
|
inline |
|
virtual |
Evaluate the inverse map (calculate \(\vec \xi = F^-1($\vec x)\) to given tolerance)
Reimplemented in moab::Element::SpectralQuad, moab::Element::SphericalTri, moab::Element::LinearTri, moab::Element::SphericalQuad, moab::Element::SpectralHex, and moab::Element::LinearTet.
Definition at line 421 of file ElemUtil.cpp.
References moab::Matrix3::determinant(), evaluate(), moab::Matrix3::inverse(), and jacobian().
Referenced by moab::Element::SphericalQuad::ievaluate(), moab::Coupler::nat_param(), test_hex(), and test_hex_nat_coords().
Evaluate the inverse of the Jacobi matrix.
Reimplemented in moab::Element::LinearTri, and moab::Element::LinearTet.
Definition at line 79 of file ElemUtil.hpp.
References moab::Matrix3::inverse(), and jacobian().
|
virtual |
Reimplemented in moab::Element::SphericalTri, and moab::Element::SphericalQuad.
Definition at line 412 of file ElemUtil.cpp.
References moab::CartVect::array(), and moab::BoundBox::contains_point().
Referenced by moab::Element::SphericalQuad::inside_box(), moab::Element::SphericalTri::inside_box(), moab::Coupler::nat_param(), test_hex(), and test_linear_tri().
|
pure virtual |
decide if within the natural param space, with a tolerance
Implemented in moab::Element::SpectralQuad, moab::Element::LinearEdge, moab::Element::LinearTri, moab::Element::LinearQuad, moab::Element::SpectralHex, moab::Element::LinearTet, moab::Element::QuadraticHex, and moab::Element::LinearHex.
|
pure virtual |
Integrate a scalar field over the element given field values at the vertices.
Implemented in moab::Element::SpectralQuad, moab::Element::LinearEdge, moab::Element::LinearTri, moab::Element::LinearQuad, moab::Element::SpectralHex, moab::Element::LinearTet, moab::Element::QuadraticHex, and moab::Element::LinearHex.
Referenced by moab::Coupler::get_group_integ_vals().
Evaluate the map's Jacobi matrix.
Implemented in moab::Element::SpectralQuad, moab::Element::LinearEdge, moab::Element::LinearQuad, moab::Element::SpectralHex, moab::Element::QuadraticHex, moab::Element::LinearHex, moab::Element::LinearTri, and moab::Element::LinearTet.
Referenced by det_ijacobian(), det_jacobian(), ievaluate(), and ijacobian().
|
virtual |
Set vertices.
Reimplemented in moab::Element::LinearTri, and moab::Element::LinearTet.
Definition at line 403 of file ElemUtil.cpp.
Referenced by Map(), moab::Element::LinearTet::set_vertices(), moab::Element::LinearTri::set_vertices(), and test_spectral_quad().
|
inline |
Size of the vertices vector.
Definition at line 103 of file ElemUtil.hpp.
Referenced by moab::Element::SpectralQuad::get_gl_points().
|
protected |
Definition at line 141 of file ElemUtil.hpp.
Referenced by get_vertices().