MAST
|
This provides a wrapper FieldFunction compatible class that interpolates the solution using libMesh's MeshFunction class. More...
#include <mesh_field_function.h>
Public Member Functions | |
MeshFieldFunction (MAST::SystemInitialization &sys, const std::string &nm) | |
constructor More... | |
MeshFieldFunction (libMesh::System &sys, const std::string &nm) | |
constructor More... | |
virtual | ~MeshFieldFunction () |
destructor More... | |
virtual void | operator() (const libMesh::Point &p, const Real t, RealVectorX &v) const |
calculates the value of the function at the specified point, p , and time, t , and returns it in v . More... | |
virtual void | gradient (const libMesh::Point &p, const Real t, RealMatrixX &g) const |
calculates the gradient of value of the function at the specified point, p , and time, t , and returns it in g . More... | |
virtual void | perturbation (const libMesh::Point &p, const Real t, RealVectorX &v) const |
calculates the value of perturbation in the function at the specified point, p , and time, t , and returns it in v . More... | |
virtual void | derivative (const MAST::FunctionBase &f, const libMesh::Point &p, const Real t, RealVectorX &v) const |
calculates the value of the function at the specified point, p , and time, t , and returns it in v . More... | |
void | init (const libMesh::NumericVector< Real > &sol, const libMesh::NumericVector< Real > *dsol=nullptr) |
initializes the data structures to perform the interpolation function of sol . More... | |
libMesh::MeshFunction & | get_function () |
libMesh::MeshFunction & | get_perturbed_function () |
virtual void | set_element_quadrature_point_solution (RealVectorX &sol) |
When a mesh field function is attached to an assembly routine during system assembly, then the current solution can be provided by the element quadrature point update. More... | |
virtual void | clear_element_quadrature_point_solution () |
clears the quadrature point solution provided by the corresponding set method above. More... | |
void | clear () |
clear the solution More... | |
Public Member Functions inherited from MAST::FieldFunction< RealVectorX > | |
FieldFunction (const std::string &nm) | |
virtual void | operator() (RealVectorX &v) const |
calculates the value of the function and returns it in v . More... | |
virtual void | perturbation (RealVectorX &v) const |
calculates the perturbation and returns it in v . More... | |
virtual void | derivative (const MAST::FunctionBase &f, RealVectorX &v) const |
calculates the value of the function derivative and returns it in v . More... | |
Public Member Functions inherited from MAST::FunctionBase | |
FunctionBase (const std::string &nm, const bool is_field_func) | |
initializes the parameter to the given name More... | |
FunctionBase (const MAST::FunctionBase &f) | |
Copy constructor. More... | |
virtual | ~FunctionBase () |
virtual destructor More... | |
const std::string & | name () const |
returns the name of this function More... | |
virtual bool | depends_on (const MAST::FunctionBase &f) const |
returns true if the function depends on the provided value More... | |
virtual bool | is_shape_parameter () const |
virtual void | set_as_shape_parameter (bool f) |
virtual bool | is_topology_parameter () const |
virtual void | set_as_topology_parameter (bool f) |
Protected Attributes | |
bool | _use_qp_sol |
flag is set to true when the quadrature point solution is provided by an element More... | |
RealVectorX | _qp_sol |
quadrature point solution of the element More... | |
libMesh::System * | _sys |
current system for which solution is to be interpolated More... | |
libMesh::NumericVector< Real > * | _sol |
current solution that is going to be interpolated More... | |
libMesh::NumericVector< Real > * | _dsol |
libMesh::MeshFunction * | _function |
the MeshFunction object that performs the interpolation More... | |
libMesh::MeshFunction * | _perturbed_function |
Protected Attributes inherited from MAST::FunctionBase | |
std::string | _name |
name of this parameter More... | |
bool | _is_field_func |
flag to store the nature of field function More... | |
bool | _is_shape_parameter |
bool | _is_topology_parameter |
std::set< const MAST::FunctionBase * > | _functions |
set of functions that this function depends on More... | |
This provides a wrapper FieldFunction compatible class that interpolates the solution using libMesh's MeshFunction class.
Definition at line 44 of file mesh_field_function.h.
MAST::MeshFieldFunction::MeshFieldFunction | ( | MAST::SystemInitialization & | sys, |
const std::string & | nm | ||
) |
constructor
Definition at line 30 of file mesh_field_function.cpp.
MAST::MeshFieldFunction::MeshFieldFunction | ( | libMesh::System & | sys, |
const std::string & | nm | ||
) |
constructor
Definition at line 45 of file mesh_field_function.cpp.
|
virtual |
destructor
Definition at line 60 of file mesh_field_function.cpp.
void MAST::MeshFieldFunction::clear | ( | ) |
clear the solution
Definition at line 247 of file mesh_field_function.cpp.
|
virtual |
clears the quadrature point solution provided by the corresponding set method above.
Definition at line 287 of file mesh_field_function.cpp.
|
virtual |
calculates the value of the function at the specified point, p
, and time, t
, and returns it in v
.
Reimplemented from MAST::FieldFunction< RealVectorX >.
Definition at line 173 of file mesh_field_function.cpp.
|
inline |
Definition at line 116 of file mesh_field_function.h.
|
inline |
Definition at line 126 of file mesh_field_function.h.
|
virtual |
calculates the gradient of value of the function at the specified point, p
, and time, t
, and returns it in g
.
g(i,j) = dv(i)/dx(j)
Definition at line 105 of file mesh_field_function.cpp.
void MAST::MeshFieldFunction::init | ( | const libMesh::NumericVector< Real > & | sol, |
const libMesh::NumericVector< Real > * | dsol = nullptr |
||
) |
initializes the data structures to perform the interpolation function of sol
.
If dsol
is provided, then it is used as the perturbation of sol
.
Definition at line 188 of file mesh_field_function.cpp.
|
virtual |
calculates the value of the function at the specified point, p
, and time, t
, and returns it in v
.
Reimplemented from MAST::FieldFunction< RealVectorX >.
Definition at line 72 of file mesh_field_function.cpp.
|
virtual |
calculates the value of perturbation in the function at the specified point, p
, and time, t
, and returns it in v
.
Reimplemented from MAST::FieldFunction< RealVectorX >.
Definition at line 139 of file mesh_field_function.cpp.
|
virtual |
When a mesh field function is attached to an assembly routine during system assembly, then the current solution can be provided by the element quadrature point update.
This method allows the element to provide the solution and in turn override the mesh function evaluation.
Definition at line 277 of file mesh_field_function.cpp.
|
protected |
Definition at line 177 of file mesh_field_function.h.
|
protected |
the MeshFunction object that performs the interpolation
Definition at line 182 of file mesh_field_function.h.
|
protected |
Definition at line 182 of file mesh_field_function.h.
|
protected |
quadrature point solution of the element
Definition at line 167 of file mesh_field_function.h.
|
protected |
current solution that is going to be interpolated
Definition at line 177 of file mesh_field_function.h.
|
protected |
current system for which solution is to be interpolated
Definition at line 172 of file mesh_field_function.h.
|
protected |
flag is set to true when the quadrature point solution is provided by an element
Definition at line 161 of file mesh_field_function.h.