Public Member Functions | Static Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
oomph::MumpsSolver Class Reference

Wrapper to Mumps solver. More...

#include <mumps_solver.h>

+ Inheritance diagram for oomph::MumpsSolver:

Public Member Functions

 MumpsSolver ()
 Constructor: Call setup. More...
 
 MumpsSolver (const MumpsSolver &dummy)=delete
 Broken copy constructor. More...
 
void operator= (const MumpsSolver &)=delete
 Broken assignment operator. More...
 
 ~MumpsSolver ()
 Destructor: Cleanup. More...
 
void disable_resolve ()
 Overload disable resolve so that it cleans up memory too. More...
 
void enable_suppress_warning_about_MPI_COMM_WORLD ()
 Set boolean to suppress warning about communicator not equal to MPI_COMM_WORLD. More...
 
void disable_suppress_warning_about_MPI_COMM_WORLD ()
 Don't suppress warning about communicator not equal to MPI_COMM_WORLD. More...
 
void enable_suppress_mumps_info_during_solve ()
 Set boolean to suppress info being printed to screen during MUMPS solve. More...
 
void disable_suppress_mumps_info_during_solve ()
 Don't suppress info being printed to screen during MUMPS solve. More...
 
void solve (Problem *const &problem_pt, DoubleVector &result)
 Solver: Takes pointer to problem and returns the results Vector which contains the solution of the linear system defined by the problem's fully assembled Jacobian and residual Vector. More...
 
void solve (DoubleMatrixBase *const &matrix_pt, const DoubleVector &rhs, DoubleVector &result)
 Linear-algebra-type solver: Takes pointer to a matrix and rhs vector and returns the solution of the linear system. The function returns the global result Vector. Note: if Delete_matrix_data is true the function matrix_pt->clean_up_memory() will be used to wipe the matrix data. More...
 
void resolve (const DoubleVector &rhs, DoubleVector &result)
 Resolve the system defined by the last assembled Jacobian and the specified rhs vector if resolve has been enabled. Note: returns the global result Vector. More...
 
void enable_doc_stats ()
 Enable documentation of statistics. More...
 
void disable_doc_stats ()
 Disable documentation of statistics. More...
 
double jacobian_setup_time ()
 Returns the time taken to assemble the Jacobian matrix and residual vector. More...
 
virtual double linear_solver_solution_time ()
 Return the time taken to solve the linear system (needs to be overloaded for each linear solver) More...
 
void enable_suppress_solve ()
 Set the flag to avoid solution of the system, so just assemble the Jacobian and the rhs. (Used only for timing runs, obviously) More...
 
void disable_suppress_solve ()
 Unset the flag so that the system is actually solved again This is the default (obviously) More...
 
void enable_delete_matrix_data ()
 Set Delete_matrix_data flag. MumpsSolver needs its own copy of the input matrix, therefore a copy must be made if any matrix used with this solver is to be preserved. If the input matrix can be deleted the flag can be set to true to reduce the amount of memory required, and the matrix data will be wiped using its clean_up_memory() function. Default value is false. More...
 
void disable_delete_matrix_data ()
 Unset Delete_matrix_data flag. MumpsSolver needs its own copy of the input matrix, therefore a copy must be made if any matrix used with this solver is to be preserved. If the input matrix can be deleted the flag can be set to true to reduce the amount of memory required, and the matrix data will be wiped using its clean_up_memory() function. Default value is false. More...
 
void factorise (DoubleMatrixBase *const &matrix_pt)
 Do the factorisation stage Note: if Delete_matrix_data is true the function matrix_pt->clean_up_memory() will be used to wipe the matrix data. More...
 
void backsub (const DoubleVector &rhs, DoubleVector &result)
 Do the backsubstitution for mumps solver Note: returns the global result Vector. More...
 
void clean_up_memory ()
 Clean up the memory allocated by the mumps solver. More...
 
void declare_jacobian_is_unsymmetric ()
 Tell MUMPS that the Jacobian matrix is unsymmetric. More...
 
void declare_jacobian_is_symmetric ()
 Tell MUMPS that the Jacobian matrix is general symmetric. More...
 
