Skip to content
Snippets Groups Projects
Forked from agnumpde / dune-tectonic
34 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
newmark.hh 1.11 KiB
#ifndef SRC_TIME_STEPPING_RATE_NEWMARK_HH
#define SRC_TIME_STEPPING_RATE_NEWMARK_HH

template <class Vector, class Matrix, class BoundaryFunctions, class BoundaryNodes>
class Newmark : public RateUpdater<Vector, Matrix, BoundaryFunctions, BoundaryNodes> {
public:
    Newmark(
            const Matrices<Matrix,2>& _matrices,
            const std::vector<Vector>& _u_initial,
            const std::vector<Vector>& _v_initial,
            const std::vector<Vector>& _a_initial,
            const BoundaryNodes& _dirichletNodes,
            const BoundaryFunctions& _dirichletFunctions);

    virtual void setup(
            const std::vector<Vector>&,
            double,
            double,
            std::vector<Vector>&,
            std::vector<Vector>&,
            std::vector<Matrix>&) override;

    virtual void velocityObstacles(const Vector& u0, const Vector& uObstacles, const Vector& v0, Vector& v1Obstacles) override;

    virtual void postProcess(const std::vector<Vector>&) override;

    virtual auto clone() const -> std::shared_ptr<RateUpdater<Vector, Matrix, BoundaryFunctions, BoundaryNodes>> override;
};
#endif