MechSys  1.0
Computing library for simulations in continuum and discrete mechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Public Member Functions | Public Attributes
FEM::RKSolver Class Reference

#include <rksolver.h>

List of all members.

Public Types

enum  Damping_t { None_t, Rayleigh_t, HMCoup_t }

Public Member Functions

 RKSolver (Domain &dom)
 ~RKSolver ()
void SteadySolve (int NInc=1, char const *FKey=NULL)
void TransSolve (double tf, double dt, double dtOut, char const *FKey=NULL)
void DynSolve (double tf, double dt, double dtOut, char const *FKey=NULL)
void VWPSolve (double tf, double dt, double dtOut, char const *FKey=NULL)
void DebugPrintMatrices (bool Stop=true)
 Debug method.
int SteadyFunc (double t, double const Y[], double dYdt[])
 Steady problems: callback for RK solver.
int TransFunc (double t, double const Y[], double dYdt[])
 Transient problems: callback for RK solver.
int DynFunc (double t, double const Y[], double dYdt[])
 Dynamic problems: callback for RK solver.
void DynUpFunc (double t, double Y[])
 Dynamic problems: callback for RK solver (update)
int VWPFunc (double t, double const Y[], double dYdt[])
 v-w-p formulation: callback for RK solver
void Initialize ()
 Allocate memory.
void AssembleK ()
 Assemble K.
void AssembleKM ()
 Assemble K and M.
void AssembleMC ()
 Assemble M and maybe C.
void AugMatrix (Sparse::Triplet< double, int > &A11)
 Augment A matrix with BCs and Lag multipliers.

Public Attributes

bool WithInfo
 Print information ?
bool LinProb
 Linear problems => constant matrices.
Damping_t DampTy
 Damping type.
double DampAm
 Rayleigh damping Am coefficient (C = Am*M + Ak*K)
double DampAk
 Rayleigh damping Ak coefficient (C = Am*M + Ak*K)
String Scheme
 Runge-Kutta scheme.
double STOL
 Error tolerance for RK scheme.
bool DynCteM
 M and C matrices are constants in dynsolver?
DomainDom
 Domain.
size_t NEq
 Total number of equations (DOFs)
size_t NIv
 Total number of internal variables of elements.
size_t NNu
 Number of nodal unknowns.
size_t NLag
 Number of Lagrange multipliers.
size_t NnzLag
 number of extra non-zero values due to Lagrange multipliers
Array< int > pEQ
 prescribed equations; size = NEq2
Array< bool > pU
 prescribed U; size = NEq (all equations)
Array< int > Eq1_to_V1
Array< int > Eq1_to_U1
Vec_t A
Vec_t V
Vec_t U
Vec_t F
Vec_t Fi
size_t K11_size
size_t K12_size
size_t K21_size
size_t K22_size
 Size of triplets.
Sparse::Triplet< double, int > K11
Sparse::Triplet< double, int > K12
Sparse::Triplet< double, int > K21
Sparse::Triplet< double, int > K22
 Stiffness matrices.
Sparse::Triplet< double, int > C11
Sparse::Triplet< double, int > C12
Sparse::Triplet< double, int > C21
Sparse::Triplet< double, int > C22
 Damping matrices.
Sparse::Triplet< double, int > M11
Sparse::Triplet< double, int > M12
Sparse::Triplet< double, int > M21
Sparse::Triplet< double, int > M22
 Mass matrices.
UMFPACK::SysUSys
 System to be solved: X = A^(-1) * B.

Member Enumeration Documentation

Enumerator:
None_t 
Rayleigh_t 
HMCoup_t 

Constructor & Destructor Documentation

FEM::RKSolver::RKSolver ( Domain dom) [inline]

Member Function Documentation

void FEM::RKSolver::AssembleK ( ) [inline]

Assemble K.

void FEM::RKSolver::AssembleKM ( ) [inline]

Assemble K and M.

void FEM::RKSolver::AssembleMC ( ) [inline]

Assemble M and maybe C.

void FEM::RKSolver::AugMatrix ( Sparse::Triplet< double, int > &  A11) [inline]

Augment A matrix with BCs and Lag multipliers.

void FEM::RKSolver::DebugPrintMatrices ( bool  Stop = true) [inline]

Debug method.

int FEM::RKSolver::DynFunc ( double  t,
double const  Y[],
double  dYdt[] 
) [inline]

Dynamic problems: callback for RK solver.

void FEM::RKSolver::DynSolve ( double  tf,
double  dt,
double  dtOut,
char const *  FKey = NULL 
) [inline]
void FEM::RKSolver::DynUpFunc ( double  t,
double  Y[] 
) [inline]

Dynamic problems: callback for RK solver (update)

void FEM::RKSolver::Initialize ( ) [inline]

Allocate memory.

int FEM::RKSolver::SteadyFunc ( double  t,
double const  Y[],
double  dYdt[] 
) [inline]

Steady problems: callback for RK solver.

void FEM::RKSolver::SteadySolve ( int  NInc = 1,
char const *  FKey = NULL 
) [inline]
int FEM::RKSolver::TransFunc ( double  t,
double const  Y[],
double  dYdt[] 
) [inline]

Transient problems: callback for RK solver.

void FEM::RKSolver::TransSolve ( double  tf,
double  dt,
double  dtOut,
char const *  FKey = NULL 
) [inline]
int FEM::RKSolver::VWPFunc ( double  t,
double const  Y[],
double  dYdt[] 
) [inline]

v-w-p formulation: callback for RK solver

void FEM::RKSolver::VWPSolve ( double  tf,
double  dt,
double  dtOut,
char const *  FKey = NULL 
) [inline]

Member Data Documentation

Damping matrices.

Rayleigh damping Ak coefficient (C = Am*M + Ak*K)

Rayleigh damping Am coefficient (C = Am*M + Ak*K)

Damping type.

M and C matrices are constants in dynsolver?

Stiffness matrices.

Size of triplets.

Linear problems => constant matrices.

Mass matrices.

Total number of equations (DOFs)

Total number of internal variables of elements.

Number of Lagrange multipliers.

Number of nodal unknowns.

number of extra non-zero values due to Lagrange multipliers

prescribed equations; size = NEq2

prescribed U; size = NEq (all equations)

Runge-Kutta scheme.

Error tolerance for RK scheme.

System to be solved: X = A^(-1) * B.

Print information ?


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines