waves
Basic FE playground
heat::Solver Class Reference

heat solver More...

#include <wSolver.h>

Inheritance diagram for heat::Solver:
Collaboration diagram for heat::Solver:

Public Member Functions

 Solver (std::shared_ptr< Problem > _pbl, std::shared_ptr< tbox::LinearSolver > _linsol)
 
virtual ~Solver ()
 
virtual void start (MshExport *mshWriter)
 
void setGUI (DisplayHook &hook)
 
void stop ()
 
virtual void write (std::ostream &out) const override
 

Public Attributes

int verbose
 
DisplayHookdhook
 
std::shared_ptr< Problempbl
 
std::shared_ptr< tbox::LinearSolver > linsol
 linear solver More...
 
bool stopit
 stop the calculation More...
 
int nthreads
 
fwk::Timers tms
 timers More...
 
std::vector< double > T1
 nodal temperatures More...
 
double restol
 tolerance on the residual More...
 
int itmax
 max number of iterations More...
 
bool save
 calculate all results More...
 

Private Member Functions

void buildK (Eigen::SparseMatrix< double, Eigen::RowMajor > &K2, Eigen::Map< Eigen::VectorXd > &rhs)
 
void builds (Eigen::Map< Eigen::VectorXd > &s)
 volume sources More...
 
void buildq (Eigen::Map< Eigen::VectorXd > &s)
 terme BC Neumann (pourrait etre mergé avec "builds"... c'est idem) More...
 
void buildqint (Eigen::VectorXd &qint)
 

Detailed Description

heat solver

Constructor & Destructor Documentation

◆ Solver()

Solver::Solver ( std::shared_ptr< Problem _pbl,
std::shared_ptr< tbox::LinearSolver >  _linsol 
)

◆ ~Solver()

Solver::~Solver ( )
virtual

Member Function Documentation

◆ buildK()

void Solver::buildK ( Eigen::SparseMatrix< double, Eigen::RowMajor > &  K2,
Eigen::Map< Eigen::VectorXd > &  rhs 
)
private

◆ buildq()

void Solver::buildq ( Eigen::Map< Eigen::VectorXd > &  q)
private

terme BC Neumann (pourrait etre mergé avec "builds"... c'est idem)

Todo:
merge this routine with builds

◆ buildqint()

void Solver::buildqint ( Eigen::VectorXd &  qint)
private

◆ builds()

void Solver::builds ( Eigen::Map< Eigen::VectorXd > &  s)
private

volume sources

◆ setGUI()

void heat::Solver::setGUI ( DisplayHook hook)
inline

◆ start()

void Solver::start ( MshExport *  mshWriter)
virtual
Todo:

planter clairement si pas de Medium

calculer la taille du systeme en fct du nombre de noeuds des physical groups utilisés

< gradT_x

< gradT_y

< gradT

< gradT

< mean k11 / element

< mean k22 / element

< mean k12 / element

< mean k21 / element

◆ stop()

void heat::Solver::stop ( )
inline

◆ write()

void Solver::write ( std::ostream &  out) const
overridevirtual

Member Data Documentation

◆ dhook

DisplayHook* heat::Solver::dhook

◆ itmax

int heat::Solver::itmax

max number of iterations

◆ linsol

std::shared_ptr<tbox::LinearSolver> heat::Solver::linsol

linear solver

◆ nthreads

int heat::Solver::nthreads

of threads for the assembly

◆ pbl

std::shared_ptr<Problem> heat::Solver::pbl

◆ restol

double heat::Solver::restol

tolerance on the residual

◆ save

bool heat::Solver::save

calculate all results

◆ stopit

bool heat::Solver::stopit

stop the calculation

◆ T1

std::vector<double> heat::Solver::T1

nodal temperatures

◆ tms

fwk::Timers heat::Solver::tms

timers

◆ verbose

int heat::Solver::verbose

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