void declare_jacobian_is_symmetric_positive_definite ()
 Tell MUMPS that the Jacobian matrix is symmetric positive-definite. More...
 
void use_pord_ordering ()
 
void use_metis_ordering ()
 
void use_scotch_ordering ()
 
- Public Member Functions inherited from oomph::LinearSolver
 LinearSolver ()
 Empty constructor, initialise the member data. More...
 
 LinearSolver (const LinearSolver &dummy)=delete
 Broken copy constructor. More...
 
void operator= (const LinearSolver &)=delete
 Broken assignment operator. More...
 
virtual ~LinearSolver ()
 Empty virtual destructor. More...
 
void enable_doc_time ()
 Enable documentation of solve times. More...
 
void disable_doc_time ()
 Disable documentation of solve times. More...
 
bool is_doc_time_enabled () const
 Is documentation of solve times enabled? More...
 
bool is_resolve_enabled () const
 Boolean flag indicating if resolves are enabled. More...
 
virtual void enable_resolve ()
 Enable resolve (i.e. store matrix and/or LU decomposition, say) Virtual so it can be overloaded to perform additional tasks. More...
 
virtual void solve (DoubleMatrixBase *const &matrix_pt, const Vector< double > &rhs, Vector< double > &result)
 Linear-algebra-type solver: Takes pointer to a matrix and rhs vector and returns the solution of the linear system. More...
 
virtual void solve_transpose (Problem *const &problem_pt, DoubleVector &result)
 Solver: Takes pointer to problem and returns the results vector which contains the solution of the linear system defined by the problem's fully assembled Jacobian and residual vector (broken virtual). More...
 
virtual void solve_transpose (DoubleMatrixBase *const &matrix_pt, const DoubleVector &rhs, DoubleVector &result)
 Linear-algebra-type solver: Takes pointer to a matrix and rhs vector and returns the solution of the linear system. More...
 
virtual void solve_transpose (DoubleMatrixBase *const &matrix_pt, const Vector< double > &rhs, Vector< double > &result)
 Linear-algebra-type solver: Takes pointer to a matrix and rhs vector and returns the solution of the linear system. More...
 
virtual void resolve_transpose (const DoubleVector &rhs, DoubleVector &result)
 Solver: Resolve the system defined by the last assembled jacobian and the rhs vector. Solution is returned in the vector result. (broken virtual) More...
 
virtual double jacobian_setup_time () const
 returns the time taken to assemble the Jacobian matrix and residual vector (needs to be overloaded for each solver) More...
 
virtual double linear_solver_solution_time () const
 return the time taken to solve the linear system (needs to be overloaded for each linear solver) More...
 
virtual void enable_computation_of_gradient ()
 function to enable the computation of the gradient required for the globally convergent Newton method More...
 
void disable_computation_of_gradient ()
 function to disable the computation of the gradient required for the globally convergent Newton method More...
 
void reset_gradient ()
 function to reset the size of the gradient before each Newton solve More...
 
void get_gradient (DoubleVector &gradient)
 function to access the gradient, provided it has been computed More...
 
- Public Member Functions inherited from oomph::DistributableLinearAlgebraObject
 DistributableLinearAlgebraObject ()
 Default constructor - create a distribution. More...
 
 DistributableLinearAlgebraObject (const DistributableLinearAlgebraObject &matrix)=delete
 Broken copy constructor. More...
 
void operator= (const DistributableLinearAlgebraObject &)=delete
 Broken assignment operator. More...
 
virtual ~DistributableLinearAlgebraObject ()
 Destructor. More...
 
LinearAlgebraDistributiondistribution_pt () const
 access to the LinearAlgebraDistribution More...
 
unsigned nrow () const
 access function to the number of global rows. More...
 
unsigned nrow_local () const
 access function for the num of local rows on this processor. More...
 
unsigned nrow_local (const unsigned &p) const
 access function for the num of local rows on this processor. More...
 
unsigned first_row () const
 access function for the first row on this processor More...
 
unsigned first_row (const unsigned &p) const
 access function for the first row on this processor More...
 
bool distributed () const
 distribution is serial or distributed More...
 
bool distribution_built () const
 if the communicator_pt is null then the distribution is not setup then false is returned, otherwise return true More...
 
