www.mooseframework.org
DTKInterpolationEvaluator.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* DO NOT MODIFY THIS HEADER */
3 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
4 /* */
5 /* (c) 2010 Battelle Energy Alliance, LLC */
6 /* ALL RIGHTS RESERVED */
7 /* */
8 /* Prepared by Battelle Energy Alliance, LLC */
9 /* Under Contract No. DE-AC07-05ID14517 */
10 /* With the U. S. Department of Energy */
11 /* */
12 /* See COPYRIGHT for full restrictions */
13 /****************************************************************/
14 #ifndef DTKINTERPOLATIONEVALUATOR_H
15 #define DTKINTERPOLATIONEVALUATOR_H
16 
17 #include "libmesh/libmesh_config.h"
18 
19 #ifdef LIBMESH_TRILINOS_HAVE_DTK
20 
21 #include "libmesh/point.h"
22 
23 // Ignore warnings coming from Trilinos/DTK.
24 #include "libmesh/ignore_warnings.h"
25 
26 // DTK includes
27 #include <DTK_MeshContainer.hpp>
28 #include <DTK_FieldEvaluator.hpp>
29 #include <DTK_FieldContainer.hpp>
30 
31 // Trilinos includes
32 #include <Teuchos_RCP.hpp>
33 #include <Teuchos_ArrayRCP.hpp>
34 
35 // Restore warnings.
36 #include "libmesh/restore_warnings.h"
37 
38 namespace libMesh
39 {
40 
41 class System;
42 class EquationSystems;
43 class MeshBase;
44 template <typename T>
45 class NumericVector;
46 class DofMap;
47 class FEType;
48 
53  : public DataTransferKit::FieldEvaluator<long unsigned int,
54  DataTransferKit::FieldContainer<double>>
55 {
56 public:
57  typedef DataTransferKit::MeshContainer<long unsigned int> MeshContainerType;
58  typedef DataTransferKit::FieldContainer<Number> FieldContainerType;
59  typedef DataTransferKit::MeshTraits<MeshContainerType>::global_ordinal_type GlobalOrdinal;
60 
61  DTKInterpolationEvaluator(System & in_sys, std::string var_name, const Point & offset);
62 
63  FieldContainerType evaluate(const Teuchos::ArrayRCP<GlobalOrdinal> & elements,
64  const Teuchos::ArrayRCP<double> & coords);
65 
66 protected:
67  System & sys;
68  Point _offset;
70  EquationSystems & es;
71  MeshBase & mesh;
72  unsigned int dim;
73  DofMap & dof_map;
74  unsigned int var_num;
75  const FEType & fe_type;
76 };
77 
78 } // namespace libMesh
79 
80 #endif // #ifdef LIBMESH_TRILINOS_HAVE_DTK
81 
82 #endif // #define DTKINTERPOLATIONEVALUATOR_H
NumericVector< Number > & current_local_solution
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
A class for performing interplation transfers via DTK.
DataTransferKit::FieldContainer< Number > FieldContainerType
DataTransferKit::MeshContainer< long unsigned int > MeshContainerType
DataTransferKit::MeshTraits< MeshContainerType >::global_ordinal_type GlobalOrdinal
FieldContainerType evaluate(const Teuchos::ArrayRCP< GlobalOrdinal > &elements, const Teuchos::ArrayRCP< double > &coords)
DTKInterpolationEvaluator(System &in_sys, std::string var_name, const Point &offset)