| 
    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