VertexCFD  0.0-dev
VertexCFD_Compute_Volume.hpp
1 #ifndef VERTEXCFD_COMPUTE_VOLUME_HPP
2 #define VERTEXCFD_COMPUTE_VOLUME_HPP
3 
4 #include <Panzer_BCStrategy_Factory.hpp>
5 #include <Panzer_FieldManagerBuilder.hpp>
6 #include <Panzer_GlobalIndexer.hpp>
7 #include <Panzer_ResponseEvaluatorFactory_Functional.hpp>
8 #include <Panzer_ResponseLibrary.hpp>
9 #include <Panzer_Response_Functional.hpp>
10 
11 #include <Thyra_VectorBase.hpp>
12 
13 #include <Teuchos_ParameterList.hpp>
14 #include <Teuchos_RCP.hpp>
15 
16 #include <Tempus_SolutionHistory_decl.hpp>
17 
18 namespace VertexCFD
19 {
20 namespace ComputeVolume
21 {
22 //---------------------------------------------------------------------------//
23 template<class Scalar>
24 class Volume
25 {
26  public:
27  Volume(
28  const Teuchos::RCP<panzer_stk::STK_Interface>& mesh,
29  const Teuchos::RCP<const panzer::LinearObjFactory<panzer::Traits>>& lof,
30  const Teuchos::RCP<panzer::ResponseLibrary<panzer::Traits>>&
31  response_library,
32  const std::vector<Teuchos::RCP<panzer::PhysicsBlock>>& physics_blocks,
33  const panzer::ClosureModelFactory_TemplateManager<panzer::Traits>&
34  cm_factory,
35  const Teuchos::ParameterList& closure_params,
36  const Teuchos::ParameterList& user_params,
37  const Teuchos::RCP<panzer::WorksetContainer>& workset_container,
38  const std::vector<panzer::BC>& bcs,
39  const Teuchos::RCP<panzer::BCStrategyFactory>& bc_factory,
40  const Teuchos::RCP<panzer::EquationSetFactory>& eq_set_factory,
41  const int integration_order);
42 
43  void ComputeVol();
44  double volume() const;
45 
46  private:
47  Teuchos::RCP<const panzer::LinearObjFactory<panzer::Traits>> _lof;
48  Teuchos::RCP<panzer::ResponseLibrary<panzer::Traits>> _response_library;
49  std::vector<Teuchos::RCP<panzer::PhysicsBlock>> _physics_blocks;
50  panzer::ClosureModelFactory_TemplateManager<panzer::Traits> _cm_factory;
51  Teuchos::ParameterList _closure_params;
52  Teuchos::ParameterList _user_params;
53  Teuchos::RCP<panzer::WorksetContainer> _workset_container;
54 
55  std::vector<panzer::BC> _bcs;
56  Teuchos::RCP<panzer::BCStrategyFactory> _bc_factory;
57  Teuchos::RCP<panzer::EquationSetFactory> _eq_set_factory;
58 
59  double _volume;
60 };
61 
62 //---------------------------------------------------------------------------//
63 
64 } // end namespace ComputeVolume
65 } // end namespace VertexCFD
66 
67 #include "VertexCFD_Compute_Volume_impl.hpp"
68 
69 #endif // end VERTEXCFD_COMPUTE_VOLUME_HPP
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::ComputeVolume::Volume
Definition: VertexCFD_Compute_Volume.hpp:25