void build_distribution (const LinearAlgebraDistribution *const dist_pt)
 setup the distribution of this distributable linear algebra object More...
 
void build_distribution (const LinearAlgebraDistribution &dist)
 setup the distribution of this distributable linear algebra object More...
 

Static Public Attributes

static bool Suppress_incorrect_rhs_distribution_warning_in_resolve
 Static flag that determines whether the warning about incorrect distribution of RHSs will be printed or not. More...
 
static int Default_workspace_scaling_factor = 5
 Default factor for workspace – static so it can be overwritten globally. More...
 

Private Types

enum  MumpsJacobianSymmetryFlags { Unsymmetric = 0 , Symmetric_positive_definite = 1 , Symmetric = 2 }
 values of the SYM variable used by the MUMPS solver which dictates the symmetry properties of the Jacobian matrix; magic numbers as defined by MUMPS documentation More...
 
enum  MumpsJacobianOrderingFlags { Scotch_ordering = 3 , Pord_ordering = 4 , Metis_ordering = 5 }
 ordering library to use for serial analysis; magic numbers as defined by MUMPS documentation More...
 

Private Member Functions

void initialise_mumps ()
 Initialise instance of mumps data structure. More...
 
void shutdown_mumps ()
 Shutdown mumps. More...
 

Private Attributes

double Jacobian_setup_time
 Jacobian setup time. More...
 
double Solution_time
 Solution time. More...
 
bool Suppress_solve
 Suppress solve? More...
 
bool Doc_stats
 Set to true for MumpsSolver to output statistics (false by default). More...
 
bool Suppress_warning_about_MPI_COMM_WORLD
 Boolean to suppress warning about communicator not equal to MPI_COMM_WORLD. More...
 
bool Suppress_mumps_info_during_solve
 Boolean to suppress info being printed to screen during MUMPS solve. More...
 
bool Mumps_is_initialised
 Has mumps been initialised? More...
 
unsigned Workspace_scaling_factor
 
bool Delete_matrix_data
 Delete_matrix_data flag. MumpsSolver needs its own copy of the input matrix, therefore a copy must be made if any matrix used with this solver is to be preserved. If the input matrix can be deleted the flag can be set to true to reduce the amount of memory required, and the matrix data will be wiped using its clean_up_memory() function. Default value is false. More...
 
Vector< int > Irn_loc
 Vector for row numbers. More...
 
Vector< int > Jcn_loc
 
Vector< double > A_loc
 
DMUMPS_STRUC_C * Mumps_struc_pt
 Pointer to MUMPS struct that contains the solver data. More...
 
unsigned Jacobian_symmetry_flag
 symmetry of the Jacobian matrix we're solving; takes one of the enum values above More...
 
unsigned Jacobian_ordering_flag
 stores an integer from the public enum which specifies which package (PORD, Metis or SCOTCH) is used to reorder the Jacobian matrix during the analysis More...
 

Additional Inherited Members

- Protected Member Functions inherited from oomph::DistributableLinearAlgebraObject
void clear_distribution ()
 clear the distribution of this distributable linear algebra object More...
 
- Protected Attributes inherited from oomph::LinearSolver
bool Enable_resolve
 Boolean that indicates whether the matrix (or its factors, in the case of direct solver) should be stored so that the resolve function can be used. More...
 
bool Doc_time
 Boolean flag that indicates whether the time taken. More...
 
bool Compute_gradient
 flag that indicates whether the gradient required for the globally convergent Newton method should be computed or not More...
 
bool Gradient_has_been_computed
 flag that indicates whether the gradient was computed or not More...
 
DoubleVector Gradient_for_glob_conv_newton_solve
 DoubleVector storing the gradient for the globally convergent Newton method. More...
 

Detailed Description

Wrapper to Mumps solver.

Definition at line 61 of file mumps_solver.h.

Member Enumeration Documentation

◆ MumpsJacobianOrderingFlags

ordering library to use for serial analysis; magic numbers as defined by MUMPS documentation

Enumerator
Scotch_ordering 
Pord_ordering 
Metis_ordering 

Definition at line 311 of file mumps_solver.h.

