ASPECT
include
aspect
simulator
solver
interface.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) 2025 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
#ifndef _aspect_simulator_solver_interface_h
16
#define _aspect_simulator_solver_interface_h
17
18
#include <
aspect/global.h
>
19
#include <
aspect/simulator_access.h
>
20
21
22
namespace
aspect
23
{
24
namespace
StokesSolver
25
{
30
struct
SolverOutputs
31
{
32
SolverOutputs
()
33
:
34
initial_nonlinear_residual
(
numbers
::signaling_nan<
double
>()),
35
final_linear_residual
(
numbers
::signaling_nan<
double
>()),
36
pressure_normalization_adjustment
(
numbers
::signaling_nan<
double
>())
37
{}
38
43
double
initial_nonlinear_residual
;
44
double
final_linear_residual
;
45
51
double
pressure_normalization_adjustment
;
52
};
53
57
template
<
int
dim>
58
class
Interface
:
public
SimulatorAccess
<dim>,
public
Plugins::InterfaceBase
59
{
60
public
:
83
virtual
84
SolverOutputs
solve(
const
LinearAlgebra::BlockSparseMatrix
&system_matrix,
85
const
LinearAlgebra::BlockVector
&system_rhs,
86
const
bool
solve_newton_system,
87
const
double
last_pressure_normalization_adjustment,
88
LinearAlgebra::BlockVector
&solution_vector) = 0;
89
93
virtual
94
std::string name()
const
= 0;
95
};
96
}
97
}
98
99
#endif
aspect::Plugins::InterfaceBase
Definition:
plugins.h:121
double
global.h
aspect::StokesSolver::SolverOutputs::initial_nonlinear_residual
double initial_nonlinear_residual
Definition:
interface.h:43
aspect::StokesSolver::SolverOutputs::pressure_normalization_adjustment
double pressure_normalization_adjustment
Definition:
interface.h:51
TrilinosWrappers::MPI::BlockVector
simulator_access.h
aspect::SimulatorAccess
Definition:
plugins.h:41
aspect::StokesSolver::SolverOutputs
Definition:
interface.h:30
aspect
Definition:
advection_field.h:24
aspect::StokesSolver::Interface
Definition:
simulator.h:96
TrilinosWrappers::BlockSparseMatrix
numbers
aspect::StokesSolver::SolverOutputs::SolverOutputs
SolverOutputs()
Definition:
interface.h:32
aspect::StokesSolver::SolverOutputs::final_linear_residual
double final_linear_residual
Definition:
interface.h:44
ASPECT manual
| Generated by
1.8.12