LifeV
MultiscaleAlgorithmBroyden Class Reference

MultiscaleAlgorithmBroyden - The Multiscale Algorithm implementation of Broyden. More...

#include <MultiscaleAlgorithmBroyden.hpp>

+ Inheritance diagram for MultiscaleAlgorithmBroyden:
+ Collaboration diagram for MultiscaleAlgorithmBroyden:

Private Attributes

LinearSolver M_solver
 
multiscaleMatrixPtr_Type M_jacobian
 
bool M_initializeAsIdentityMatrix
 
bool M_iterationsLimitReached
 
UInt M_iterationsLimitForReset
 
bool M_orthogonalization
 
UInt M_orthogonalizationSize
 
container_Type M_orthogonalizationContainer
 
bool M_truncate
 

Constructors & Destructor

 MultiscaleAlgorithmBroyden ()
 Constructor. More...
 
virtual ~MultiscaleAlgorithmBroyden ()
 Destructor. More...
 

Multiscale Algorithm Virtual Methods

void setupData (const std::string &fileName)
 Setup the data of the algorithm using a data file. More...
 
void setupAlgorithm ()
 Setup coupling variables and other quantities of the algorithm. More...
 
void subIterate ()
 Perform sub-iteration on the coupling variables. More...
 
void showMe ()
 Display some information about the algorithm. More...
 

Set Methods

void setAlgorithmParameters (const multiscaleParameterList_Type &parameterList)
 Set the the main parameters of the algorithm (tolerance, maximum number of subiterations, etc.) More...
 

Private Types

typedef std::list< multiscaleVector_Type > container_Type
 
typedef container_Type::const_iterator containerIterator_Type
 

Unimplemented Methods

 MultiscaleAlgorithmBroyden (const MultiscaleAlgorithmBroyden &algorithm)
 
MultiscaleAlgorithmBroyden & operator= (const MultiscaleAlgorithmBroyden &algorithm)
 

Private Methods

void assembleJacobianMatrix ()
 
void broydenJacobianUpdate (const multiscaleVector_Type &delta)
 
void orthogonalizationUpdate (const multiscaleVector_Type &delta)
 
void exportJacobianToHDF5 ()
 Export Jacobian matrix to HDF5 file. More...
 
void importJacobianFromHDF5 ()
 Import Jacobian matrix from an HDF5 file. More...
 

Additional Inherited Members

- Public Types inherited from MultiscaleAlgorithm
typedef MultiscaleModelMultiscale multiscaleModelMultiscale_Type
 
typedef multiscaleModelMultiscale_Type * multiscaleModelMultiscalePtr_Type
 
- Public Member Functions inherited from MultiscaleAlgorithm
 MultiscaleAlgorithm ()
 Constructor. More...
 
virtual ~MultiscaleAlgorithm ()
 Destructor. More...
 
Real computeResidual () const
 
void setCommunicator (const multiscaleCommPtr_Type &comm)
 Set the epetra communicator for the model. More...
 
void setMultiscaleModel (const multiscaleModelMultiscalePtr_Type model)
 Set the main Multiscale model. More...
 
void setSubiterationsMaximumNumber (const UInt &subiterationsMaximumNumber)
 Set the maximum number of subiterations. More...
 
void setTolerance (const Real &tolerance)
 Set the tolerance. More...
 
void setAlgorithmName (const multiscaleParameterList_Type &parameterList)
 Set the algorithm name. More...
 
const algorithms_Type & type () const
 Get the type of the algorithm. More...
 
const multiscaleModelMultiscalePtr_Type & multiScaleProblem () const
 Get the Multiscale problem. More...
 
const multiscaleVectorPtr_Type & couplingVariables () const
 Get the coupling variables. More...
 
const multiscaleVectorPtr_Type & couplingResiduals () const
 Get the coupling residuals. More...
 
const multiscaleCommPtr_Type & communicator () const
 Get the communicator. More...
 
const UInt & subiterationsMaximumNumber () const
 Get the subiterations maximum number. More...
 
const Real & tolerance () const
 Get the required tolerance. More...
 
- Protected Member Functions inherited from MultiscaleAlgorithm
void save (const UInt &subiterationsNumber, const Real &residual) const
 save on a Matlab file the information about the convergence of the algorithm. More...
 
bool checkResidual (const UInt &subIT=0) const
 Update the residual and check if the tolerance has been satisfied. More...
 
- Protected Attributes inherited from MultiscaleAlgorithm
algorithms_Type M_type
 
std::string M_name
 
multiscaleModelMultiscalePtr_Type M_multiscale
 
multiscaleVectorPtr_Type M_couplingVariables
 
multiscaleVectorPtr_Type M_couplingResiduals
 
multiscaleCommPtr_Type M_comm
 
UInt M_subiterationsMaximumNumber
 
Real M_tolerance
 

Detailed Description

MultiscaleAlgorithmBroyden - The Multiscale Algorithm implementation of Broyden.

Author
Cristiano Malossi
See also
Full description of the Geometrical Multiscale Framework: [15]
Methodology: [12] [13] [14] [2]
Applications: [11] [10] [3]