◆ MumpsJacobianSymmetryFlags

values of the SYM variable used by the MUMPS solver which dictates the symmetry properties of the Jacobian matrix; magic numbers as defined by MUMPS documentation

Enumerator
Unsymmetric 
Symmetric_positive_definite 
Symmetric 

Definition at line 302 of file mumps_solver.h.

Constructor & Destructor Documentation

◆ MumpsSolver() [1/2]

oomph::MumpsSolver::MumpsSolver ( )

Constructor: Call setup.

Definition at line 69 of file mumps_solver.cc.

◆ MumpsSolver() [2/2]

oomph::MumpsSolver::MumpsSolver ( const MumpsSolver dummy)
delete

Broken copy constructor.

◆ ~MumpsSolver()

oomph::MumpsSolver::~MumpsSolver ( )

Destructor: Cleanup.

Destructor: Shutdown mumps.

Definition at line 168 of file mumps_solver.cc.

References shutdown_mumps().

Member Function Documentation

◆ backsub()

void oomph::MumpsSolver::backsub ( const DoubleVector rhs,
DoubleVector result 
)

◆ clean_up_memory()

void oomph::MumpsSolver::clean_up_memory ( )
virtual

Clean up the memory allocated by the mumps solver.

Clean up the memory allocated for the MumpsSolver solver.

Reimplemented from oomph::LinearSolver.

Definition at line 710 of file mumps_solver.cc.

References shutdown_mumps().

Referenced by oomph::NewMumpsPreconditioner::clean_up_memory(), disable_resolve(), and solve().

◆ declare_jacobian_is_symmetric()

void oomph::MumpsSolver::declare_jacobian_is_symmetric ( )
inline

Tell MUMPS that the Jacobian matrix is general symmetric.

Definition at line 218 of file mumps_solver.h.

References Jacobian_symmetry_flag, and Symmetric.

◆ declare_jacobian_is_symmetric_positive_definite()

void oomph::MumpsSolver::declare_jacobian_is_symmetric_positive_definite ( )
inline

Tell MUMPS that the Jacobian matrix is symmetric positive-definite.

Definition at line 224 of file mumps_solver.h.

References Jacobian_symmetry_flag, and Symmetric_positive_definite.

◆ declare_jacobian_is_unsymmetric()

void oomph::MumpsSolver::declare_jacobian_is_unsymmetric ( )
inline

Tell MUMPS that the Jacobian matrix is unsymmetric.

Definition at line 212 of file mumps_solver.h.

References Jacobian_symmetry_flag, and Unsymmetric.

◆ disable_delete_matrix_data()

void oomph::MumpsSolver::disable_delete_matrix_data ( )
inline

Unset Delete_matrix_data flag. MumpsSolver needs its own copy of the input matrix, therefore a copy must be made if any matrix used with this solver is to be preserved. If the input matrix can be deleted the flag can be set to true to reduce the amount of memory required, and the matrix data will be wiped using its clean_up_memory() function. Default value is false.

Definition at line 190 of file mumps_solver.h.

References Delete_matrix_data.

◆ disable_doc_stats()

void oomph::MumpsSolver::disable_doc_stats ( )
inline

Disable documentation of statistics.

Definition at line 139 of file mumps_solver.h.

References Doc_stats.

◆ disable_resolve()

void oomph::MumpsSolver::disable_resolve ( )
inlinevirtual

Overload disable resolve so that it cleans up memory too.

Reimplemented from oomph::LinearSolver.

Definition at line 81 of file mumps_solver.h.

References clean_up_memory(), and oomph::LinearSolver::disable_resolve().

◆ disable_suppress_mumps_info_during_solve()

void oomph::MumpsSolver::disable_suppress_mumps_info_during_solve ( )
inline

Don't suppress info being printed to screen during MUMPS solve.

Definition at line 108 of file mumps_solver.h.

References Suppress_mumps_info_during_solve.

◆ disable_suppress_solve()

void oomph::MumpsSolver::disable_suppress_solve ( )
inline

Unset the flag so that the system is actually solved again This is the default (obviously)

Definition at line 168 of file mumps_solver.h.

References Suppress_solve.

