Finite Element Domain Decomposition Library
FEDDLib
Toggle main menu visibility
Loading...
Searching...
No Matches
DifferentiableFuncClass_decl.hpp
1
#ifndef DIFFERENTIABLEFUNCCLASS_DECL_hpp
2
#define DIFFERENTIABLEFUNCCLASS_DECL_hpp
3
4
5
#include "feddlib/core/FEDDCore.hpp"
6
#include "feddlib/core/LinearAlgebra/MultiVector.hpp"
7
#include "feddlib/core/General/InputToOutputMappingClass.hpp"
8
//#include "feddlib/core/LinearAlgebra/Matrix.hpp" maybe we will need something like this for multidimensional?
9
10
11
namespace
FEDD
{
12
13
30
template
<
class
SC = default_sc,
class
LO = default_lo,
class
GO = default_go,
class
NO = default_no>
31
class
DifferentiableFuncClass
:
public
InputToOutputMappingClass
<SC,LO,GO,NO> {
32
public
:
33
34
typedef
MultiVector<SC,LO,GO,NO>
MultiVector_Type;
35
typedef
Teuchos::RCP<MultiVector_Type> MultiVectorPtr_Type;
36
typedef
Teuchos::RCP<const MultiVector_Type> MultiVectorConstPtr_Type;
37
38
// Inherited Function from base abstract class
45
virtual
void
evaluateMapping
(ParameterListPtr_Type params, MultiVectorConstPtr_Type input, MultiVectorPtr_Type &output)
override
{ TEUCHOS_TEST_FOR_EXCEPTION(
true
, std::logic_error,
"Not yet implemented for MultiVectorConstPtr_Type"
) }
46
53
virtual
void
evaluateDerivative
(ParameterListPtr_Type params, MultiVectorConstPtr_Type x, MultiVectorPtr_Type &res)
override
{ TEUCHOS_TEST_FOR_EXCEPTION(
true
, std::logic_error,
"Not yet implemented for MultiVectorConstPtr_Type"
) }
54
55
61
virtual
void
setParams
(ParameterListPtr_Type params)
override
= 0;
62
66
virtual
void
echoInformationMapping
()
override
= 0;
67
74
virtual
void
evaluateMapping
(ParameterListPtr_Type params,
double
x,
double
&res)
override
= 0;
75
82
virtual
void
evaluateDerivative
(ParameterListPtr_Type params,
double
x,
double
&res)
override
= 0;
83
84
85
86
protected
:
87
92
DifferentiableFuncClass
(ParameterListPtr_Type parameters);
93
94
95
ParameterListPtr_Type params_;
96
97
};
98
}
99
#endif
FEDD::DifferentiableFuncClass::evaluateMapping
virtual void evaluateMapping(ParameterListPtr_Type params, double x, double &res) override=0
Implements a functional description for evaluating res in dependence of given dependent variables and...
FEDD::DifferentiableFuncClass::DifferentiableFuncClass
DifferentiableFuncClass(ParameterListPtr_Type parameters)
Constructor.
Definition
DifferentiableFuncClass_def.hpp:8
FEDD::DifferentiableFuncClass::evaluateMapping
virtual void evaluateMapping(ParameterListPtr_Type params, MultiVectorConstPtr_Type input, MultiVectorPtr_Type &output) override
Implement a mapping for evaluating output in dependence of given input and specified parameters for M...
Definition
DifferentiableFuncClass_decl.hpp:45
FEDD::DifferentiableFuncClass::evaluateDerivative
virtual void evaluateDerivative(ParameterListPtr_Type params, double x, double &res) override=0
Computes value of derivative of defined function in evaluateMapping.
FEDD::DifferentiableFuncClass::setParams
virtual void setParams(ParameterListPtr_Type params) override=0
Function could include different parameters which will be specified in *.xml This function should set...
FEDD::DifferentiableFuncClass::evaluateDerivative
virtual void evaluateDerivative(ParameterListPtr_Type params, MultiVectorConstPtr_Type x, MultiVectorPtr_Type &res) override
Computes value of derivative of defined function in evaluateMapping.
Definition
DifferentiableFuncClass_decl.hpp:53
FEDD::DifferentiableFuncClass::echoInformationMapping
virtual void echoInformationMapping() override=0
Print parameter values used in model at runtime.
FEDD::InputToOutputMappingClass< default_sc, default_lo, default_go, default_no >::InputToOutputMappingClass
InputToOutputMappingClass(ParameterListPtr_Type parameters)
Definition
InputToOutputMappingClass_def.hpp:8
FEDD::MultiVector
Definition
MultiVector_decl.hpp:61
FEDD
Adaptive Mesh Refinement.
Definition
AdaptiveMeshRefinement_decl.hpp:36
feddlib
core
General
DifferentiableFuncClass_decl.hpp
Generated by
1.17.0