The MultiscaleAlgorithmBroyden is an implementation of multiscaleAlgorithm_Type which implements the Broyden method.

Definition at line 64 of file MultiscaleAlgorithmBroyden.hpp.

Member Typedef Documentation

◆ container_Type

typedef std::list< multiscaleVector_Type > container_Type
private

Definition at line 117 of file MultiscaleAlgorithmBroyden.hpp.

◆ containerIterator_Type

typedef container_Type::const_iterator containerIterator_Type
private

Definition at line 118 of file MultiscaleAlgorithmBroyden.hpp.

Constructor & Destructor Documentation

◆ MultiscaleAlgorithmBroyden() [1/2]

Constructor.

Definition at line 47 of file MultiscaleAlgorithmBroyden.cpp.

+ Here is the caller graph for this function:

◆ ~MultiscaleAlgorithmBroyden()

virtual ~MultiscaleAlgorithmBroyden ( )
inlinevirtual

Destructor.

Definition at line 75 of file MultiscaleAlgorithmBroyden.hpp.

◆ MultiscaleAlgorithmBroyden() [2/2]

Member Function Documentation

◆ setupData()

void setupData ( const std::string &  fileName)
virtual

Setup the data of the algorithm using a data file.

Parameters
FileNameName of the data file.

Implements MultiscaleAlgorithm.

Definition at line 71 of file MultiscaleAlgorithmBroyden.cpp.

◆ setupAlgorithm()

void setupAlgorithm ( )
virtual

Setup coupling variables and other quantities of the algorithm.

Reimplemented from MultiscaleAlgorithm.

Definition at line 92 of file MultiscaleAlgorithmBroyden.cpp.

◆ subIterate()

void subIterate ( )
virtual

Perform sub-iteration on the coupling variables.

Reimplemented from MultiscaleAlgorithm.

Definition at line 115 of file MultiscaleAlgorithmBroyden.cpp.

◆ showMe()

void showMe ( )
virtual

Display some information about the algorithm.

Reimplemented from MultiscaleAlgorithm.

Definition at line 196 of file MultiscaleAlgorithmBroyden.cpp.

◆ setAlgorithmParameters()

void setAlgorithmParameters ( const multiscaleParameterList_Type &  parameterList)
virtual

Set the the main parameters of the algorithm (tolerance, maximum number of subiterations, etc.)

Parameters
parameterListteuchos list of parameters

Reimplemented from MultiscaleAlgorithm.

Definition at line 214 of file MultiscaleAlgorithmBroyden.cpp.

◆ operator=()

MultiscaleAlgorithmBroyden& operator= ( const MultiscaleAlgorithmBroyden &  algorithm)
private

◆ assembleJacobianMatrix()

void assembleJacobianMatrix ( )
private

Definition at line 230 of file MultiscaleAlgorithmBroyden.cpp.

◆ broydenJacobianUpdate()

void broydenJacobianUpdate ( const multiscaleVector_Type &  delta)
private

Definition at line 253 of file MultiscaleAlgorithmBroyden.cpp.

◆ orthogonalizationUpdate()

void orthogonalizationUpdate ( const multiscaleVector_Type &  delta)
private

Definition at line 287 of file MultiscaleAlgorithmBroyden.cpp.

◆ exportJacobianToHDF5()

void exportJacobianToHDF5 ( )
private

Export Jacobian matrix to HDF5 file.

Definition at line 303 of file MultiscaleAlgorithmBroyden.cpp.

◆ importJacobianFromHDF5()

void importJacobianFromHDF5 ( )
private

Import Jacobian matrix from an HDF5 file.

Definition at line 337 of file MultiscaleAlgorithmBroyden.cpp.

Field Documentation

◆ M_solver

LinearSolver M_solver
private

Definition at line 152 of file MultiscaleAlgorithmBroyden.hpp.

◆ M_jacobian

multiscaleMatrixPtr_Type M_jacobian
private

Definition at line 153 of file MultiscaleAlgorithmBroyden.hpp.

◆ M_initializeAsIdentityMatrix

bool M_initializeAsIdentityMatrix
private

Definition at line 155 of file MultiscaleAlgorithmBroyden.hpp.

◆ M_iterationsLimitReached

bool M_iterationsLimitReached
private

Definition at line 156 of file MultiscaleAlgorithmBroyden.hpp.

◆ M_iterationsLimitForReset

UInt M_iterationsLimitForReset
private

Definition at line 157 of file MultiscaleAlgorithmBroyden.hpp.

◆ M_orthogonalization

bool M_orthogonalization
private

Definition at line 158 of file MultiscaleAlgorithmBroyden.hpp.

◆ M_orthogonalizationSize

UInt M_orthogonalizationSize
private

Definition at line 159 of file MultiscaleAlgorithmBroyden.hpp.

◆ M_orthogonalizationContainer

container_Type M_orthogonalizationContainer
private

Definition at line 160 of file MultiscaleAlgorithmBroyden.hpp.

◆ M_truncate

bool M_truncate
private

Definition at line 161 of file MultiscaleAlgorithmBroyden.hpp.


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