26 #ifndef OOMPH_PSEUDO_ELASTIC_FSI_PRECONDITIONER
27 #define OOMPH_PSEUDO_ELASTIC_FSI_PRECONDITIONER
30 #include "../generic/problem.h"
31 #include "../generic/block_preconditioner.h"
32 #include "../generic/preconditioner.h"
33 #include "../generic/SuperLU_preconditioner.h"
34 #include "../generic/matrix_vector_product.h"
35 #include "../navier_stokes/navier_stokes_preconditioners.h"
36 #include "../generic/general_purpose_block_preconditioners.h"
Definition: block_preconditioner.h:422
const Mesh * mesh_pt(const unsigned &i) const
Definition: block_preconditioner.h:1782
void set_nmesh(const unsigned &n)
Definition: block_preconditioner.h:2851
Definition: double_vector.h:58
Definition: matrix_vector_product.h:51
Definition: navier_stokes_preconditioners.h:607
Definition: preconditioner.h:54
Definition: problem.h:151
Definition: pseudo_elastic_fsi_preconditioner.h:62
MatrixVectorProduct * Solid_pseudo_elastic_matvec_pt
solid onto pseudo solid matrix vector operatio
Definition: pseudo_elastic_fsi_preconditioner.h:234
Mesh * Lagrange_multiplier_mesh_pt
Mesh containing the lagrange multiplier elements.
Definition: pseudo_elastic_fsi_preconditioner.h:246
MatrixVectorProduct * Lagrange_solid_matvec_pt
Definition: pseudo_elastic_fsi_preconditioner.h:237
void enable_navier_stokes_schur_complement_preconditioner()
Definition: pseudo_elastic_fsi_preconditioner.h:193
void clean_up_memory()
Broken assignment operator.
Definition: pseudo_elastic_fsi_preconditioner.cc:34
Preconditioner * Solid_preconditioner_pt
pointer to the solid preconditioner
Definition: pseudo_elastic_fsi_preconditioner.h:217
NavierStokesSchurComplementPreconditioner * Navier_stokes_schur_complement_preconditioner_pt
Navier Stokes Schur complement preconditioner.
Definition: pseudo_elastic_fsi_preconditioner.h:214
void setup()
Setup the precoonditioner.
Definition: pseudo_elastic_fsi_preconditioner.cc:52
NavierStokesSchurComplementPreconditioner *const navier_stokes_schur_complement_preconditioner_pt()
Access function to the Navier Stokes Schur complement preconditioner.
Definition: pseudo_elastic_fsi_preconditioner.h:186
Preconditioner * Navier_stokes_preconditioner_pt
pointer to the navier stokes precondtioner
Definition: pseudo_elastic_fsi_preconditioner.h:210
MatrixVectorProduct * Fluid_pseudo_elastic_matvec_pt
fluid onto pseudosolid matrix vector operator
Definition: pseudo_elastic_fsi_preconditioner.h:228
MatrixVectorProduct * Solid_fluid_matvec_pt
solid onto fluid matrix vector operatio
Definition: pseudo_elastic_fsi_preconditioner.h:231
void set_fluid_and_pseudo_elastic_mesh_pt(Mesh *mesh_pt)
specify the mesh containing the combined fluid/pseudo solid elements
Definition: pseudo_elastic_fsi_preconditioner.h:150
virtual ~PseudoElasticFSIPreconditioner()
Definition: pseudo_elastic_fsi_preconditioner.h:102
void set_solid_preconditioner(Preconditioner *prec_pt)
Definition: pseudo_elastic_fsi_preconditioner.h:169
Mesh * Fluid_and_pseudo_elastic_mesh_pt
Mesh containing the combined fluid and pseudo solid element.
Definition: pseudo_elastic_fsi_preconditioner.h:240
PseudoElasticFSIPreconditioner(const unsigned &dim, Problem *problem_pt)
Definition: pseudo_elastic_fsi_preconditioner.h:67
bool Solid_preconditioner_is_block_preconditioner
Definition: pseudo_elastic_fsi_preconditioner.h:225
bool Use_navier_stokes_schur_complement_preconditioner
Definition: pseudo_elastic_fsi_preconditioner.h:254
bool Using_default_solid_preconditioner
Definition: pseudo_elastic_fsi_preconditioner.h:221
void preconditioner_solve(const DoubleVector &r, DoubleVector &z)
Apply the preconditioner.
Definition: pseudo_elastic_fsi_preconditioner.cc:280
void set_lagrange_multiplier_mesh_pt(Mesh *mesh_pt)
specify the mesh containing the lagrange multiplier elements
Definition: pseudo_elastic_fsi_preconditioner.h:162
unsigned Dim
the dimension of the fluid
Definition: pseudo_elastic_fsi_preconditioner.h:249
PseudoElasticPreconditioner *const pseudo_elastic_preconditioner_pt()
Access function to the pseudo elastic subsidiary preconditioner.
Definition: pseudo_elastic_fsi_preconditioner.h:180
void disable_navier_stokes_schur_complement_preconditioner()
Definition: pseudo_elastic_fsi_preconditioner.h:200
void set_solid_mesh_pt(Mesh *mesh_pt)
specify the mesh containing the solid elements
Definition: pseudo_elastic_fsi_preconditioner.h:156
PseudoElasticFSIPreconditioner(const PseudoElasticFSIPreconditioner &)=delete
Broken copy constructor.
PseudoElasticPreconditioner * Pseudo_elastic_preconditioner_pt
pointer to the pseudo solid preconditioner
Definition: pseudo_elastic_fsi_preconditioner.h:207
Mesh * Solid_mesh_pt
Mesh containing the solid elements.
Definition: pseudo_elastic_fsi_preconditioner.h:243
Definition: pseudo_elastic_preconditioner.h:100
An interface to allow SuperLU to be used as an (exact) Preconditioner.
Definition: SuperLU_preconditioner.h:40
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10