16#include <dune/common/fvector.hh>
17#include <dune/common/fmatrix.hh>
32 template <
class Scalar,
int dim,
bool isotropic=true>
51 if constexpr (isotropic)
54 kappa = unitMatrix<Scalar,dim,dim>();
111 template <
class Scalar,
int dim,
int components,
bool isotropic=true>
136 return 0.5*kappa*sp(du0, du0);
Convenience class for handling diffusion terms in elliptic/parabolic equations.
void setDiffusionTensor(Scalar kappa_)
Scalar d2(VariationalArg< Scalar, dim, components > const &arg1, VariationalArg< Scalar, dim, components > const &arg2) const
Laplace()
Constructor The diffusion constant is initialized to 1, the linearization point to .
Scalar d1(VariationalArg< Scalar, dim, components > const &arg) const
void setLinearizationPoint(Dune::FieldMatrix< Scalar, components, dim > const &du0_)
Convenience class for handling diffusion terms in elliptic/parabolic equations.
std::conditional_t< isotropic, Scalar, Dune::FieldMatrix< Scalar, dim, dim > > DiffusionTensor
The type of the diffusion tensor.
Dune::FieldVector< Scalar, 1 > d1(VariationalArg< Scalar, dim > const &arg) const
ScalarLaplace()
Constructor The diffusion constant is initialized to 1, the linearization point to .
Laplace & setDiffusionTensor(DiffusionTensor const &kappa_)
Specifies a scalar diffusion constant.
Dune::FieldMatrix< Scalar, 1, 1 > d2(VariationalArg< Scalar, dim > const &arg1, VariationalArg< Scalar, dim > const &arg2) const
Laplace & setLinearizationPoint(Dune::FieldVector< Scalar, dim > const &du0_)
Specifies the gradient of the linearization point of the Laplace variational functional.
Scalar d0() const
Returns the value of the Laplace variational functional. The value returned is.
This file contains various utility functions that augment the basic functionality of Dune.
Euclidean scalar product.
A class that stores values, gradients, and Hessians of evaluated shape functions.
Dune::FieldMatrix< Scalar, components, dim > derivative
The shape function's spatial derivative, a components x dim matrix.