Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 
14 namespace panzer {
15 
16  template<typename EvaluationType>
18  createAndRegisterScalarParameter(const std::string name,
19  panzer::ParamLib& pl)
20  {
21  if (!pl.isParameter(name))
22  pl.addParameterFamily(name,true,false);
23 
25 
26  if (pl.isParameterForType<EvaluationType>(name)) {
28  pl.getEntry<EvaluationType>(name);
29  entry = Teuchos::rcp_dynamic_cast<panzer::ScalarParameterEntry<EvaluationType> >(sacado_entry);
30  }
31  else {
33  entry->setValue(NAN);
34  pl.addEntry<EvaluationType>(name,entry);
35  }
36 
37  return entry;
38  }
39 
40  template<typename EvaluationType>
42  accessScalarParameter(const std::string name, panzer::ParamLib& pl)
43  {
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_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Sacado::ScalarParameterLibrary< panzer::EvaluationTraits > ParamLib
Teuchos::RCP< panzer::ScalarParameterEntry< EvaluationType > > createAndRegisterScalarParameter(const std::string name, panzer::ParamLib &pl)