16#ifndef dealii_petsc_ts_h
17#define dealii_petsc_ts_h
21#ifdef DEAL_II_WITH_PETSC
34# if defined(DEAL_II_HAVE_CXX20)
91 const std::string &
ts_type =
"",
306 typename AMatrixType = PMatrixType>
307# if defined(DEAL_II_HAVE_CXX20) && \
308 !defined(DEAL_II_DOXYGEN_DO_NOT_PARSE_REQUIRES_CLAUSES)
311 std::constructible_from<
314 std::constructible_from<
317 std::constructible_from<AMatrixType, Mat>))
333 const MPI_Comm mpi_comm = PETSC_COMM_WORLD);
439 solve(VectorType &y, AMatrixType &
A, PMatrixType &
P);
451 const VectorType &y_dot,
471 const VectorType &y_dot,
485 std::function<void(
const real_type t,
const VectorType &y, VectorType &res)>
515 const VectorType & y,
516 const unsigned int step_number)>
540 const VectorType &ydot,
555 std::function<void(
const VectorType &src, VectorType &dst)>
real_type initial_step_size
real_type absolute_tolerance
std::string ts_adapt_type
void add_parameters(ParameterHandler &prm)
real_type relative_tolerance
real_type minimum_step_size
std::string options_prefix
bool ignore_algebraic_lte
real_type maximum_step_size
void reinit(const TimeStepperData &data)
std::exception_ptr pending_exception
unsigned int solve(VectorType &y, PMatrixType &P)
real_type get_time_step()
std::function< void(const real_type t, const VectorType &y, const VectorType &y_dot, const real_type alpha, AMatrixType &A, PMatrixType &P)> implicit_jacobian
std::function< void(const real_type t, const VectorType &y, const unsigned int step_number)> monitor
MPI_Comm get_mpi_communicator() const
std::function< void(const real_type t, const VectorType &y, AMatrixType &A, PMatrixType &P)> explicit_jacobian
TimeStepper(const TimeStepperData &data=TimeStepperData(), const MPI_Comm mpi_comm=PETSC_COMM_WORLD)
SmartPointer< AMatrixType, TimeStepper > A
unsigned int solve(VectorType &y, AMatrixType &A, PMatrixType &P)
std::function< IndexSet()> algebraic_components
std::function< void(const real_type t, const VectorType &y, const VectorType &ydot, const real_type alpha)> setup_jacobian
SmartPointer< PMatrixType, TimeStepper > P
std::function< void(const real_type t, const VectorType &y, VectorType &res)> explicit_function
std::function< void(const real_type t, const VectorType &y, const VectorType &y_dot, VectorType &res)> implicit_function
unsigned int solve(VectorType &y)
std::function< void(const VectorType &src, VectorType &dst)> solve_with_jacobian
void set_matrices(AMatrixType &A, PMatrixType &P)
void set_matrix(PMatrixType &P)
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
TimeStepperData(const std::string &options_prefix="", const std::string &ts_type="", const real_type initial_time=0.0, const real_type final_time=0.0, const real_type initial_step_size=0.0, const int max_steps=-1, const bool match_step=false, const std::string &ts_adapt_type="none", const real_type minimum_step_size=-1.0, const real_type maximum_step_size=-1.0, const real_type absolute_tolerance=-1.0, const real_type relative_tolerance=-1.0, const bool ignore_algebraic_lte=true)