NLTGlobalAssemble< T > Class Template Reference

The global assembling class. More...

#include <CoupledDisc.hpp>

Inheritance diagram for NLTGlobalAssemble< T >:

Inheritance graph
[legend]
Collaboration diagram for NLTGlobalAssemble< T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

void PrintParam ()
 Prints parameters of the attached discretizations.
void InitGridVec (Array< int > &ref_sz, GridVec< T > &vec)
 Initializes GridVec's for the solution, defects etc.
void InitSysMatrix (Array< int > &ref_sz, SysMatrix< T > &J)
 Initializes block sizes of the Jacobian.
void SetInitCond (GridVec< T > &u)
 Sets the initial conditions (i.e. calls the corresponding functions of the partial discretizations.
void PreProcess (GridVec< T > &u, SysMatrix< T > &J)
 Prepares the assembling procedure for a given matrix hierarchy and the grid-function sizes.
void Defect (double delta_t, GridVec< T > &u, GridVec< T > &d, T s_a)
 Computes the non-linear defect for a given guess.
bool Jacobian (double delta_t, GridVec< T > &u, SysMatrix< T > &J, T s_a)
 Computes the Jacobian (for all the matrices in the hierarchy) of the system or its approximation at a given guess. This function returns true if the Jacobian does not exist for this guess, or the approximation cannot be computed. Otherwise the function should return false.
void PostProcess ()
 Releases the memory, etc.
virtual bool ProperGrids (int block_no, const Array< int > &p_domain_size, const Array< int > &p_range_size)
 Returns true if the grid sizes may correspond to the domain and the range of the prolongation (or the range and the domain of the restriction) for a given part of the system (i.e. for a given index i):.
void Prolong (GridVec< T > &src, GridVec< T > &dst)
 The prolongation.
void Restrict (GridVec< T > &src, GridVec< T > &dst)
 The restriction.
 NLTGlobalAssemble (unsigned the_disp_type, part_disc< T > *the_disc_list)
 Constructor.

Detailed Description

template<typename T>
class NLTGlobalAssemble< T >

The global assembling class.


Constructor & Destructor Documentation

template<typename T>
NLTGlobalAssemble< T >::NLTGlobalAssemble ( unsigned  the_disp_type,
part_disc< T > *  the_disc_list 
) [inline]

Constructor.

Parameters:
[in] the_disp_type The display type
[in] the_disc_list The list of discretization modules to attach


Member Function Documentation

template<typename T>
void NLTGlobalAssemble< T >::PrintParam (  )  [inline, virtual]

Prints parameters of the attached discretizations.

Implements NLTimeAssemble< T >.

template<typename T>
void NLTGlobalAssemble< T >::InitGridVec ( Array< int > &  ref_sz,
GridVec< T > &  vec 
) [inline]

Initializes GridVec's for the solution, defects etc.

Parameters:
[in] ref_sz The reference grid sizes
[in] vec The vector to initialize

template<typename T>
void NLTGlobalAssemble< T >::InitSysMatrix ( Array< int > &  ref_sz,
SysMatrix< T > &  J 
) [inline]

Initializes block sizes of the Jacobian.

Parameters:
[in] ref_sz The reference grid sizes
[in] J The matrix to initialize

template<typename T>
void NLTGlobalAssemble< T >::SetInitCond ( GridVec< T > &  u  )  [inline]

Sets the initial conditions (i.e. calls the corresponding functions of the partial discretizations.

Parameters:
[in] u A vector for the initial condition

template<typename T>
void NLTGlobalAssemble< T >::PreProcess ( GridVec< T > &  u,
SysMatrix< T > &  J 
) [inline, virtual]

Prepares the assembling procedure for a given matrix hierarchy and the grid-function sizes.

Parameters:
[in] u A vector for the guess on a time level
[in] J The matrix hierarchy for the Jacobian

Reimplemented from NLTimeAssemble< T >.

template<typename T>
void NLTGlobalAssemble< T >::Defect ( double  delta_t,
GridVec< T > &  u,
GridVec< T > &  d,
s_a 
) [inline, virtual]

Computes the non-linear defect for a given guess.

Parameters:
[in] delta_t The time step
[in] u The guess to compute the defect at
[in] d For the defect on the new time level
[in] s_a The factor for the stiffness part (that for the mass part is 1)

Implements NLTimeAssemble< T >.

template<typename T>
bool NLTGlobalAssemble< T >::Jacobian ( double  delta_t,
GridVec< T > &  u,
SysMatrix< T > &  J,
s_a 
) [inline, virtual]

Computes the Jacobian (for all the matrices in the hierarchy) of the system or its approximation at a given guess. This function returns true if the Jacobian does not exist for this guess, or the approximation cannot be computed. Otherwise the function should return false.

Parameters:
[in] delta_t The time step
[in] u The guess to compute the Jacobian at
[in] J For the Jacobian on the new time level
[in] s_a The factor for the stiffness matrix (that for the mass matrix is 1)

Implements NLTimeAssemble< T >.

template<typename T>
void NLTGlobalAssemble< T >::PostProcess (  )  [inline, virtual]

Releases the memory, etc.

Reimplemented from NLTimeAssemble< T >.

template<typename T>
virtual bool NLTGlobalAssemble< T >::ProperGrids ( int  block_no,
const Array< int > &  p_domain_size,
const Array< int > &  p_range_size 
) [inline, virtual]

Returns true if the grid sizes may correspond to the domain and the range of the prolongation (or the range and the domain of the restriction) for a given part of the system (i.e. for a given index i):.

Parameters:
[in] block_no The part of the system
[in] p_domain_size For the domain of the prolongation
[in] p_range_size For the range of the prolongation

Implements SysTransfer< T >.

template<typename T>
void NLTGlobalAssemble< T >::Prolong ( GridVec< T > &  src,
GridVec< T > &  dst 
) [inline, virtual]

The prolongation.

Parameters:
[in] src The vector to prolong
[in] dst The result (the sizes must be initialized!)

Implements SysTransfer< T >.

template<typename T>
void NLTGlobalAssemble< T >::Restrict ( GridVec< T > &  src,
GridVec< T > &  dst 
) [inline, virtual]

The restriction.

Parameters:
[in] src The vector to restrict
[in] dst The result (the sizes must be initialized!)

Implements SysTransfer< T >.


The documentation for this class was generated from the following file:
Generated on Fri Sep 21 12:34:24 2007 for SG2 by  doxygen 1.5.2