ug4
ug::StdGlobAssembler< TDomain, TAlgebra > Class Template Reference

Global assembler based on the straightforward application of the local discretizations. More...

#include <elem_disc_assemble_util.h>

+ Inheritance diagram for ug::StdGlobAssembler< TDomain, TAlgebra >:

Static Public Member Functions

template<typename TElem , typename TIterator >
static void AssembleDefect (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, vector_type &d, const vector_type &u, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 
template<typename TElem , typename TIterator >
static void AssembleDefect (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, vector_type &d, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 
template<typename TElem , typename TIterator >
static void AssembleErrorEstimator (const std::vector< IElemError< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol)
 
template<typename TElem , typename TIterator >
static void AssembleErrorEstimator (const std::vector< IElemError< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, const vector_type &u)
 
template<typename TElem , typename TIterator >
static void AssembleJacobian (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, matrix_type &J, const vector_type &u, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 
template<typename TElem , typename TIterator >
static void AssembleJacobian (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, matrix_type &J, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, number s_a0, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 
template<typename TElem , typename TIterator >
static void AssembleLinear (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, matrix_type &A, vector_type &rhs, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 
template<typename TElem , typename TIterator >
static void AssembleLinear (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, matrix_type &A, vector_type &rhs, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 
template<typename TElem , typename TIterator >
static void AssembleMassMatrix (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, matrix_type &M, const vector_type &u, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 
template<typename TElem , typename TIterator >
static void AssembleRhs (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, vector_type &rhs, const vector_type &u, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 
template<typename TElem , typename TIterator >
static void AssembleRhs (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, vector_type &rhs, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 
template<typename TElem , typename TIterator >
static void AssembleStiffnessMatrix (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, matrix_type &A, const vector_type &u, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 
static void FinishTimestep (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, bool bNonRegularGrid, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 
template<typename TElem , typename TIterator >
static void FinishTimestepElem (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 
static void PrepareTimestep (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, bool bNonRegularGrid, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, number future_time, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 
template<typename TElem , typename TIterator >
static void PrepareTimestepElem (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< domain_type > spDomain, ConstSmartPtr< DoFDistribution > dd, TIterator iterBegin, TIterator iterEnd, int si, bool bNonRegularGrid, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssTuner)
 

Private Types

typedef TAlgebra algebra_type
 Algebra type. More...
 
typedef TDomain domain_type
 Domain type. More...
 
typedef algebra_type::matrix_type matrix_type
 Matrix type in the algebra. More...
 
typedef algebra_type::vector_type vector_type
 Vector type in the algebra. More...
 

Detailed Description

template<typename TDomain, typename TAlgebra>
class ug::StdGlobAssembler< TDomain, TAlgebra >

Global assembler based on the straightforward application of the local discretizations.

Template class of the global assembler that applyes the local (element) discretizations to the elements in given subsets and adds the local data to the global ones.

Template Parameters
TDomaindomain type
TAlgebraalgebra type

Member Typedef Documentation

◆ algebra_type

template<typename TDomain , typename TAlgebra >
typedef TAlgebra ug::StdGlobAssembler< TDomain, TAlgebra >::algebra_type
private

Algebra type.

◆ domain_type

template<typename TDomain , typename TAlgebra >
typedef TDomain ug::StdGlobAssembler< TDomain, TAlgebra >::domain_type
private

Domain type.

◆ matrix_type

template<typename TDomain , typename TAlgebra >
typedef algebra_type::matrix_type ug::StdGlobAssembler< TDomain, TAlgebra >::matrix_type
private

Matrix type in the algebra.

◆ vector_type

template<typename TDomain , typename TAlgebra >
typedef algebra_type::vector_type ug::StdGlobAssembler< TDomain, TAlgebra >::vector_type
private

Vector type in the algebra.

Member Function Documentation

◆ AssembleDefect() [1/2]

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleDefect ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
vector_type d,
const vector_type u,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function adds the contributions of all passed element discretizations on one given subset to the global Defect in the stationary case. (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]spDomaindomain
[in]ddDoF Distribution
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in,out]ddefect
[in]usolution
[in]spAssTunerassemble adapter

References ug::bridge::AlgebraCommon::Eval(), ug::FillCornerCoordinates(), ug::GetLocalVector(), ug::hex_rules::NUM_VERTICES, ug::LocalVector::resize(), ug::RHS, ug::LocalVector::scale_append(), ug::STIFF, and UG_CATCH_THROW.

◆ AssembleDefect() [2/2]

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleDefect ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
vector_type d,
ConstSmartPtr< VectorTimeSeries< vector_type > >  vSol,
const std::vector< number > &  vScaleMass,
const std::vector< number > &  vScaleStiff,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function adds the contributions of all passed element discretizations on one given subset to the global Defect in the instationary case. (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]spDomaindomain
[in]ddDoF Distribution
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in,out]ddefect
[in]vSolcurrent and previous solutions
[in]vScaleMassscaling factors for mass part
[in]vScaleStiffscaling factors for stiffness part
[in]spAssTunerassemble adapter

References ug::bridge::AlgebraCommon::Eval(), ug::EXPL, ug::FillCornerCoordinates(), ug::MASS, ug::hex_rules::NUM_VERTICES, ug::PT_INSTATIONARY, ug::PT_STATIONARY, ug::LocalVectorTimeSeries::read_times(), ug::LocalVectorTimeSeries::read_values(), ug::LocalVector::resize(), ug::RHS, ug::LocalVector::scale_append(), ug::LocalVectorTimeSeries::solution(), ug::STIFF, UG_CATCH_THROW, and UG_THROW.

◆ AssembleErrorEstimator() [1/2]

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleErrorEstimator ( const std::vector< IElemError< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
const std::vector< number > &  vScaleMass,
const std::vector< number > &  vScaleStiff,
ConstSmartPtr< VectorTimeSeries< vector_type > >  vSol 
)
inlinestatic

This function assembles the error estimator associated with all the element discretizations in the internal data structure for one given subset. (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]spDomaindomain
[in]ddDoF Distribution
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in]vScaleMassscaling factors for mass part
[in]vScaleStiffscaling factors for stiffness part
[in]vSolsolution

References ug::bridge::AlgebraCommon::Eval(), ug::FillCornerCoordinates(), ug::MASS, ug::hex_rules::NUM_VERTICES, ug::LocalVectorTimeSeries::read_times(), ug::LocalVectorTimeSeries::read_values(), ug::RHS, ug::LocalVectorTimeSeries::solution(), ug::STIFF, UG_CATCH_THROW, and UG_THROW.

◆ AssembleErrorEstimator() [2/2]

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleErrorEstimator ( const std::vector< IElemError< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
const vector_type u 
)
inlinestatic

This function assembles the error estimator associated with all the element discretizations in the internal data structure for one given subset. (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]spDomaindomain
[in]ddDoF Distribution
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in]usolution

References ug::bridge::AlgebraCommon::Eval(), ug::FillCornerCoordinates(), ug::GetLocalVector(), ug::hex_rules::NUM_VERTICES, ug::LocalVector::resize(), ug::RHS, ug::STIFF, and UG_CATCH_THROW.

◆ AssembleJacobian() [1/2]

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleJacobian ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
matrix_type J,
const vector_type u,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function adds the contributions of all passed element discretizations on one given subset to the global Jacobian in the stationary case. (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]spDomaindomain
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in,out]Jjacobian
[in]usolution
[in]spAssTunerassemble adapter

References ug::bridge::AlgebraCommon::Eval(), ug::FillCornerCoordinates(), ug::GetLocalVector(), ug::hex_rules::NUM_VERTICES, ug::LocalVector::resize(), ug::LocalMatrix::resize(), ug::RHS, ug::STIFF, and UG_CATCH_THROW.

◆ AssembleJacobian() [2/2]

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleJacobian ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
matrix_type J,
ConstSmartPtr< VectorTimeSeries< vector_type > >  vSol,
number  s_a0,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function adds the contributions of all passed element discretizations on one given subset to the global Jacobian in the time-dependent case. Note, that s_m0 == 1 (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]spDomaindomain
[in]ddDoF Distribution
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in,out]Jjacobian
[in]vSolcurrent and previous solutions
[in]s_a0scaling factor for stiffness part
[in]spAssTunerassemble adapter

References EL_PROFILE_BEGIN, EL_PROFILE_END, ug::bridge::AlgebraCommon::Eval(), ug::FillCornerCoordinates(), ug::GetLocalVector(), ug::MASS, ug::hex_rules::NUM_VERTICES, ug::PT_INSTATIONARY, ug::PT_STATIONARY, ug::LocalVectorTimeSeries::read_times(), ug::LocalVectorTimeSeries::read_values(), ug::LocalVector::resize(), ug::LocalMatrix::resize(), ug::RHS, ug::STIFF, and UG_CATCH_THROW.

◆ AssembleLinear() [1/2]

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleLinear ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
matrix_type A,
vector_type rhs,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function adds the contributions of all passed element discretizations on one given subset to the global Matrix and the global Right-Hand Side of the Linear problem in the stationary case. (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]spDomaindomain
[in]ddDoF Distribution
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in,out]AMatrix
[in,out]rhsRight-hand side
[in]spAssTunerassemble adapter

References ug::DID_ELEM_DISC_ASSEMBLE_UTIL, ug::bridge::AlgebraCommon::Eval(), ug::FillCornerCoordinates(), ug::hex_rules::NUM_VERTICES, ug::LocalVector::resize(), ug::LocalMatrix::resize(), ug::RHS, ug::STIFF, UG_CATCH_THROW, and UG_DLOG.

◆ AssembleLinear() [2/2]

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleLinear ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
matrix_type A,
vector_type rhs,
ConstSmartPtr< VectorTimeSeries< vector_type > >  vSol,
const std::vector< number > &  vScaleMass,
const std::vector< number > &  vScaleStiff,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function adds the contributions of all passed element discretizations on one given subset to the global Matrix and the global Right-Hand Side of the Linear problem in the time-dependent case. (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]spDomaindomain
[in]ddDoF Distribution
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in,out]AMatrix
[in,out]rhsRight-hand side
[in]vSolcurrent and previous solutions
[in]vScaleMassscaling factors for mass part
[in]vScaleStiffscaling factors for stiffness part
[in]spAssTunerassemble adapter

References ug::bridge::AlgebraCommon::Eval(), ug::FillCornerCoordinates(), ug::MASS, ug::hex_rules::NUM_VERTICES, ug::PT_INSTATIONARY, ug::PT_STATIONARY, ug::LocalVectorTimeSeries::read_times(), ug::LocalVectorTimeSeries::read_values(), ug::LocalVector::resize(), ug::LocalMatrix::resize(), ug::RHS, ug::LocalVector::scale_append(), ug::LocalMatrix::scale_append(), ug::LocalVectorTimeSeries::solution(), ug::STIFF, UG_CATCH_THROW, and UG_THROW.

◆ AssembleMassMatrix()

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleMassMatrix ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
matrix_type M,
const vector_type u,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function adds the contributions of all passed element discretizations on one given subset to the global Mass matrix. (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]spDomaindomain
[in]ddDoF Distribution
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in,out]MMass matrix
[in]usolution
[in]spAssTunerassemble adapter

References ug::bridge::AlgebraCommon::Eval(), ug::FillCornerCoordinates(), ug::GetLocalVector(), ug::MASS, ug::hex_rules::NUM_VERTICES, ug::LocalVector::resize(), ug::LocalMatrix::resize(), and UG_CATCH_THROW.

◆ AssembleRhs() [1/2]

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleRhs ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
vector_type rhs,
const vector_type u,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function adds the contributions of all passed element discretizations on one given subset to the global Right-Hand Side. (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]spDomaindomain
[in]ddDoF Distribution
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in,out]rhsRight-hand side
[in]usolution
[in]spAssTunerassemble adapter

References ug::bridge::AlgebraCommon::Eval(), ug::FillCornerCoordinates(), ug::GetLocalVector(), ug::hex_rules::NUM_VERTICES, ug::LocalVector::resize(), ug::RHS, and UG_CATCH_THROW.

◆ AssembleRhs() [2/2]

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleRhs ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
vector_type rhs,
ConstSmartPtr< VectorTimeSeries< vector_type > >  vSol,
const std::vector< number > &  vScaleMass,
const std::vector< number > &  vScaleStiff,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function adds the contributions of all passed element discretizations on one given subset to the global Right-Hand Side in the time-dependent case. (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]spDomaindomain
[in]ddDoF Distribution
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in,out]rhsRight-hand side
[in]vSolcurrent and previous solutions
[in]vScaleMassscaling factors for mass part
[in]vScaleStiffscaling factors for stiffness part
[in]spAssTunerassemble adapter

References ug::bridge::AlgebraCommon::Eval(), ug::FillCornerCoordinates(), ug::MASS, ug::hex_rules::NUM_VERTICES, ug::PT_INSTATIONARY, ug::PT_STATIONARY, ug::LocalVectorTimeSeries::read_times(), ug::LocalVectorTimeSeries::read_values(), ug::LocalVector::resize(), ug::RHS, ug::LocalVector::scale_append(), ug::LocalVectorTimeSeries::solution(), ug::STIFF, UG_CATCH_THROW, and UG_THROW.

◆ AssembleStiffnessMatrix()

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleStiffnessMatrix ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
matrix_type A,
const vector_type u,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function adds the contributions of all passed element discretizations on one given subset to the global Stiffness matrix. (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]spDomaindomain
[in]ddDoF Distribution
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in,out]AStiffness matrix
[in]usolution
[in]spAssTunerassemble adapter

References ug::bridge::AlgebraCommon::Eval(), ug::FillCornerCoordinates(), ug::GetLocalVector(), ug::hex_rules::NUM_VERTICES, ug::LocalVector::resize(), ug::LocalMatrix::resize(), ug::STIFF, and UG_CATCH_THROW.

◆ FinishTimestep()

template<typename TDomain , typename TAlgebra >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::FinishTimestep ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< DoFDistribution dd,
bool  bNonRegularGrid,
ConstSmartPtr< VectorTimeSeries< vector_type > >  vSol,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function finishes the global discretization for a time-stepping scheme by calling the "finish_timestep" methods of all passed element discretizations.

Parameters
[in]vElemDiscelement discretizations
[in]ddDoF Distribution
[in]bNonRegularGridflag to indicate if non regular grid is used
[in]vSolcurrent and previous solutions
[in]spAssTunerassemble adapter

References ug::bridge::AlgebraCommon::Eval(), ug::bridge::AlgebraTypeIDProvider::id(), ug::bridge::AlgebraTypeIDProvider::instance(), ug::NONE, ug::LocalVectorTimeSeries::read_times(), and UG_CATCH_THROW.

◆ FinishTimestepElem()

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::FinishTimestepElem ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
ConstSmartPtr< VectorTimeSeries< vector_type > >  vSol,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function finalizes the global discretization in a time-stepping scheme by calling the "finish_timestep_elem" methods of all passed element discretizations on one given subset. (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]ddDoF Distribution
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in]vSolcurrent and previous solutions
[in]spAssTunerassemble adapter

