20 #ifndef __mast__complex_mesh_field_function__ 21 #define __mast__complex_mesh_field_function__ 28 #include "libmesh/numeric_vector.h" 29 #include "libmesh/mesh_function.h" 36 class SystemInitialization;
51 const std::string& nm);
60 virtual void operator() (
const libMesh::Point& p,
70 void init(
const libMesh::NumericVector<Real>& sol_re,
71 const libMesh::NumericVector<Real>& sol_im);
75 const libMesh::NumericVector<Real>& dsol_im);
81 std::pair<libMesh::MeshFunction*, libMesh::MeshFunction*>
86 return std::pair<libMesh::MeshFunction*, libMesh::MeshFunction*>
94 std::pair<libMesh::MeshFunction*, libMesh::MeshFunction*>
99 return std::pair<libMesh::MeshFunction*, libMesh::MeshFunction*>
119 libMesh::NumericVector<Real>
128 libMesh::MeshFunction
137 #endif // __mast__complex_mesh_field_function__ libMesh::NumericVector< Real > * _sol_im
libMesh::NumericVector< Real > * _perturbed_sol_im
void init_perturbation(const libMesh::NumericVector< Real > &dsol_re, const libMesh::NumericVector< Real > &dsol_im)
std::pair< libMesh::MeshFunction *, libMesh::MeshFunction * > get_perturbed_function()
libMesh::MeshFunction * _function_re
the MeshFunction object that performs the interpolation
virtual ~ComplexMeshFieldFunction()
destructor
Matrix< Complex, Dynamic, 1 > ComplexVectorX
libMesh::MeshFunction * _function_im
void clear()
clear the solution and mesh function data structures
libMesh::NumericVector< Real > * _perturbed_sol_re
virtual void operator()(const libMesh::Point &p, const Real t, ComplexVectorX &v) const
calculates the value of the function at the specified point, p, and time, t, and returns it in v...
libMesh::MeshFunction * _perturbed_function_im
This creates the base class for functions that have a saptial and temporal dependence, and provide sensitivity operations with respect to the functions and parameters.
virtual void perturbation(const libMesh::Point &p, const Real t, ComplexVectorX &v) const
calculates the value of a perturbation in function at the specified point, p, and time...
This provides a wrapper FieldFunction compatible class that interpolates the solution using libMesh's...
std::pair< libMesh::MeshFunction *, libMesh::MeshFunction * > get_function()
void init(const libMesh::NumericVector< Real > &sol_re, const libMesh::NumericVector< Real > &sol_im)
libMesh::NumericVector< Real > * _sol_re
current solution that is going to be interpolated
libMesh::MeshFunction * _perturbed_function_re
MAST::SystemInitialization * _system
current system for which solution is to be interpolated
ComplexMeshFieldFunction(MAST::SystemInitialization &sys, const std::string &nm)
constructor