SOFA API  014b24ea
Open source framework for multi-physics simuation
sofa::simulation::common::ParallelSolverImpl Class Reference

#include <ParallelSolverImpl.h>

Implementation of LinearSolver/OdeSolver/AnimationLoop relying on GNode. More...

Inheritance diagram for sofa::simulation::common::ParallelSolverImpl:

Detailed Description

Implementation of LinearSolver/OdeSolver/AnimationLoop relying on GNode.

Public Member Functions

 ParallelSolverImpl ()
 
virtual ~ParallelSolverImpl ()
 
Vector operations

Most of these operations can be hidden by using the MultiVector class.

virtual void v_op (core::VecId v, core::VecId a, core::VecId b, Shared< double > &f)
 v=a+b*f More...
 
virtual void v_dot (sofa::defaulttype::Shared< double > &result, core::VecId a, core::VecId b)
 a dot b More...
 
virtual void v_peq (core::VecId v, core::VecId a, Shared< double > &fSh, double f=1.0)
 v+=f*a More...
 
virtual void v_peq (core::VecId v, core::VecId a, double f=1.0)
 v+=f*a More...
 
virtual void v_meq (core::VecId v, core::VecId a, Shared< double > &fSh)
 v+=f*a More...
 

Constructor details

sofa::simulation::common::ParallelSolverImpl::ParallelSolverImpl ( )
sofa::simulation::common::ParallelSolverImpl::~ParallelSolverImpl ( )
virtual

Function details

void sofa::simulation::common::ParallelSolverImpl::v_dot ( sofa::defaulttype::Shared< double > &  result,
core::VecId  a,
core::VecId  b 
)
virtual

a dot b

void sofa::simulation::common::ParallelSolverImpl::v_meq ( core::VecId  v,
core::VecId  a,
Shared< double > &  fSh 
)
virtual

v+=f*a

Parameters
fShv+=f*a
void sofa::simulation::common::ParallelSolverImpl::v_op ( core::VecId  v,
core::VecId  a,
core::VecId  b,
Shared< double > &  f 
)
virtual

v=a+b*f

Wait for the completion of previous operations and return the result of the last v_dot call.

Note that currently all methods are blocking so finish simply return the result of the last v_dot call.

Parameters
fv=a+b*f
void sofa::simulation::common::ParallelSolverImpl::v_peq ( core::VecId  v,
core::VecId  a,
Shared< double > &  fSh,
double  f = 1.0 
)
virtual

v+=f*a

Parameters
fv+=f*a
void sofa::simulation::common::ParallelSolverImpl::v_peq ( core::VecId  v,
core::VecId  a,
double  f = 1.0 
)
virtual

v+=f*a

Parameters
fv+=f*a