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_Typecontainer_Type
 
typedef container_Type::const_iterator containerIterator_Type
 

Unimplemented Methods

 MultiscaleAlgorithmBroyden (const MultiscaleAlgorithmBroyden &algorithm)
 
MultiscaleAlgorithmBroydenoperator= (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_TypemultiscaleModelMultiscalePtr_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_Typetype () const
 Get the type of the algorithm. More...
 
const multiscaleModelMultiscalePtr_TypemultiScaleProblem () const
 Get the Multiscale problem. More...
 
const multiscaleVectorPtr_TypecouplingVariables () const
 Get the coupling variables. More...
 
const multiscaleVectorPtr_TypecouplingResiduals () const
 Get the coupling residuals. More...
 
const multiscaleCommPtr_Typecommunicator () const
 Get the communicator. More...
 
const UIntsubiterationsMaximumNumber () const
 Get the subiterations maximum number. More...
 
const Realtolerance () 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: