Panzer
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
disc-fe
src
Panzer_ClosureModel_Factory.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Panzer: A partial differential equation assembly
5
// engine for strongly coupled complex multiphysics systems
6
// Copyright (2011) Sandia Corporation
7
//
8
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9
// the U.S. Government retains certain rights in this software.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact Roger P. Pawlowski (rppawlo@sandia.gov) and
39
// Eric C. Cyr (eccyr@sandia.gov)
40
// ***********************************************************************
41
// @HEADER
42
43
#ifndef PANZER_CLOSURE_MODEL_FACTORY_HPP
44
#define PANZER_CLOSURE_MODEL_FACTORY_HPP
45
46
#include "PanzerDiscFE_config.hpp"
47
48
#include "Teuchos_RCP.hpp"
49
#include "Teuchos_ParameterList.hpp"
50
#include "Phalanx_Evaluator.hpp"
51
#include "Phalanx_FieldManager.hpp"
52
#include "
Panzer_Traits.hpp
"
53
#include "
Panzer_ClosureModel_Factory_Base.hpp
"
54
55
#include <string>
56
#include <vector>
57
58
namespace
panzer
{
59
60
class
FieldLayoutLibrary
;
61
class
IntegrationRule
;
62
struct
GlobalData
;
63
64
template
<
typename
EvalT>
65
class
ClosureModelFactory
:
public
panzer::ClosureModelFactoryBase
{
66
67
protected
:
68
bool
m_throw_if_model_not_found
;
69
public
:
70
71
ClosureModelFactory
(
bool
throw_if_model_not_found=
true
) :
m_throw_if_model_not_found
(throw_if_model_not_found) {}
72
73
virtual
~ClosureModelFactory
() {}
74
75
Teuchos::RCP< std::vector< Teuchos::RCP<PHX::Evaluator<panzer::Traits> > > >
76
virtual
buildClosureModels
(
const
std::string& model_id,
77
const
Teuchos::ParameterList& models,
78
const
panzer::FieldLayoutLibrary
& fl,
79
const
Teuchos::RCP<panzer::IntegrationRule>& ir,
80
const
Teuchos::ParameterList& equation_set_params,
81
const
Teuchos::ParameterList& user_data,
82
const
Teuchos::RCP<panzer::GlobalData>& global_data,
83
PHX::FieldManager<panzer::Traits>
& fm)
const
= 0;
84
92
virtual
void
registerEvaluators
(
const
std::vector< Teuchos::RCP<PHX::Evaluator<panzer::Traits> > > & evaluators,
93
PHX::FieldManager<panzer::Traits>
& fm)
const
94
{
95
for
(std::vector< Teuchos::RCP<PHX::Evaluator<panzer::Traits> > >
::size_type
i=0; i < evaluators.size(); ++i)
96
this->
template
registerEvaluator<EvalT>
(fm, evaluators[i]);
97
}
98
99
virtual
void
setThrowOnModelNotFound
(
bool
do_throw) {
100
m_throw_if_model_not_found
=do_throw;
101
}
102
103
};
104
105
}
106
107
#endif
Panzer_ClosureModel_Factory_Base.hpp
Panzer_Traits.hpp
PHX::FieldManager
Definition
Panzer_BCStrategy_Base.hpp:53
panzer::ClosureModelFactoryBase
Definition
Panzer_ClosureModel_Factory_Base.hpp:65
panzer::ClosureModelFactory::buildClosureModels
virtual Teuchos::RCP< std::vector< Teuchos::RCP< PHX::Evaluator< panzer::Traits > > > > buildClosureModels(const std::string &model_id, const Teuchos::ParameterList &models, const panzer::FieldLayoutLibrary &fl, const Teuchos::RCP< panzer::IntegrationRule > &ir, const Teuchos::ParameterList &equation_set_params, const Teuchos::ParameterList &user_data, const Teuchos::RCP< panzer::GlobalData > &global_data, PHX::FieldManager< panzer::Traits > &fm) const =0
panzer::ClosureModelFactory::registerEvaluators
virtual void registerEvaluators(const std::vector< Teuchos::RCP< PHX::Evaluator< panzer::Traits > > > &evaluators, PHX::FieldManager< panzer::Traits > &fm) const
Definition
Panzer_ClosureModel_Factory.hpp:92
panzer::ClosureModelFactory::~ClosureModelFactory
virtual ~ClosureModelFactory()
Definition
Panzer_ClosureModel_Factory.hpp:73
panzer::ClosureModelFactory::m_throw_if_model_not_found
bool m_throw_if_model_not_found
Definition
Panzer_ClosureModel_Factory.hpp:68
panzer::ClosureModelFactory::setThrowOnModelNotFound
virtual void setThrowOnModelNotFound(bool do_throw)
Definition
Panzer_ClosureModel_Factory.hpp:99
panzer::ClosureModelFactory::ClosureModelFactory
ClosureModelFactory(bool throw_if_model_not_found=true)
Definition
Panzer_ClosureModel_Factory.hpp:71
panzer::EvaluatorsRegistrar::registerEvaluator
void registerEvaluator(PHX::FieldManager< panzer::Traits > &fm, const Teuchos::RCP< PHX::Evaluator< panzer::Traits > > &op) const
Definition
Panzer_EvaluatorsRegistrar.hpp:88
panzer::FieldLayoutLibrary
Definition
Panzer_FieldLibrary.hpp:81
panzer::IntegrationRule
Definition
Panzer_IntegrationRule.hpp:73
panzer
Computes .
Definition
Panzer_BasisValues_Evaluator_decl.hpp:54
panzer::size_type
panzer::GlobalData
Struct for global data to be stored.
Definition
Panzer_GlobalData.hpp:61
Generated by
1.17.0