Panzer Version of the Day
Loading...
Searching...
No Matches
Panzer_ParameterLibraryUtilities_impl.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Panzer: A partial differential equation assembly
4// engine for strongly coupled complex multiphysics systems
5//
6// Copyright 2011 NTESS and the Panzer contributors.
7// SPDX-License-Identifier: BSD-3-Clause
8// *****************************************************************************
9// @HEADER
10
11#ifndef PANZER_PARAMETER_LIBRARY_UTILITIES_IMPL_HPP
12#define PANZER_PARAMETER_LIBRARY_UTILITIES_IMPL_HPP
13
14namespace panzer {
15
16 template<typename EvaluationType>
17 Teuchos::RCP<panzer::ScalarParameterEntry<EvaluationType> >
18 createAndRegisterScalarParameter(const std::string name,
20 {
21 if (!pl.isParameter(name))
22 pl.addParameterFamily(name,true,false);
23
24 Teuchos::RCP<panzer::ScalarParameterEntry<EvaluationType> > entry;
25
26 if (pl.isParameterForType<EvaluationType>(name)) {
27 Teuchos::RCP<Sacado::ScalarParameterEntry<EvaluationType,panzer::EvaluationTraits> > sacado_entry =
28 pl.getEntry<EvaluationType>(name);
29 entry = Teuchos::rcp_dynamic_cast<panzer::ScalarParameterEntry<EvaluationType> >(sacado_entry);
30 }
31 else {
32 entry = Teuchos::rcp(new panzer::ScalarParameterEntry<EvaluationType>);
33 entry->setValue(NAN);
34 pl.addEntry<EvaluationType>(name,entry);
35 }
36
37 return entry;
38 }
39
40 template<typename EvaluationType>
41 Teuchos::RCP<panzer::ScalarParameterEntry<EvaluationType> >
42 accessScalarParameter(const std::string name, panzer::ParamLib& pl)
43 {
44 Teuchos::RCP<Sacado::ScalarParameterEntry<EvaluationType,panzer::EvaluationTraits> > sacado_entry =
45 pl.getEntry<EvaluationType>(name);
46 return Teuchos::rcp_dynamic_cast<panzer::ScalarParameterEntry<EvaluationType> >(sacado_entry,true);
47 }
48
49}
50
51#endif
Teuchos::RCP< panzer::ScalarParameterEntry< EvaluationType > > accessScalarParameter(const std::string name, panzer::ParamLib &pl)
Teuchos::RCP< panzer::ScalarParameterEntry< EvaluationType > > createAndRegisterScalarParameter(const std::string name, panzer::ParamLib &pl)
Sacado::ScalarParameterLibrary< panzer::EvaluationTraits > ParamLib