ASPECT
stokes_matrix_based.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) 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 #ifndef _aspect_simulator_solver_stokes_matrix_based_h
16 #define _aspect_simulator_solver_stokes_matrix_based_h
17 
18 #include <aspect/global.h>
20 
21 
22 namespace aspect
23 {
24  namespace StokesSolver
25  {
29  template <int dim>
30  class MatrixBased: public Interface<dim>
31  {
32  public:
39  MatrixBased(Simulator<dim> &simulator);
40 
63  SolverOutputs solve(const LinearAlgebra::BlockSparseMatrix &system_matrix,
64  const LinearAlgebra::BlockVector &system_rhs,
65  const bool solve_newton_system,
66  const double last_pressure_normalization_adjustment,
67  LinearAlgebra::BlockVector &solution_vector) override;
68 
72  std::string name() const override;
73 
74  private:
82  };
83  }
84 }
85 
86 #endif
MatrixBased(Simulator< dim > &simulator)
::TrilinosWrappers::MPI::BlockVector BlockVector
Definition: global.h:295
::TrilinosWrappers::BlockSparseMatrix BlockSparseMatrix
Definition: global.h:306
std::string name() const override
SolverOutputs solve(const LinearAlgebra::BlockSparseMatrix &system_matrix, const LinearAlgebra::BlockVector &system_rhs, const bool solve_newton_system, const double last_pressure_normalization_adjustment, LinearAlgebra::BlockVector &solution_vector) override
ObserverPointer< const Simulator< dim >, SimulatorAccess< dim > > simulator