37 #ifndef MultiscaleAlgorithm_H 38 #define MultiscaleAlgorithm_H 1
40 #include <lifev/multiscale/framework/MultiscaleDefinitions.hpp> 41 #include <lifev/multiscale/models/MultiscaleModelMultiscale.hpp> 44 #include <Teuchos_XMLParameterListHelpers.hpp> 99 virtual void setupData (
const std::string& fileName ) = 0;
253 void save (
const UInt& subiterationsNumber,
const Real& residual )
const;
void save(const UInt &subiterationsNumber, const Real &residual) const
save on a Matlab file the information about the convergence of the algorithm.
virtual ~MultiscaleAlgorithm()
Destructor.
void setAlgorithmName(const multiscaleParameterList_Type ¶meterList)
Set the algorithm name.
MultiscaleAlgorithm(const MultiscaleAlgorithm &algorithm)
multiscaleVectorPtr_Type M_couplingVariables
virtual void showMe()
Display some information about the algorithm.
MultiscaleAlgorithm - The Multiscale Algorithm Interface.
MultiscaleModelMultiscale multiscaleModelMultiscale_Type
MultiscaleAlgorithm()
Constructor.
multiscaleVectorPtr_Type M_couplingResiduals
Displayer::commPtr_Type multiscaleCommPtr_Type
const algorithms_Type & type() const
Get the type of the algorithm.
void setSubiterationsMaximumNumber(const UInt &subiterationsMaximumNumber)
Set the maximum number of subiterations.
virtual void setupAlgorithm()
Setup coupling variables and other quantities of the algorithm.
const multiscaleModelMultiscalePtr_Type & multiScaleProblem() const
Get the Multiscale problem.
void updateInverseJacobian(const UInt &iQuadPt)
void setTolerance(const Real &tolerance)
Set the tolerance.
virtual void setAlgorithmParameters(const multiscaleParameterList_Type ¶meterList)
Set the the main parameters of the algorithm (tolerance, maximum number of subiterations, etc.)
const multiscaleVectorPtr_Type & couplingVariables() const
Get the coupling variables.
LinearSolver::parameterList_Type multiscaleParameterList_Type
double Real
Generic real data.
multiscaleModelMultiscale_Type * multiscaleModelMultiscalePtr_Type
multiscaleModelMultiscalePtr_Type M_multiscale
void setCommunicator(const multiscaleCommPtr_Type &comm)
Set the epetra communicator for the model.
bool checkResidual(const UInt &subIT=0) const
Update the residual and check if the tolerance has been satisfied.
void setMultiscaleModel(const multiscaleModelMultiscalePtr_Type model)
Set the main Multiscale model.
const multiscaleVectorPtr_Type & couplingResiduals() const
Get the coupling residuals.
Real computeResidual() const
MultiscaleAlgorithm & operator=(const MultiscaleAlgorithm &algorithm)
virtual void subIterate()
Perform sub-iteration on the coupling variables.
const Real & tolerance() const
Get the required tolerance.
MultiscaleModelMultiscale - Multiscale model.
const multiscaleCommPtr_Type & communicator() const
Get the communicator.
const UInt & subiterationsMaximumNumber() const
Get the subiterations maximum number.
std::shared_ptr< multiscaleVector_Type > multiscaleVectorPtr_Type
uint32_type UInt
generic unsigned integer (used mainly for addressing)
multiscaleCommPtr_Type M_comm
UInt M_subiterationsMaximumNumber