Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Attributes | Friends | List of all members
Nektar::MultiRegions::GlobalLinSysKey Class Reference

Describe a linear system. More...

#include <GlobalLinSysKey.h>

Inheritance diagram for Nektar::MultiRegions::GlobalLinSysKey:
Inheritance graph
[legend]
Collaboration diagram for Nektar::MultiRegions::GlobalLinSysKey:
Collaboration graph
[legend]

Public Member Functions

 GlobalLinSysKey (const StdRegions::MatrixType matrixType, const AssemblyMapSharedPtr &locToGloMap=NullAssemblyMapSharedPtr, const StdRegions::ConstFactorMap &factors=StdRegions::NullConstFactorMap, const StdRegions::VarCoeffMap &varCoeffs=StdRegions::NullVarCoeffMap)
 GlobalLinSysKey (const GlobalLinSysKey &key)
 Copy constructor.
virtual ~GlobalLinSysKey ()
 Destructor.
GlobalSysSolnType GetGlobalSysSolnType () const
 Return the associated solution type.
- Public Member Functions inherited from Nektar::MultiRegions::GlobalMatrixKey
 GlobalMatrixKey (const StdRegions::MatrixType matrixType, const AssemblyMapSharedPtr &locToGloMap=NullAssemblyMapSharedPtr, const StdRegions::ConstFactorMap &factors=StdRegions::NullConstFactorMap, const StdRegions::VarCoeffMap &varCoeffs=StdRegions::NullVarCoeffMap)
 GlobalMatrixKey (const GlobalMatrixKey &key, const LibUtilities::ShapeType shapeType)
 Copy constructor with change in expansion type.
 GlobalMatrixKey (const GlobalMatrixKey &key)
 Copy constructor.
virtual ~GlobalMatrixKey ()
 Destructor.
StdRegions::MatrixType GetMatrixType () const
 Return the matrix type.
LibUtilities::ShapeType GetShapeType () const
 Return the expansion type associated with key.
bool LocToGloMapIsDefined () const
 Returns true if a local to global map is defined.
int GetNConstFactors () const
 Returns the number of constants defined for this matrix.
NekDouble GetConstFactor (const StdRegions::ConstFactorType &factor) const
 Returns the requested constant.
const StdRegions::ConstFactorMapGetConstFactors () const
 Returns all the constants.
int GetNVarCoeffs () const
const Array< OneD, const
NekDouble > & 
GetVarCoeff (const StdRegions::VarCoeffType &coeff) const
const StdRegions::VarCoeffMapGetVarCoeffs () const

Protected Attributes

GlobalSysSolnType m_solnType
 Store the solution type associated with the linear system. This may be none, full matrix, static condensation or multi-level static condensation.
- Protected Attributes inherited from Nektar::MultiRegions::GlobalMatrixKey
StdRegions::MatrixType m_matrixType
 Stores the matrix type based on the enum StdRegions::MatrixType.
LibUtilities::ShapeType m_shapeType
 Stores the expansion/shape type that the matrix is to be based on.
StdRegions::ConstFactorMap m_constFactors
StdRegions::VarCoeffMap m_varCoeffs
AssemblyMapSharedPtr m_locToGloMap
 Pointer to the local to global mapping.

Friends

bool operator< (const GlobalLinSysKey &lhs, const GlobalLinSysKey &rhs)
 Less-than operator for GlobalLinSysKey comparison.

Additional Inherited Members

- Protected Member Functions inherited from Nektar::MultiRegions::GlobalMatrixKey
 GlobalMatrixKey ()
 Default constructor.

Detailed Description

Describe a linear system.

This class represents a global linear system and is in essence a wrapper around a global matrix key, augmenting it with a specific solution type from GlobalSysSolnType. Each constructor accepts a MatrixType, describing the matrix to be constructed, a AssemblyMap, defining the mapping from the local elemental expansions to a global system, and a GlobalSysSolnType, defining the type of solution (e.g. full matrix, static condenstation). Some constructors include additional parameters for customising the global operator matrix.

Definition at line 47 of file GlobalLinSysKey.h.

