Finite Element Domain Decomposition Library
FEDDLib
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
11namespace FEDD {
12
13
30 template <class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_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
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...
DifferentiableFuncClass(ParameterListPtr_Type parameters)
Constructor.
Definition DifferentiableFuncClass_def.hpp:10
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
virtual void evaluateDerivative(ParameterListPtr_Type params, double x, double &res) override=0
Computes value of derivative of defined function in evaluateMapping.
virtual void setParams(ParameterListPtr_Type params) override=0
Function could include different parameters which will be specified in *.xml This function should set...
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
virtual void echoInformationMapping() override=0
Print parameter values used in model at runtime.
InputToOutputMappingClass(ParameterListPtr_Type parameters)
Definition InputToOutputMappingClass_def.hpp:10
Definition MultiVector_decl.hpp:36
Adaptive Mesh Refinement.
Definition AdaptiveMeshRefinement.cpp:5