ASPECT
include
aspect
time_stepping
repeat_on_nonlinear_fail.h
Go to the documentation of this file.
1
// ------------------------------------------------------
2
//
3
// SPDX-License-Identifier: GPL-2.0-or-later
4
//
5
// SPDX-FileCopyrightText: Copyright (C) 2018-2026 by the ASPECT authors.
6
//
7
// This file is part of ASPECT.
8
//
9
// Detailed license information governing the source code and
10
// contributions can be found in the folder LICENSES and in
11
// LICENSE and CONTRIBUTING.md at the top level directory.
12
//
13
// ------------------------------------------------------
14
15
16
#ifndef _aspect_time_stepping_repeat_on_nonlinear_fail_h
17
#define _aspect_time_stepping_repeat_on_nonlinear_fail_h
18
19
#include <
aspect/time_stepping/interface.h
>
20
21
namespace
aspect
22
{
23
namespace
TimeStepping
24
{
37
template
<
int
dim>
38
class
RepeatOnNonlinearFail
:
public
Interface
<dim>,
public
SimulatorAccess
<dim>
39
{
40
public
:
44
RepeatOnNonlinearFail
();
45
49
double
50
execute
()
override
;
51
56
void
nonlinear_solver_has_failed
()
const
;
57
61
std::pair<Reaction, double>
62
determine_reaction
(
const
TimeStepInfo
&info)
override
;
63
64
static
65
void
66
declare_parameters
(
ParameterHandler
&prm);
67
68
void
69
parse_parameters
(
ParameterHandler
&prm)
override
;
70
71
private
:
79
double
cut_back_factor
;
80
85
mutable
bool
nonlinear_solver_just_failed
;
86
90
unsigned
int
maximum_number_of_repeats
;
91
95
unsigned
int
current_number_of_repeats
;
96
};
97
}
98
}
99
100
101
#endif
aspect::TimeStepping::RepeatOnNonlinearFail::maximum_number_of_repeats
unsigned int maximum_number_of_repeats
Definition:
repeat_on_nonlinear_fail.h:90
aspect::TimeStepping::RepeatOnNonlinearFail::determine_reaction
std::pair< Reaction, double > determine_reaction(const TimeStepInfo &info) override
interface.h
aspect::TimeStepping::RepeatOnNonlinearFail::nonlinear_solver_has_failed
void nonlinear_solver_has_failed() const
aspect::TimeStepping::TimeStepInfo
Definition:
interface.h:63
ParameterHandler
TimeStepping
aspect::TimeStepping::RepeatOnNonlinearFail::current_number_of_repeats
unsigned int current_number_of_repeats
Definition:
repeat_on_nonlinear_fail.h:95
aspect::TimeStepping::RepeatOnNonlinearFail::execute
double execute() override
aspect::TimeStepping::RepeatOnNonlinearFail
Definition:
repeat_on_nonlinear_fail.h:38
aspect::TimeStepping::RepeatOnNonlinearFail::nonlinear_solver_just_failed
bool nonlinear_solver_just_failed
Definition:
repeat_on_nonlinear_fail.h:85
aspect::TimeStepping::Interface
Definition:
interface.h:84
aspect::SimulatorAccess
Definition:
plugins.h:41
aspect::TimeStepping::RepeatOnNonlinearFail::parse_parameters
void parse_parameters(ParameterHandler &prm) override
aspect
Definition:
advection_field.h:24
aspect::TimeStepping::RepeatOnNonlinearFail::RepeatOnNonlinearFail
RepeatOnNonlinearFail()
aspect::TimeStepping::RepeatOnNonlinearFail::cut_back_factor
double cut_back_factor
Definition:
repeat_on_nonlinear_fail.h:79
aspect::TimeStepping::RepeatOnNonlinearFail::declare_parameters
static void declare_parameters(ParameterHandler &prm)
ASPECT manual
| Generated by
1.8.12