www.mooseframework.org
DTKInterpolationHelper.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 
15 #ifndef DTKINTERPOLATIONHELPER_H
16 #define DTKINTERPOLATIONHELPER_H
17 
18 #include "libmesh/libmesh_config.h"
19 
20 #ifdef LIBMESH_TRILINOS_HAVE_DTK
21 
22 // MOOSE includes
24 
25 // DTK includes
26 #include "libmesh/ignore_warnings.h"
27 #include <DTK_SharedDomainMap.hpp>
28 #include "libmesh/restore_warnings.h"
29 
30 namespace libMesh
31 {
32 
33 // Forward declarations
34 class Variable;
35 
40 {
41 public:
43  virtual ~DTKInterpolationHelper();
44 
63  void transferWithOffset(unsigned int from,
64  unsigned int to,
65  const Variable * from_var,
66  const Variable * to_var,
67  const Point & from_offset,
68  const Point & to_offset,
69  MPI_Comm * from_mpi_comm,
70  MPI_Comm * to_mpi_comm);
71 
72 protected:
73  typedef DataTransferKit::SharedDomainMap<DTKInterpolationAdapter::MeshContainerType,
74  DTKInterpolationAdapter::MeshContainerType>
76 
78  std::map<EquationSystems *, DTKInterpolationAdapter *> adapters;
79 
81  std::map<std::pair<unsigned int, unsigned int>, shared_domain_map_type *> dtk_maps;
82 };
83 
84 } // namespace libMesh
85 
86 #endif // #ifdef LIBMESH_TRILINOS_HAVE_DTK
87 
88 #endif // #define DTKINTERPOLATIONHELPER_H
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
DataTransferKit::MeshContainer< long unsigned int > MeshContainerType
DataTransferKit::SharedDomainMap< DTKInterpolationAdapter::MeshContainerType, DTKInterpolationAdapter::MeshContainerType > shared_domain_map_type
void transferWithOffset(unsigned int from, unsigned int to, const Variable *from_var, const Variable *to_var, const Point &from_offset, const Point &to_offset, MPI_Comm *from_mpi_comm, MPI_Comm *to_mpi_comm)
Do an interpolation with possibly offsetting each of the domains (moving them).
std::map< EquationSystems *, DTKInterpolationAdapter * > adapters
The DTKAdapter associated with each EquationSystems.
Helper object that uses DTK to interpolate between two libMesh based systems.
std::map< std::pair< unsigned int, unsigned int >, shared_domain_map_type * > dtk_maps
The dtk shared domain maps for pairs of EquationSystems (from, to)