KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
time_incrementor.h
Go to the documentation of this file.
1 // KRATOS___
2 // // ) )
3 // // ___ ___
4 // // ____ //___) ) // ) )
5 // // / / // // / /
6 // ((____/ / ((____ ((___/ / MECHANICS
7 //
8 // License: geo_mechanics_application/license.txt
9 //
10 // Main authors: Wijtze Pieter Kikstra
11 // Anne van de Graaf
12 //
13 
14 #pragma once
15 
16 #include "time_step_end_state.hpp"
17 
18 #include <optional>
19 
20 namespace Kratos
21 {
22 
24 {
25 public:
26  virtual ~TimeIncrementor() = default;
27 
28  [[nodiscard]] virtual bool WantNextStep(const TimeStepEndState& rPreviousState) const = 0;
29  [[nodiscard]] virtual bool WantRetryStep(std::size_t CycleNumber,
30  const TimeStepEndState& rPreviousState) const = 0;
31  [[nodiscard]] virtual double GetIncrement() const = 0;
32  virtual void PostTimeStepExecution(const TimeStepEndState& rResultantState) = 0;
33 };
34 
35 } // namespace Kratos
Definition: time_incrementor.h:24
virtual double GetIncrement() const =0
virtual bool WantNextStep(const TimeStepEndState &rPreviousState) const =0
virtual bool WantRetryStep(std::size_t CycleNumber, const TimeStepEndState &rPreviousState) const =0
virtual void PostTimeStepExecution(const TimeStepEndState &rResultantState)=0
virtual ~TimeIncrementor()=default
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
Definition: time_step_end_state.hpp:23