Go to the documentation of this file.
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;
Manages consistently variables, degrees of freedom, and coefficient vectors.
virtual FieldContainerType evaluate(const Teuchos::ArrayRCP< int > &elements, const Teuchos::ArrayRCP< double > &coords) override
class FEComputeData hides arbitrary data to be passed to and from children of FEBase through the FEIn...
DataTransferKit::FieldContainer< Number > FieldContainerType
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.
IntRange< std::size_t > index_range(const std::vector< T > &vec)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...
The libMesh namespace provides an interface to certain functionality in the library.
virtual const Elem * elem_ptr(const dof_id_type i) const =0
NumericVector< Number > & current_local_solution
static Point inverse_map(const unsigned int dim, const Elem *elem, const Point &p, const Real tolerance=TOLERANCE, const bool secure=true)
DTKEvaluator(System &in_sys, std::string var_name)
A Point defines a location in LIBMESH_DIM dimensional Real space.
This is the base class from which all geometric element types are derived.
IterBase * data
Ideally this private member data should have protected access.
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,...