MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
SolutionManager Class Referenceabstract

#include <solman.h>

Inheritance diagram for SolutionManager:
Collaboration diagram for SolutionManager:

Classes

struct  ScaleOpt
 

Public Types

enum  ScaleWhen { SCALEW_NEVER = 0, SCALEW_ONCE, SCALEW_ALWAYS }
 
enum  ScaleAlgorithm {
  SCALEA_NONE, SCALEA_UNDEF, SCALEA_ROW_MAX, SCALEA_ROW_SUM,
  SCALEA_COL_MAX, SCALEA_COL_SUM, SCALEA_LAPACK, SCALEA_ITERATIVE,
  SCALEA_ROW_MAX_COL_MAX
}
 
enum  ScaleFlags {
  SCALEF_DEFAULT = 0x0u, SCALEF_WARN = 0x1u, SCALEF_VERBOSE = 0x2u, SCALEF_COND_NUM_1 = 0x4u,
  SCALEF_COND_NUM_INF = 0x8u, SCALEF_COND_NUM = SCALEF_COND_NUM_1 | SCALEF_COND_NUM_INF
}
 

Public Member Functions

 SolutionManager (void)
 
virtual ~SolutionManager (void)
 
virtual void LinkToSolution (VectorHandler &XCurr, VectorHandler &XPrimeCurr)
 
virtual void MatrReset (void)=0
 
virtual void MatrInitialize (void)
 
virtual void Solve (void)=0
 
virtual void SolveT (void)
 
virtual MatrixHandlerpMatHdl (void) const =0
 
virtual VectorHandlerpResHdl (void) const =0
 
virtual VectorHandlerpSolHdl (void) const =0
 
doublerealpdSetResVec (doublereal *pd)
 
doublerealpdSetSolVec (doublereal *pd)
 
bool bGetConditionNumber (doublereal &dCond) const
 

Protected Attributes

LinearSolverpLS
 

Detailed Description

Definition at line 99 of file solman.h.

Member Enumeration Documentation

Enumerator
SCALEA_NONE 
SCALEA_UNDEF 
SCALEA_ROW_MAX 
SCALEA_ROW_SUM 
SCALEA_COL_MAX 
SCALEA_COL_SUM 
SCALEA_LAPACK 
SCALEA_ITERATIVE 
SCALEA_ROW_MAX_COL_MAX 

Definition at line 108 of file solman.h.

Enumerator
SCALEF_DEFAULT 
SCALEF_WARN 
SCALEF_VERBOSE 
SCALEF_COND_NUM_1 
SCALEF_COND_NUM_INF 
SCALEF_COND_NUM 

Definition at line 120 of file solman.h.

Enumerator
SCALEW_NEVER 
SCALEW_ONCE 
SCALEW_ALWAYS 

Definition at line 102 of file solman.h.

Constructor & Destructor Documentation

SolutionManager::SolutionManager ( void  )

Definition at line 57 of file solman.cc.

References NO_OP.

58 : pLS(0)
59 {
60  NO_OP;
61 }
#define NO_OP
Definition: myassert.h:74
LinearSolver * pLS
Definition: solman.h:151
SolutionManager::~SolutionManager ( void  )
virtual

Definition at line 63 of file solman.cc.

References pLS, and SAFEDELETE.

64 {
65  if (pLS != NULL) {
66  SAFEDELETE(pLS);
67  }
68 }
LinearSolver * pLS
Definition: solman.h:151
#define SAFEDELETE(pnt)
Definition: mynewmem.h:710

Member Function Documentation

bool SolutionManager::bGetConditionNumber ( doublereal dCond) const

Definition at line 107 of file solman.cc.

References LinearSolver::bGetConditionNumber(), and pLS.

Referenced by DataManager::InitialJointAssembly(), NewtonRaphsonSolver::Solve(), and LineSearchSolver::Solve().

108 {
109  return pLS->bGetConditionNumber(dCond);
110 }
virtual bool bGetConditionNumber(doublereal &dCond)
Definition: ls.cc:132
LinearSolver * pLS
Definition: solman.h:151

Here is the call graph for this function:

void SolutionManager::LinkToSolution ( VectorHandler XCurr,
VectorHandler XPrimeCurr 
)
virtual

Definition at line 85 of file solman.cc.

References NO_OP.

87 {
88  NO_OP;
89 }
#define NO_OP
Definition: myassert.h:74
void SolutionManager::MatrInitialize ( void  )
virtual

Reimplemented in SchurSolutionManager, and NaiveSparsePermSolutionManager< T >.

Definition at line 72 of file solman.cc.

References MatrReset().

Referenced by DataManager::InitialJointAssembly(), LineSearchSolver::Jacobian(), main(), BiCGStab::Solve(), NewtonRaphsonSolver::Solve(), and Gmres::Solve().

73 {
74  MatrReset();
75 }
virtual void MatrReset(void)=0

Here is the call graph for this function:

doublereal * SolutionManager::pdSetResVec ( doublereal pd)

Definition at line 93 of file solman.cc.

References ASSERT, LinearSolver::pdSetResVec(), and pLS.

Referenced by FullJacobianPr::Precond().

94 {
95  ASSERT(pLS);
96  return pLS->pdSetResVec(pd);
97 }
doublereal * pdSetResVec(doublereal *pd)
Definition: ls.cc:95
#define ASSERT(expression)
Definition: colamd.c:977
LinearSolver * pLS
Definition: solman.h:151

Here is the call graph for this function:

doublereal * SolutionManager::pdSetSolVec ( doublereal pd)

Definition at line 101 of file solman.cc.

References ASSERT, LinearSolver::pdSetSolVec(), and pLS.

Referenced by FullJacobianPr::Precond().

102 {
103  ASSERT(pLS);
104  return pLS->pdSetSolVec(pd);
105 }
doublereal * pdSetSolVec(doublereal *pd)
Definition: ls.cc:113
#define ASSERT(expression)
Definition: colamd.c:977
LinearSolver * pLS
Definition: solman.h:151

Here is the call graph for this function:

void SolutionManager::SolveT ( void  )
virtual

Definition at line 78 of file solman.cc.

References MBDYN_EXCEPT_ARGS.

Referenced by InverseDynamicsStepSolver::Advance(), and main().

79 {
80  silent_cerr("SolutionManager::SolveT() not supported" << std::endl);
82 }
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63

Member Data Documentation


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