References ug::bridge::AlgebraCommon::Eval(), ug::FillCornerCoordinates(), ug::GetLocalVector(), ug::NONE, ug::hex_rules::NUM_VERTICES, ug::LocalVectorTimeSeries::read_times(), ug::LocalVectorTimeSeries::read_values(), ug::LocalVector::resize(), ug::LocalVectorTimeSeries::time(), and UG_CATCH_THROW.

◆ PrepareTimestep()

template<typename TDomain , typename TAlgebra >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::PrepareTimestep ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< DoFDistribution dd,
bool  bNonRegularGrid,
ConstSmartPtr< VectorTimeSeries< vector_type > >  vSol,
number  future_time,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function prepares the global discretization for a time-stepping scheme by calling the "prepare_timestep" methods of all passed element discretizations.

Parameters
[in]vElemDiscelement discretizations
[in]ddDoF Distribution
[in]bNonRegularGridflag to indicate if non regular grid is used
[in]vSolcurrent and previous solutions
[in]spAssTunerassemble adapter

References ug::bridge::AlgebraCommon::Eval(), ug::bridge::AlgebraTypeIDProvider::id(), ug::bridge::AlgebraTypeIDProvider::instance(), ug::NONE, ug::LocalVectorTimeSeries::read_times(), and UG_CATCH_THROW.

