|
Nektar++
|
Modified version of MultiRegions::AssemblyMapCG that allows for coupled fields [u,v,w] instead of individual scalar fields u, v and w. More...
#include <CoupledAssemblyMap.h>


Public Member Functions | |
| CoupledAssemblyMap (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &graph, const MultiRegions::AssemblyMapCGSharedPtr &cgMap, const Array< OneD, const BoundaryCondShPtr > &boundaryConditions, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields) | |
| Take an existing assembly map and create a coupled version suitable for use in the linear elasticity solver. More... | |
Public Member Functions inherited from Nektar::MultiRegions::AssemblyMapCG | |
| AssemblyMapCG (const LibUtilities::SessionReaderSharedPtr &pSession, const std::string variable="DefaultVar") | |
| Default constructor. More... | |
| AssemblyMapCG (const LibUtilities::SessionReaderSharedPtr &pSession, const int numLocalCoeffs, const ExpList &locExp, const BndCondExp &bndCondExp=NullExpListSharedPtrArray, const BndCond &bndConditions=SpatialDomains::NullBoundaryConditionShPtrArray, const bool checkIfSingular=false, const std::string variable="defaultVar", const PeriodicMap &periodicVerts=NullPeriodicMap, const PeriodicMap &periodicEdges=NullPeriodicMap, const PeriodicMap &periodicFaces=NullPeriodicMap) | |
| General constructor for expansions of all dimensions without boundary conditions. More... | |
| virtual | ~AssemblyMapCG () |
| Destructor. More... | |
| std::map< int, std::vector < ExtraDirDof > > & | GetExtraDirDofs () |
Public Member Functions inherited from Nektar::MultiRegions::AssemblyMap | |
| AssemblyMap () | |
| Default constructor. More... | |
| AssemblyMap (const LibUtilities::SessionReaderSharedPtr &pSession, const std::string variable="DefaultVar") | |
| Constructor with a communicator. More... | |
| AssemblyMap (AssemblyMap *oldLevelMap, const BottomUpSubStructuredGraphSharedPtr &multiLevelGraph) | |
| Constructor for next level in multi-level static condensation. More... | |
| virtual | ~AssemblyMap () |
| Destructor. More... | |
| LibUtilities::CommSharedPtr | GetComm () |
| Retrieves the communicator. More... | |
| size_t | GetHash () const |
| Retrieves the hash of this map. More... | |
| int | GetLocalToGlobalMap (const int i) const |
| int | GetGlobalToUniversalMap (const int i) const |
| int | GetGlobalToUniversalMapUnique (const int i) const |
| const Array< OneD, const int > & | GetLocalToGlobalMap () |
| const Array< OneD, const int > & | GetGlobalToUniversalMap () |
| const Array< OneD, const int > & | GetGlobalToUniversalMapUnique () |
| NekDouble | GetLocalToGlobalSign (const int i) const |
| const Array< OneD, NekDouble > & | GetLocalToGlobalSign () const |
| void | LocalToGlobal (const Array< OneD, const NekDouble > &loc, Array< OneD, NekDouble > &global) const |
| void | LocalToGlobal (const NekVector< NekDouble > &loc, NekVector< NekDouble > &global) const |
| void | GlobalToLocal (const Array< OneD, const NekDouble > &global, Array< OneD, NekDouble > &loc) const |
| void | GlobalToLocal (const NekVector< NekDouble > &global, NekVector< NekDouble > &loc) const |
| void | Assemble (const Array< OneD, const NekDouble > &loc, Array< OneD, NekDouble > &global) const |
| void | Assemble (const NekVector< NekDouble > &loc, NekVector< NekDouble > &global) const |
| void | UniversalAssemble (Array< OneD, NekDouble > &pGlobal) const |
| void | UniversalAssemble (NekVector< NekDouble > &pGlobal) const |
| void | UniversalAssemble (Array< OneD, NekDouble > &pGlobal, int offset) const |
| int | GetLocalToGlobalBndMap (const int i) const |
| Retrieve the global index of a given local boundary mode. More... | |
| const Array< OneD, const int > & | GetLocalToGlobalBndMap () |
| Retrieve the global indices of the local boundary modes. More... | |
| const Array< OneD, const int > & | GetGlobalToUniversalBndMap () |
| const Array< OneD, const int > & | GetGlobalToUniversalBndMapUnique () |
| bool | GetSignChange () |
| Returns true if using a modal expansion requiring a change of sign of some modes. More... | |
| NekDouble | GetLocalToGlobalBndSign (const int i) const |
| Retrieve the sign change of a given local boundary mode. More... | |
| Array< OneD, const NekDouble > | GetLocalToGlobalBndSign () const |
| Retrieve the sign change for all local boundary modes. More... | |
| int | GetBndCondCoeffsToGlobalCoeffsMap (const int i) |
| Retrieves the global index corresponding to a boundary expansion mode. More... | |
| const Array< OneD, const int > & | GetBndCondCoeffsToGlobalCoeffsMap () |
| Retrieves the global indices corresponding to the boundary expansion modes. More... | |
| NekDouble | GetBndCondCoeffsToGlobalCoeffsSign (const int i) |
| Returns the modal sign associated with a given boundary expansion mode. More... | |
| int | GetBndCondTraceToGlobalTraceMap (const int i) |
| Returns the global index of the boundary trace giving the index on the boundary expansion. More... | |
| const Array< OneD, const int > & | GetBndCondTraceToGlobalTraceMap () |
| int | GetNumGlobalDirBndCoeffs () const |
| Returns the number of global Dirichlet boundary coefficients. More... | |
| int | GetNumLocalDirBndCoeffs () const |
| Returns the number of local Dirichlet boundary coefficients. More... | |
| int | GetNumGlobalBndCoeffs () const |
| Returns the total number of global boundary coefficients. More... | |
| int | GetNumLocalBndCoeffs () const |
| Returns the total number of local boundary coefficients. More... | |
| int | GetNumLocalCoeffs () const |
| Returns the total number of local coefficients. More... | |
| int | GetNumGlobalCoeffs () const |
| Returns the total number of global coefficients. More... | |
| bool | GetSingularSystem () const |
| Retrieves if the system is singular (true) or not (false) More... | |
| void | GlobalToLocalBnd (const NekVector< NekDouble > &global, NekVector< NekDouble > &loc, int offset) const |
| void | GlobalToLocalBnd (const NekVector< NekDouble > &global, NekVector< NekDouble > &loc) const |
| void | GlobalToLocalBnd (const Array< OneD, const NekDouble > &global, Array< OneD, NekDouble > &loc, int offset) const |
| void | GlobalToLocalBnd (const Array< OneD, const NekDouble > &global, Array< OneD, NekDouble > &loc) const |
| void | LocalBndToGlobal (const NekVector< NekDouble > &loc, NekVector< NekDouble > &global, int offset) const |
| void | LocalBndToGlobal (const NekVector< NekDouble > &loc, NekVector< NekDouble > &global) const |
| void | LocalBndToGlobal (const Array< OneD, const NekDouble > &loc, Array< OneD, NekDouble > &global, int offset) const |
| void | LocalBndToGlobal (const Array< OneD, const NekDouble > &loc, Array< OneD, NekDouble > &global) const |
| void | AssembleBnd (const NekVector< NekDouble > &loc, NekVector< NekDouble > &global, int offset) const |
| void | AssembleBnd (const NekVector< NekDouble > &loc, NekVector< NekDouble > &global) const |
| void | AssembleBnd (const Array< OneD, const NekDouble > &loc, Array< OneD, NekDouble > &global, int offset) const |
| void | AssembleBnd (const Array< OneD, const NekDouble > &loc, Array< OneD, NekDouble > &global) const |
| void | UniversalAssembleBnd (Array< OneD, NekDouble > &pGlobal) const |
| void | UniversalAssembleBnd (NekVector< NekDouble > &pGlobal) const |
| void | UniversalAssembleBnd (Array< OneD, NekDouble > &pGlobal, int offset) const |
| int | GetFullSystemBandWidth () const |
| int | GetNumNonDirVertexModes () const |
| int | GetNumNonDirEdgeModes () const |
| int | GetNumNonDirFaceModes () const |
| int | GetNumDirEdges () const |
| int | GetNumDirFaces () const |
| int | GetNumNonDirEdges () const |
| int | GetNumNonDirFaces () const |
| void | PrintStats (std::ostream &out, std::string variable) const |
| const Array< OneD, const int > & | GetExtraDirEdges () |
| boost::shared_ptr< AssemblyMap > | LinearSpaceMap (const ExpList &locexp, GlobalSysSolnType solnType) |
| int | GetBndSystemBandWidth () const |
| Returns the bandwidth of the boundary system. More... | |
| int | GetStaticCondLevel () const |
| Returns the level of static condensation for this map. More... | |
| int | GetNumPatches () const |
| Returns the number of patches in this static condensation level. More... | |
| const Array< OneD, const unsigned int > & | GetNumLocalBndCoeffsPerPatch () |
| Returns the number of local boundary coefficients in each patch. More... | |
| const Array< OneD, const unsigned int > & | GetNumLocalIntCoeffsPerPatch () |
| Returns the number of local interior coefficients in each patch. More... | |
| const AssemblyMapSharedPtr | GetNextLevelLocalToGlobalMap () const |
| Returns the local to global mapping for the next level in the multi-level static condensation. More... | |
| void | SetNextLevelLocalToGlobalMap (AssemblyMapSharedPtr pNextLevelLocalToGlobalMap) |
| const PatchMapSharedPtr & | GetPatchMapFromPrevLevel (void) const |
| Returns the patch map from the previous level of the multi-level static condensation. More... | |
| bool | AtLastLevel () const |
| Returns true if this is the last level in the multi-level static condensation. More... | |
| GlobalSysSolnType | GetGlobalSysSolnType () const |
| Returns the method of solving global systems. More... | |
| PreconditionerType | GetPreconType () const |
| NekDouble | GetIterativeTolerance () const |
| int | GetMaxIterations () const |
| int | GetSuccessiveRHS () const |
| int | GetLowestStaticCondLevel () const |
Private Types | |
| typedef SpatialDomains::BoundaryConditionShPtr | BoundaryCondShPtr |
Additional Inherited Members | |
Protected Member Functions inherited from Nektar::MultiRegions::AssemblyMapCG | |
| int | CreateGraph (const ExpList &locExp, const BndCondExp &bndCondExp, const Array< OneD, const BndCond > &bndConditions, const bool checkIfSystemSingular, const PeriodicMap &periodicVerts, const PeriodicMap &periodicEdges, const PeriodicMap &periodicFaces, DofGraph &graph, BottomUpSubStructuredGraphSharedPtr &bottomUpGraph, std::set< int > &extraDirVerts, std::set< int > &extraDirEdges, int &firstNonDirGraphVertId, int &nExtraDirichlet, int mdswitch=1) |
| void | SetUpUniversalC0ContMap (const ExpList &locExp, const PeriodicMap &perVerts=NullPeriodicMap, const PeriodicMap &perEdges=NullPeriodicMap, const PeriodicMap &perFaces=NullPeriodicMap) |
| void | CalculateFullSystemBandWidth () |
| Calculate the bandwith of the full matrix system. More... | |
| virtual int | v_GetLocalToGlobalMap (const int i) const |
| virtual int | v_GetGlobalToUniversalMap (const int i) const |
| virtual int | v_GetGlobalToUniversalMapUnique (const int i) const |
| virtual const Array< OneD, const int > & | v_GetLocalToGlobalMap () |
| virtual const Array< OneD, const int > & | v_GetGlobalToUniversalMap () |
| virtual const Array< OneD, const int > & | v_GetGlobalToUniversalMapUnique () |
| virtual NekDouble | v_GetLocalToGlobalSign (const int i) const |
| virtual const Array< OneD, NekDouble > & | v_GetLocalToGlobalSign () const |
| virtual void | v_LocalToGlobal (const Array< OneD, const NekDouble > &loc, Array< OneD, NekDouble > &global) const |
| virtual void | v_LocalToGlobal (const NekVector< NekDouble > &loc, NekVector< NekDouble > &global) const |
| virtual void | v_GlobalToLocal (const Array< OneD, const NekDouble > &global, Array< OneD, NekDouble > &loc) const |
| virtual void | v_GlobalToLocal (const NekVector< NekDouble > &global, NekVector< NekDouble > &loc) const |
| virtual void | v_Assemble (const Array< OneD, const NekDouble > &loc, Array< OneD, NekDouble > &global) const |
| virtual void | v_Assemble (const NekVector< NekDouble > &loc, NekVector< NekDouble > &global) const |
| virtual void | v_UniversalAssemble (Array< OneD, NekDouble > &pGlobal) const |
| virtual void | v_UniversalAssemble (NekVector< NekDouble > &pGlobal) const |
| virtual void | v_UniversalAssemble (Array< OneD, NekDouble > &pGlobal, int offset) const |
| virtual int | v_GetFullSystemBandWidth () const |
| virtual int | v_GetNumNonDirVertexModes () const |
| virtual int | v_GetNumNonDirEdgeModes () const |
| virtual int | v_GetNumNonDirFaceModes () const |
| virtual int | v_GetNumDirEdges () const |
| virtual int | v_GetNumDirFaces () const |
| virtual int | v_GetNumNonDirEdges () const |
| virtual int | v_GetNumNonDirFaces () const |
| virtual const Array< OneD, const int > & | v_GetExtraDirEdges () |
| virtual AssemblyMapSharedPtr | v_LinearSpaceMap (const ExpList &locexp, GlobalSysSolnType solnType) |
| Construct an AssemblyMapCG object which corresponds to the linear space of the current object. More... | |
Protected Member Functions inherited from Nektar::MultiRegions::AssemblyMap | |
| void | CalculateBndSystemBandWidth () |
| Calculates the bandwidth of the boundary system. More... | |
| void | GlobalToLocalBndWithoutSign (const Array< OneD, const NekDouble > &global, Array< OneD, NekDouble > &loc) |
Protected Attributes inherited from Nektar::MultiRegions::AssemblyMapCG | |
| Array< OneD, int > | m_localToGlobalMap |
| Integer map of local coeffs to global space. More... | |
| Array< OneD, NekDouble > | m_localToGlobalSign |
| Integer sign of local coeffs to global space. More... | |
| int | m_fullSystemBandWidth |
| Bandwith of the full matrix system (no static condensation). More... | |
| Array< OneD, int > | m_globalToUniversalMap |
| Integer map of process coeffs to universal space. More... | |
| Array< OneD, int > | m_globalToUniversalMapUnique |
| Integer map of unique process coeffs to universal space (signed) More... | |
| int | m_numNonDirVertexModes |
| Number of non Dirichlet vertex modes. More... | |
| int | m_numNonDirEdgeModes |
| Number of non Dirichlet edge modes. More... | |
| int | m_numNonDirFaceModes |
| Number of non Dirichlet face modes. More... | |
| int | m_numDirEdges |
| Number of Dirichlet edges. More... | |
| int | m_numDirFaces |
| Number of Dirichlet faces. More... | |
| int | m_numNonDirEdges |
| Number of Dirichlet edges. More... | |
| int | m_numNonDirFaces |
| Number of Dirichlet faces. More... | |
| int | m_numLocalBndCondCoeffs |
| Number of local boundary condition coefficients. More... | |
| Array< OneD, int > | m_extraDirEdges |
| Extra dirichlet edges in parallel. More... | |
| int | m_numLocDirBndCondDofs |
| Number of local boundary condition degrees of freedom. More... | |
| int | m_maxStaticCondLevel |
| Maximum static condensation level. More... | |
| std::map< int, std::vector < ExtraDirDof > > | m_extraDirDofs |
| Map indicating degrees of freedom which are Dirichlet but whose value is stored on another processor. More... | |
Protected Attributes inherited from Nektar::MultiRegions::AssemblyMap | |
| LibUtilities::SessionReaderSharedPtr | m_session |
| Session object. More... | |
| LibUtilities::CommSharedPtr | m_comm |
| Communicator. More... | |
| size_t | m_hash |
| Hash for map. More... | |
| int | m_numLocalBndCoeffs |
| Number of local boundary coefficients. More... | |
| int | m_numGlobalBndCoeffs |
| Total number of global boundary coefficients. More... | |
| int | m_numLocalDirBndCoeffs |
| Number of Local Dirichlet Boundary Coefficients. More... | |
| int | m_numGlobalDirBndCoeffs |
| Number of Global Dirichlet Boundary Coefficients. More... | |
| bool | m_systemSingular |
| Flag indicating if the system is singular or not. More... | |
| int | m_numLocalCoeffs |
| Total number of local coefficients. More... | |
| int | m_numGlobalCoeffs |
| Total number of global coefficients. More... | |
| bool | m_signChange |
| Flag indicating if modes require sign reversal. More... | |
| Array< OneD, int > | m_localToGlobalBndMap |
| Integer map of local boundary coeffs to global space. More... | |
| Array< OneD, NekDouble > | m_localToGlobalBndSign |
| Integer sign of local boundary coeffs to global space. More... | |
| Array< OneD, int > | m_bndCondCoeffsToGlobalCoeffsMap |
| Integer map of bnd cond coeffs to global coefficients. More... | |
| Array< OneD, NekDouble > | m_bndCondCoeffsToGlobalCoeffsSign |
| Integer map of bnd cond coeffs to global coefficients. More... | |
| Array< OneD, int > | m_bndCondTraceToGlobalTraceMap |
| Integer map of bnd cond trace number to global trace number. More... | |
| Array< OneD, int > | m_globalToUniversalBndMap |
| Integer map of process coeffs to universal space. More... | |
| Array< OneD, int > | m_globalToUniversalBndMapUnique |
| Integer map of unique process coeffs to universal space (signed) More... | |
| GlobalSysSolnType | m_solnType |
| The solution type of the global system. More... | |
| int | m_bndSystemBandWidth |
| The bandwith of the global bnd system. More... | |
| PreconditionerType | m_preconType |
| Type type of preconditioner to use in iterative solver. More... | |
| int | m_maxIterations |
| Maximum iterations for iterative solver. More... | |
| NekDouble | m_iterativeTolerance |
| Tolerance for iterative solver. More... | |
| int | m_successiveRHS |
| sucessive RHS for iterative solver More... | |
| Gs::gs_data * | m_gsh |
| Gs::gs_data * | m_bndGsh |
| int | m_staticCondLevel |
| The level of recursion in the case of multi-level static condensation. More... | |
| int | m_numPatches |
| The number of patches (~elements) in the current level. More... | |
| Array< OneD, unsigned int > | m_numLocalBndCoeffsPerPatch |
| The number of bnd dofs per patch. More... | |
| Array< OneD, unsigned int > | m_numLocalIntCoeffsPerPatch |
| The number of int dofs per patch. More... | |
| AssemblyMapSharedPtr | m_nextLevelLocalToGlobalMap |
| Map from the patches of the previous level to the patches of the current level. More... | |
| int | m_lowestStaticCondLevel |
| Lowest static condensation level. More... | |
Modified version of MultiRegions::AssemblyMapCG that allows for coupled fields [u,v,w] instead of individual scalar fields u, v and w.
Definition at line 50 of file CoupledAssemblyMap.h.
|
private |
Definition at line 52 of file CoupledAssemblyMap.h.
| Nektar::CoupledAssemblyMap::CoupledAssemblyMap | ( | const LibUtilities::SessionReaderSharedPtr & | pSession, |
| const SpatialDomains::MeshGraphSharedPtr & | graph, | ||
| const MultiRegions::AssemblyMapCGSharedPtr & | cgMap, | ||
| const Array< OneD, const BoundaryCondShPtr > & | boundaryConditions, | ||
| const Array< OneD, MultiRegions::ExpListSharedPtr > & | fields | ||
| ) |
Take an existing assembly map and create a coupled version suitable for use in the linear elasticity solver.
The linear elasticity solver requires a slight reordering of local and global coefficients to support problems of the form
[ A B C ] [ u ] = [ f_u ] [ D E F ] [ v ] [ f_v ] [ G H I ] [ w ] [ f_w ]
Definition at line 64 of file CoupledAssemblyMap.cpp.
References ASSERTL0, ASSERTL1, Nektar::MultiRegions::eDirectMultiLevelStaticCond, Nektar::MultiRegions::eIterativeMultiLevelStaticCond, Nektar::MultiRegions::eXxtMultiLevelStaticCond, Nektar::MultiRegions::AssemblyMap::GetBndCondCoeffsToGlobalCoeffsMap(), Gs::Init(), Nektar::MultiRegions::AssemblyMap::m_bndCondCoeffsToGlobalCoeffsMap, Nektar::MultiRegions::AssemblyMap::m_bndCondCoeffsToGlobalCoeffsSign, Nektar::MultiRegions::AssemblyMap::m_bndGsh, Nektar::MultiRegions::AssemblyMap::m_comm, Nektar::MultiRegions::AssemblyMapCG::m_extraDirDofs, Nektar::MultiRegions::AssemblyMap::m_globalToUniversalBndMap, Nektar::MultiRegions::AssemblyMap::m_globalToUniversalBndMapUnique, Nektar::MultiRegions::AssemblyMapCG::m_globalToUniversalMap, Nektar::MultiRegions::AssemblyMapCG::m_globalToUniversalMapUnique, Nektar::MultiRegions::AssemblyMap::m_gsh, Nektar::MultiRegions::AssemblyMap::m_hash, Nektar::MultiRegions::AssemblyMap::m_localToGlobalBndMap, Nektar::MultiRegions::AssemblyMap::m_localToGlobalBndSign, Nektar::MultiRegions::AssemblyMapCG::m_localToGlobalMap, Nektar::MultiRegions::AssemblyMapCG::m_localToGlobalSign, Nektar::MultiRegions::AssemblyMap::m_lowestStaticCondLevel, Nektar::MultiRegions::AssemblyMap::m_numGlobalBndCoeffs, Nektar::MultiRegions::AssemblyMap::m_numGlobalCoeffs, Nektar::MultiRegions::AssemblyMap::m_numGlobalDirBndCoeffs, Nektar::MultiRegions::AssemblyMap::m_numLocalBndCoeffs, Nektar::MultiRegions::AssemblyMap::m_numLocalBndCoeffsPerPatch, Nektar::MultiRegions::AssemblyMap::m_numLocalCoeffs, Nektar::MultiRegions::AssemblyMap::m_numLocalDirBndCoeffs, Nektar::MultiRegions::AssemblyMap::m_numLocalIntCoeffsPerPatch, Nektar::MultiRegions::AssemblyMap::m_numPatches, Nektar::MultiRegions::AssemblyMap::m_signChange, Nektar::MultiRegions::AssemblyMap::m_solnType, Nektar::MultiRegions::AssemblyMap::m_staticCondLevel, Nektar::MultiRegions::AssemblyMap::m_systemSingular, Nektar::NullNekDouble1DArray, Gs::Unique(), and Vmath::Zero().
1.8.8