11#include "Field/Field.h"
15 template <
typename FieldLHS,
typename FieldRHS>
17 constexpr static unsigned Dim = FieldLHS::dim;
18 typedef typename FieldLHS::Mesh_t Mesh;
19 typedef typename FieldLHS::Centering_t
Centering;
24 using lhs_type = FieldLHS;
25 using rhs_type = FieldRHS;
26 using Tlhs =
typename FieldLHS::value_type;
27 using Trhs =
typename FieldRHS::value_type;
47 static_assert(std::is_floating_point<Trhs>::value,
"Not a floating point type");
51 Poisson(lhs_type& lhs, rhs_type& rhs)
56 static_assert(std::is_floating_point<Trhs>::value,
"Not a floating point type");
68 params_m.
update<T>(key, value);
90 virtual void setLhs(lhs_type& lhs) { lhs_mp = &lhs; }
96 virtual void setRhs(rhs_type& rhs) { rhs_mp = &rhs; }
122 rhs_type* rhs_mp =
nullptr;
123 lhs_type* lhs_mp =
nullptr;
Definition Centering.h:25
Definition ParameterList.h:29
void merge(const ParameterList &p) noexcept
Definition ParameterList.h:86
void add(const std::string &key, const T &value)
Definition ParameterList.h:44
void update(const ParameterList &p) noexcept
Definition ParameterList.h:97
Poisson()
Definition Poisson.h:45
virtual void setLhs(lhs_type &lhs)
Definition Poisson.h:90
virtual MField_t * getHessian()
Definition Poisson.h:102
OutputType
Definition Poisson.h:35
void mergeParameters(const ParameterList ¶ms)
Definition Poisson.h:84
virtual void setDefaultParameters()
Definition Poisson.h:131
virtual void setRhs(rhs_type &rhs)
Definition Poisson.h:96
void updateParameters(const ParameterList ¶ms)
Definition Poisson.h:77
void setGradient(grad_type &grad)
Definition Poisson.h:109
void updateParameter(const std::string &key, const T &value)
Definition Poisson.h:67
detail::meta_grad< Field > grad(Field &u)
Definition FieldOperations.hpp:12