Panzer Version of the Day
Loading...
Searching...
No Matches
Panzer_ParameterLibraryUtilities.cpp
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_CPP
12#define PANZER_PARAMETER_LIBRARY_UTILITIES_CPP
13
15
16namespace panzer {
17
18struct RegisterScalarParameter {
19 std::string name;
20 Teuchos::Ptr<panzer::ParamLib> pl;
21
22 template <typename T>
23 void apply() const
24 { createAndRegisterScalarParameter<T>(name,*pl); }
25};
26
27void registerScalarParameter(const std::string name,panzer::ParamLib& pl,double realValue)
28{
29 RegisterScalarParameter rsp;
30 rsp.name = name;
31 rsp.pl = Teuchos::ptrFromRef(pl);
32
33 rsp.apply<panzer::Traits::Residual>();
34 rsp.apply<panzer::Traits::Jacobian>();
35 rsp.apply<panzer::Traits::Tangent>();
36#ifdef Panzer_BUILD_HESSIAN_SUPPORT
37 rsp.apply<panzer::Traits::Hessian>();
38#endif // Panzer_BUILD_HESSIAN_SUPPORT
39
40 pl.setRealValueForAllTypes(name,realValue);
41}
42
43}
44
45#endif
void registerScalarParameter(const std::string name, panzer::ParamLib &pl, double realValue)
Sacado::ScalarParameterLibrary< panzer::EvaluationTraits > ParamLib
Panzer's registry of named scalar parameters (see panzer::ScalarParameterEntry), keyed and evaluated ...
Evaluation type for computing second derivatives, using HessianType as the scalar type....
Evaluation type for computing the residual and its Jacobian, using FadType as the scalar type.
Evaluation type for computing the residual only, using RealType as the scalar type.
Evaluation type for computing directional derivatives (e.g. parameter sensitivities),...