Forked from
agnumpde / dune-tectonic
211 commits behind the upstream repository.
-
Elias Pipping authoredElias Pipping authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
mybody.hh 1.77 KiB
#ifndef MY_BODY_HH
#define MY_BODY_HH
#include <dune/common/fvector.hh>
#include <dune/fufem/functions/constantfunction.hh>
#include <dune/tectonic/body.hh>
#include <dune/tectonic/gravity.hh>
#include "mygeometry.hh"
template <int dimension> class MyBody : public Body<dimension> {
using typename Body<dimension>::ScalarFunction;
using typename Body<dimension>::VectorField;
using MyConstantFunction = ConstantFunction<
Dune::FieldVector<double, dimension>, Dune::FieldVector<double, 1>>;
public:
MyBody(Dune::ParameterTree const &parset, MyGeometry const &mygeometry)
: poissonRatio_(parset.get<double>("body.poissonRatio")),
youngModulus_(parset.get<double>("body.youngModulus")),
shearViscosityField_(parset.get<double>("body.shearViscosity")),
bulkViscosityField_(parset.get<double>("body.bulkViscosity")),
densityField_(parset.get<double>("body.density")),
gravityField_(densityField_, mygeometry.zenith,
parset.get<double>("gravity")) {}
double getPoissonRatio() const override { return poissonRatio_; }
double getYoungModulus() const override { return youngModulus_; }
ScalarFunction const &getShearViscosityField() const override {
return shearViscosityField_;
}
ScalarFunction const &getBulkViscosityField() const override {
return bulkViscosityField_;
}
ScalarFunction const &getDensityField() const override {
return densityField_;
}
VectorField const &getGravityField() const override { return gravityField_; }
private:
double const poissonRatio_;
double const youngModulus_;
MyConstantFunction const shearViscosityField_;
MyConstantFunction const bulkViscosityField_;
MyConstantFunction const densityField_;
Gravity<dimension> const gravityField_;
};
#endif