◆ PrepareTimestepElem()

template<typename TDomain , typename TAlgebra >
template<typename TElem , typename TIterator >
static void ug::StdGlobAssembler< TDomain, TAlgebra >::PrepareTimestepElem ( const std::vector< IElemDisc< domain_type > * > &  vElemDisc,
ConstSmartPtr< domain_type spDomain,
ConstSmartPtr< DoFDistribution dd,
TIterator  iterBegin,
TIterator  iterEnd,
int  si,
bool  bNonRegularGrid,
ConstSmartPtr< VectorTimeSeries< vector_type > >  vSol,
ConstSmartPtr< AssemblingTuner< TAlgebra > >  spAssTuner 
)
inlinestatic

This function prepares the global discretization for a time-stepping scheme by calling the "prepare_timestep_elem" methods of all passed element discretizations on one given subset. (This version processes elements in a given interval.)

Parameters
[in]vElemDiscelement discretizations
[in]spDomaindomain
[in]ddDoF Distribution
[in]iterBeginelement iterator
[in]iterEndelement iterator
[in]sisubset index
[in]bNonRegularGridflag to indicate if non regular grid is used
[in]vSolcurrent and previous solutions
[in]spAssTunerassemble adapter

References ug::bridge::AlgebraCommon::Eval(), ug::FillCornerCoordinates(), ug::GetLocalVector(), ug::NONE, ug::hex_rules::NUM_VERTICES, ug::LocalVectorTimeSeries::read_times(), ug::LocalVectorTimeSeries::read_values(), ug::LocalVector::resize(), and UG_CATCH_THROW.


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