◆ disable_suppress_warning_about_MPI_COMM_WORLD()

void oomph::MumpsSolver::disable_suppress_warning_about_MPI_COMM_WORLD ( )
inline

Don't suppress warning about communicator not equal to MPI_COMM_WORLD.

Definition at line 95 of file mumps_solver.h.

References Suppress_warning_about_MPI_COMM_WORLD.

◆ enable_delete_matrix_data()

void oomph::MumpsSolver::enable_delete_matrix_data ( )
inline

Set Delete_matrix_data flag. MumpsSolver needs its own copy of the input matrix, therefore a copy must be made if any matrix used with this solver is to be preserved. If the input matrix can be deleted the flag can be set to true to reduce the amount of memory required, and the matrix data will be wiped using its clean_up_memory() function. Default value is false.

Definition at line 179 of file mumps_solver.h.

References Delete_matrix_data.

◆ enable_doc_stats()

void oomph::MumpsSolver::enable_doc_stats ( )
inline

Enable documentation of statistics.

Definition at line 133 of file mumps_solver.h.

References Doc_stats.

◆ enable_suppress_mumps_info_during_solve()

void oomph::MumpsSolver::enable_suppress_mumps_info_during_solve ( )
inline

Set boolean to suppress info being printed to screen during MUMPS solve.

Definition at line 102 of file mumps_solver.h.

References Suppress_mumps_info_during_solve.

◆ enable_suppress_solve()

void oomph::MumpsSolver::enable_suppress_solve ( )
inline

Set the flag to avoid solution of the system, so just assemble the Jacobian and the rhs. (Used only for timing runs, obviously)

Definition at line 161 of file mumps_solver.h.

References Suppress_solve.

◆ enable_suppress_warning_about_MPI_COMM_WORLD()

void oomph::MumpsSolver::enable_suppress_warning_about_MPI_COMM_WORLD ( )
inline

Set boolean to suppress warning about communicator not equal to MPI_COMM_WORLD.

Definition at line 89 of file mumps_solver.h.

References Suppress_warning_about_MPI_COMM_WORLD.

◆ factorise()

void oomph::MumpsSolver::factorise ( DoubleMatrixBase *const &  matrix_pt)

◆ initialise_mumps()

void oomph::MumpsSolver::initialise_mumps ( )
private

Initialise instance of mumps data structure.

Definition at line 86 of file mumps_solver.cc.

References Jacobian_ordering_flag, Jacobian_symmetry_flag, Mumps_is_initialised, and Mumps_struc_pt.

Referenced by factorise().

◆ jacobian_setup_time()

double oomph::MumpsSolver::jacobian_setup_time ( )
inline

Returns the time taken to assemble the Jacobian matrix and residual vector.

Definition at line 146 of file mumps_solver.h.

References Jacobian_setup_time.

◆ linear_solver_solution_time()

virtual double oomph::MumpsSolver::linear_solver_solution_time ( )
inlinevirtual

Return the time taken to solve the linear system (needs to be overloaded for each linear solver)

Definition at line 153 of file mumps_solver.h.

References Solution_time.

◆ operator=()

void oomph::MumpsSolver::operator= ( const MumpsSolver )
delete

Broken assignment operator.

◆ resolve()

void oomph::MumpsSolver::resolve ( const DoubleVector rhs,
DoubleVector result 
)
virtual

Resolve the system defined by the last assembled Jacobian and the specified rhs vector if resolve has been enabled. Note: returns the global result Vector.

Resolve the system defined by the last assembled jacobian and the specified rhs vector if resolve has been enabled. Note: returns the global result Vector.

Reimplemented from oomph::LinearSolver.

Definition at line 1005 of file mumps_solver.cc.

References backsub(), oomph::TimingHelpers::convert_secs_to_formatted_string(), oomph::DistributableLinearAlgebraObject::distribution_pt(), Doc_stats, oomph::LinearSolver::Doc_time, Mumps_struc_pt, oomph::oomph_info, Solution_time, Suppress_warning_about_MPI_COMM_WORLD, and oomph::TimingHelpers::timer().

Referenced by oomph::NewMumpsPreconditioner::preconditioner_solve().

