www.mooseframework.org
MultiAppDTKUserObjectTransfer.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 MULTIAPPDTKUSEROBJECTTRANSFER_H
16 #define MULTIAPPDTKUSEROBJECTTRANSFER_H
17 
18 #include "libmesh/libmesh_config.h"
19 
20 #ifdef LIBMESH_TRILINOS_HAVE_DTK
21 
22 // MOOSE includes
23 #include "MultiAppTransfer.h"
24 #include "MooseVariableInterface.h"
26 
27 #include "libmesh/dtk_adapter.h"
28 
29 // Ignore warnings coming from DTK/Trilinos headers
30 #include "libmesh/ignore_warnings.h"
31 
32 // DTK includes
33 #include <DTK_VolumeSourceMap.hpp>
34 #include <DTK_MeshManager.hpp>
35 #include <DTK_MeshContainer.hpp>
36 #include <DTK_MeshTypes.hpp>
37 #include <DTK_MeshTraitsFieldAdapter.hpp>
38 #include <DTK_FieldEvaluator.hpp>
39 #include <DTK_FieldManager.hpp>
40 #include <DTK_FieldContainer.hpp>
41 #include <DTK_FieldTools.hpp>
42 #include <DTK_CommTools.hpp>
43 #include <DTK_GeometryManager.hpp>
44 #include <DTK_Box.hpp>
45 
46 // Trilinos includes
47 #include <Teuchos_RCP.hpp>
48 #include <Teuchos_ArrayRCP.hpp>
49 #include <Teuchos_CommHelpers.hpp>
50 #include <Teuchos_DefaultComm.hpp>
51 #include <Teuchos_GlobalMPISession.hpp>
52 #include <Teuchos_Ptr.hpp>
53 
54 // Restore the warnings.
55 #include "libmesh/restore_warnings.h"
56 
57 // Forward declarations
60 
61 template <>
63 
68 {
69 public:
71 
72  typedef long unsigned int GlobalOrdinal;
73 
74  virtual void execute() override;
75 
76 protected:
77  std::string _user_object_name;
78 
79  bool _setup;
80 
81  Teuchos::RCP<const Teuchos::MpiComm<int>> _comm_default;
82 
83  Teuchos::RCP<MultiAppDTKUserObjectEvaluator> _multi_app_user_object_evaluator;
84 
85  Teuchos::RCP<
86  DataTransferKit::FieldEvaluator<GlobalOrdinal, DataTransferKit::FieldContainer<double>>>
88 
89  Teuchos::RCP<DataTransferKit::GeometryManager<DataTransferKit::Box, GlobalOrdinal>>
91 
93 
94  DataTransferKit::VolumeSourceMap<DataTransferKit::Box,
96  DataTransferKit::MeshContainer<GlobalOrdinal>> * _src_to_tgt_map;
97 
98  Teuchos::RCP<DataTransferKit::FieldManager<DTKAdapter::FieldContainerType>> _to_values;
99 };
100 
101 #endif // LIBMESH_TRILINOS_HAVE_DTK
102 #endif // MULTIAPPDTKUSEROBJECTTRANSFER_H
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
Transfers from spatially varying UserObjects in a MultiApp to the "master" system.
Teuchos::RCP< const Teuchos::MpiComm< int > > _comm_default
MultiAppDTKUserObjectTransfer(const InputParameters &parameters)
virtual void execute() override
Execute the transfer.
Teuchos::RCP< DataTransferKit::FieldManager< DTKAdapter::FieldContainerType > > _to_values
DataTransferKit::VolumeSourceMap< DataTransferKit::Box, GlobalOrdinal, DataTransferKit::MeshContainer< GlobalOrdinal > > * _src_to_tgt_map
Teuchos::RCP< MultiAppDTKUserObjectEvaluator > _multi_app_user_object_evaluator
Teuchos::RCP< DataTransferKit::GeometryManager< DataTransferKit::Box, GlobalOrdinal > > _multi_app_geom
Base class for all MultiAppTransfer objects.
Interface for objects that need to get values of MooseVariables.
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:53
Teuchos::RCP< DataTransferKit::FieldEvaluator< GlobalOrdinal, DataTransferKit::FieldContainer< double > > > _field_evaluator
InputParameters validParams< MultiAppDTKUserObjectTransfer >()