18 #include "libmesh/libmesh_config.h" 20 #ifdef LIBMESH_TRILINOS_HAVE_DTK 22 #include "libmesh/dtk_evaluator.h" 24 #include "libmesh/dof_map.h" 25 #include "libmesh/fe_interface.h" 26 #include "libmesh/fe_compute_data.h" 27 #include "libmesh/numeric_vector.h" 28 #include "libmesh/equation_systems.h" 29 #include "libmesh/system.h" 35 std::string var_name):
37 current_local_solution(*sys.current_local_solution),
38 es(in_sys.get_equation_systems()),
41 dof_map(sys.get_dof_map()),
42 var_num(sys.variable_number(var_name)),
43 fe_type(dof_map.variable_type(var_num))
48 const Teuchos::ArrayRCP<double> & coords)
50 unsigned int num_values = elements.size();
52 Teuchos::ArrayRCP<Number> values(num_values);
53 DataTransferKit::FieldContainer<Number> evaluations(values, 1);
55 for (
unsigned int i=0; i<num_values; i++)
61 for (
unsigned int j=0; j<
dim; j++)
62 p(j) = coords[(j*num_values)+i];
69 std::vector<dof_id_type> dof_indices;
DTKEvaluator(System &in_sys, std::string var_name)
void dof_indices(const Elem *const elem, std::vector< dof_id_type > &di) const
Fills the vector di with the global degree of freedom indices for the element.
static Point inverse_map(const unsigned int dim, const Elem *elem, const Point &p, const Real tolerance=TOLERANCE, const bool secure=true, const bool extra_checks=true)
class FEComputeData hides arbitrary data to be passed to and from children of FEBase through the FEIn...
NumericVector< Number > & current_local_solution
This is the base class from which all geometric element types are derived.
DataTransferKit::FieldContainer< Number > FieldContainerType
The libMesh namespace provides an interface to certain functionality in the library.
Manages consistently variables, degrees of freedom, and coefficient vectors.
static void compute_data(const unsigned int dim, const FEType &fe_t, const Elem *elem, FEComputeData &data)
Lets the appropriate child of FEBase compute the requested data for the input specified in data...
std::vector< Number > shape
Storage for the computed shape function values.
virtual const Elem * elem_ptr(const dof_id_type i) const =0
virtual FieldContainerType evaluate(const Teuchos::ArrayRCP< int > &elements, const Teuchos::ArrayRCP< double > &coords) override
A Point defines a location in LIBMESH_DIM dimensional Real space.
auto index_range(const T &sizable)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...