◆ shutdown_mumps()

void oomph::MumpsSolver::shutdown_mumps ( )
private

Shutdown mumps.

Definition at line 141 of file mumps_solver.cc.

References A_loc, Irn_loc, Jcn_loc, Mumps_is_initialised, and Mumps_struc_pt.

Referenced by clean_up_memory(), factorise(), and ~MumpsSolver().

◆ solve() [1/2]

void oomph::MumpsSolver::solve ( DoubleMatrixBase *const &  matrix_pt,
const DoubleVector rhs,
DoubleVector result 
)
virtual

Linear-algebra-type solver: Takes pointer to a matrix and rhs vector and returns the solution of the linear system. The function returns the global result Vector. Note: if Delete_matrix_data is true the function matrix_pt->clean_up_memory() will be used to wipe the matrix data.

Linear-algebra-type solver: Takes pointer to a matrix and rhs vector and returns the solution of the linear system. Problem pointer defaults to NULL and can be omitted. The function returns the global result vector. Matrix must be CRDoubleMatrix. Note: if Delete_matrix_data is true the function matrix_pt->clean_up_memory() will be used to wipe the matrix data.

Reimplemented from oomph::LinearSolver.

Definition at line 724 of file mumps_solver.cc.

References backsub(), oomph::DistributableLinearAlgebraObject::build_distribution(), oomph::DoubleVector::built(), oomph::LinearAlgebraDistribution::built(), clean_up_memory(), oomph::TimingHelpers::convert_secs_to_formatted_string(), oomph::LinearAlgebraDistribution::distributed(), oomph::DistributableLinearAlgebraObject::distribution_pt(), oomph::LinearSolver::Doc_time, oomph::LinearSolver::Enable_resolve, factorise(), Mumps_struc_pt, oomph::DoubleMatrixBase::ncol(), oomph::DistributableLinearAlgebraObject::nrow(), oomph::DoubleMatrixBase::nrow(), oomph::oomph_info, Solution_time, Suppress_warning_about_MPI_COMM_WORLD, and oomph::TimingHelpers::timer().

◆ solve() [2/2]

void oomph::MumpsSolver::solve ( Problem *const &  problem_pt,
DoubleVector result 
)
virtual

◆ use_metis_ordering()

void oomph::MumpsSolver::use_metis_ordering ( )
inline

Definition at line 236 of file mumps_solver.h.

References Jacobian_ordering_flag, and Metis_ordering.

◆ use_pord_ordering()

void oomph::MumpsSolver::use_pord_ordering ( )
inline

Definition at line 230 of file mumps_solver.h.

References Jacobian_ordering_flag, and Pord_ordering.

◆ use_scotch_ordering()

void oomph::MumpsSolver::use_scotch_ordering ( )
inline

Definition at line 242 of file mumps_solver.h.

References Jacobian_ordering_flag, and Scotch_ordering.

Member Data Documentation

◆ A_loc

Vector<double> oomph::MumpsSolver::A_loc
private

Definition at line 294 of file mumps_solver.h.

Referenced by factorise(), and shutdown_mumps().

◆ Default_workspace_scaling_factor

int oomph::MumpsSolver::Default_workspace_scaling_factor = 5
static

Default factor for workspace – static so it can be overwritten globally.

/////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////

Default factor for workspace – static so it can be overwritten globally.

Definition at line 209 of file mumps_solver.h.

◆ Delete_matrix_data

bool oomph::MumpsSolver::Delete_matrix_data
private

Delete_matrix_data flag. MumpsSolver needs its own copy of the input matrix, therefore a copy must be made if any matrix used with this solver is to be preserved. If the input matrix can be deleted the flag can be set to true to reduce the amount of memory required, and the matrix data will be wiped using its clean_up_memory() function. Default value is false.

Definition at line 285 of file mumps_solver.h.

Referenced by disable_delete_matrix_data(), enable_delete_matrix_data(), factorise(), and solve().

◆ Doc_stats

bool oomph::MumpsSolver::Doc_stats
private

Set to true for MumpsSolver to output statistics (false by default).

Definition at line 264 of file mumps_solver.h.