Constructor & Destructor Documentation

Nektar::MultiRegions::GlobalLinSysKey::GlobalLinSysKey ( const StdRegions::MatrixType  matrixType,
const AssemblyMapSharedPtr locToGloMap = NullAssemblyMapSharedPtr,
const StdRegions::ConstFactorMap factors = StdRegions::NullConstFactorMap,
const StdRegions::VarCoeffMap varCoeffs = StdRegions::NullVarCoeffMap 
)

Definition at line 57 of file GlobalLinSysKey.cpp.

:
GlobalMatrixKey(matrixType, locToGloMap, factors, varCoeffs),
m_solnType(locToGloMap->GetGlobalSysSolnType())
{
}
Nektar::MultiRegions::GlobalLinSysKey::GlobalLinSysKey ( const GlobalLinSysKey key)

Copy constructor.

Parameters
keyExisting key to duplicate.

Definition at line 71 of file GlobalLinSysKey.cpp.

:
m_solnType(key.m_solnType)
{
}
Nektar::MultiRegions::GlobalLinSysKey::~GlobalLinSysKey ( )
virtual

Destructor.

Definition at line 81 of file GlobalLinSysKey.cpp.

{
}

Member Function Documentation

GlobalSysSolnType Nektar::MultiRegions::GlobalLinSysKey::GetGlobalSysSolnType ( ) const
inline

Return the associated solution type.

Definition at line 80 of file GlobalLinSysKey.h.

References m_solnType.

Referenced by Nektar::MultiRegions::ExpList::GenGlobalBndLinSys(), Nektar::MultiRegions::ExpList::GenGlobalLinSys(), Nektar::MultiRegions::DisContField3D::GetGlobalBndLinSys(), Nektar::MultiRegions::DisContField2D::GetGlobalBndLinSys(), Nektar::MultiRegions::DisContField1D::GetGlobalBndLinSys(), Nektar::MultiRegions::GlobalLinSysDirectFull::GlobalLinSysDirectFull(), Nektar::MultiRegions::GlobalLinSysDirectStaticCond::GlobalLinSysDirectStaticCond(), Nektar::MultiRegions::GlobalLinSysIterativeFull::GlobalLinSysIterativeFull(), Nektar::MultiRegions::GlobalLinSysIterativeStaticCond::GlobalLinSysIterativeStaticCond(), Nektar::MultiRegions::GlobalLinSysPETScStaticCond::GlobalLinSysPETScStaticCond(), Nektar::MultiRegions::GlobalLinSysXxtFull::GlobalLinSysXxtFull(), Nektar::MultiRegions::GlobalLinSysXxtStaticCond::GlobalLinSysXxtStaticCond(), Nektar::MultiRegions::operator<<(), and Nektar::MultiRegions::GlobalLinSysIterativeStaticCond::v_AssembleSchurComplement().

{
return m_solnType;
}

Friends And Related Function Documentation

bool operator< ( const GlobalLinSysKey lhs,
const GlobalLinSysKey rhs 
)
friend

Less-than operator for GlobalLinSysKey comparison.

Compares two GlobalLinSysKeys by comparing their solution types and matrix keys.

Parameters
lhsFirst operand.
rhsSecond operand.
Returns
true if the first operand is considered less than the second operand.

Definition at line 94 of file GlobalLinSysKey.cpp.

{
if(lhs.m_solnType < rhs.m_solnType)
{
return true;
}
if(lhs.m_solnType > rhs.m_solnType)
{
return false;
}
return (*dynamic_cast<const GlobalMatrixKey*>(&lhs)
< *dynamic_cast<const GlobalMatrixKey*>(&rhs));
}

Member Data Documentation

GlobalSysSolnType Nektar::MultiRegions::GlobalLinSysKey::m_solnType
protected

Store the solution type associated with the linear system. This may be none, full matrix, static condensation or multi-level static condensation.

Definition at line 71 of file GlobalLinSysKey.h.

Referenced by GetGlobalSysSolnType(), and Nektar::MultiRegions::operator<().