Referenced by backsub(), disable_doc_stats(), enable_doc_stats(), factorise(), and resolve().

◆ Irn_loc

Vector<int> oomph::MumpsSolver::Irn_loc
private

Vector for row numbers.

Definition at line 288 of file mumps_solver.h.

Referenced by factorise(), and shutdown_mumps().

◆ Jacobian_ordering_flag

unsigned oomph::MumpsSolver::Jacobian_ordering_flag
private

stores an integer from the public enum which specifies which package (PORD, Metis or SCOTCH) is used to reorder the Jacobian matrix during the analysis

Definition at line 325 of file mumps_solver.h.

Referenced by initialise_mumps(), use_metis_ordering(), use_pord_ordering(), and use_scotch_ordering().

◆ Jacobian_setup_time

double oomph::MumpsSolver::Jacobian_setup_time
private

Jacobian setup time.

Definition at line 255 of file mumps_solver.h.

Referenced by jacobian_setup_time(), and solve().

◆ Jacobian_symmetry_flag

unsigned oomph::MumpsSolver::Jacobian_symmetry_flag
private

symmetry of the Jacobian matrix we're solving; takes one of the enum values above

Definition at line 320 of file mumps_solver.h.

Referenced by declare_jacobian_is_symmetric(), declare_jacobian_is_symmetric_positive_definite(), declare_jacobian_is_unsymmetric(), and initialise_mumps().

◆ Jcn_loc

Vector<int> oomph::MumpsSolver::Jcn_loc
private

Definition at line 291 of file mumps_solver.h.

Referenced by factorise(), and shutdown_mumps().

◆ Mumps_is_initialised

bool oomph::MumpsSolver::Mumps_is_initialised
private

Has mumps been initialised?

Definition at line 274 of file mumps_solver.h.

Referenced by backsub(), factorise(), initialise_mumps(), and shutdown_mumps().

◆ Mumps_struc_pt

DMUMPS_STRUC_C* oomph::MumpsSolver::Mumps_struc_pt
private

Pointer to MUMPS struct that contains the solver data.

Definition at line 297 of file mumps_solver.h.

Referenced by backsub(), factorise(), initialise_mumps(), resolve(), shutdown_mumps(), and solve().

◆ Solution_time

double oomph::MumpsSolver::Solution_time
private

Solution time.

Definition at line 258 of file mumps_solver.h.

Referenced by linear_solver_solution_time(), resolve(), and solve().

◆ Suppress_incorrect_rhs_distribution_warning_in_resolve

bool oomph::MumpsSolver::Suppress_incorrect_rhs_distribution_warning_in_resolve
static
Initial value:
=
false

Static flag that determines whether the warning about incorrect distribution of RHSs will be printed or not.

Static warning to suppress warnings about incorrect distribution of RHS vector. Default is false.

Definition at line 66 of file mumps_solver.h.

Referenced by backsub().

◆ Suppress_mumps_info_during_solve

bool oomph::MumpsSolver::Suppress_mumps_info_during_solve
private

Boolean to suppress info being printed to screen during MUMPS solve.

Definition at line 271 of file mumps_solver.h.

Referenced by disable_suppress_mumps_info_during_solve(), enable_suppress_mumps_info_during_solve(), and factorise().

◆ Suppress_solve

bool oomph::MumpsSolver::Suppress_solve
private

Suppress solve?

Definition at line 261 of file mumps_solver.h.

Referenced by disable_suppress_solve(), enable_suppress_solve(), and solve().

◆ Suppress_warning_about_MPI_COMM_WORLD

bool oomph::MumpsSolver::Suppress_warning_about_MPI_COMM_WORLD
private

Boolean to suppress warning about communicator not equal to MPI_COMM_WORLD.

Definition at line 268 of file mumps_solver.h.

Referenced by backsub(), disable_suppress_warning_about_MPI_COMM_WORLD(), enable_suppress_warning_about_MPI_COMM_WORLD(), factorise(), resolve(), and solve().

◆ Workspace_scaling_factor

unsigned oomph::MumpsSolver::Workspace_scaling_factor
private

Definition at line 277 of file mumps_solver.h.

Referenced by factorise().


The documentation for this class was generated from the following files: