Nektar++
|
#include <DisContField2D.h>
Public Member Functions | |
DisContField2D () | |
Default constructor. More... | |
DisContField2D (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &graph2D, const std::string &variable, const bool SetUpJustDG=true, const bool DeclareCoeffPhysArrays=true) | |
Constructs a global discontinuous field based on an input mesh with boundary conditions. More... | |
DisContField2D (const DisContField2D &In, const SpatialDomains::MeshGraphSharedPtr &graph2D, const std::string &variable, const bool SetUpJustDG=false, const bool DeclareCoeffPhysArrays=true) | |
DisContField2D (const DisContField2D &In, const bool DeclareCoeffPhysArrays=true) | |
virtual | ~DisContField2D () |
Default destructor. More... | |
GlobalLinSysSharedPtr | GetGlobalBndLinSys (const GlobalLinSysKey &mkey) |
NekDouble | L2_DGDeriv (const int dir, const Array< OneD, const NekDouble > &soln) |
Calculate the error of the derivative using the consistent DG evaluation of . More... | |
void | EvaluateHDGPostProcessing (Array< OneD, NekDouble > &outarray) |
Evaluate HDG post-processing to increase polynomial order of solution. More... | |
virtual ExpListSharedPtr & | v_GetTrace () |
Public Member Functions inherited from Nektar::MultiRegions::ExpList2D | |
ExpList2D () | |
Default constructor. More... | |
ExpList2D (const ExpList2D &In, const bool DeclareCoeffPhysArrays=true) | |
Copy constructor. More... | |
ExpList2D (const ExpList2D &In, const std::vector< unsigned int > &eIDs, const bool DeclareCoeffPhysArrays=true) | |
Constructor copying only elements defined in eIds. More... | |
ExpList2D (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &graph2D, const bool DelcareCoeffPhysArrays=true, const std::string &var="DefaultVar") | |
Sets up a list of local expansions based on an input mesh. More... | |
ExpList2D (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::ExpansionMap &expansions, const bool DeclareCoeffPhysArrays=true) | |
Sets up a list of local expansions based on an expansion Map. More... | |
ExpList2D (const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::BasisKey &TriBa, const LibUtilities::BasisKey &TriBb, const LibUtilities::BasisKey &QuadBa, const LibUtilities::BasisKey &QuadBb, const SpatialDomains::MeshGraphSharedPtr &graph2D, const LibUtilities::PointsType TriNb=LibUtilities::SIZE_PointsType) | |
Sets up a list of local expansions based on an input mesh and separately defined basiskeys. More... | |
ExpList2D (const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, const ExpListSharedPtr > &bndConstraint, const Array< OneD, const SpatialDomains::BoundaryConditionShPtr > &bndCond, const LocalRegions::ExpansionVector &locexp, const SpatialDomains::MeshGraphSharedPtr &graph3D, const PeriodicMap &periodicFaces, const bool DeclareCoeffPhysArrays=true, const std::string variable="DefaultVar") | |
ExpList2D (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::CompositeMap &domain, const SpatialDomains::MeshGraphSharedPtr &graph3D, const std::string variable="DefaultVar") | |
Specialised constructor for Neumann boundary conditions in DisContField3D and ContField3D. More... | |
virtual | ~ExpList2D () |
Destructor. More... | |
Public Member Functions inherited from Nektar::MultiRegions::ExpList | |
ExpList () | |
The default constructor. More... | |
ExpList (const LibUtilities::SessionReaderSharedPtr &pSession) | |
The default constructor. More... | |
ExpList (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) | |
The default constructor. More... | |
ExpList (const ExpList &in, const std::vector< unsigned int > &eIDs, const bool DeclareCoeffPhysArrays=true) | |
Constructor copying only elements defined in eIds. More... | |
ExpList (const ExpList &in, const bool DeclareCoeffPhysArrays=true) | |
The copy constructor. More... | |
virtual | ~ExpList () |
The default destructor. More... | |
int | GetNcoeffs (void) const |
Returns the total number of local degrees of freedom . More... | |
int | GetNcoeffs (const int eid) const |
Returns the total number of local degrees of freedom for element eid. More... | |
ExpansionType | GetExpType (void) |
Returns the type of the expansion. More... | |
void | SetExpType (ExpansionType Type) |
Returns the type of the expansion. More... | |
int | EvalBasisNumModesMax (void) const |
Evaulates the maximum number of modes in the elemental basis order over all elements. More... | |
const Array< OneD, int > | EvalBasisNumModesMaxPerExp (void) const |
Returns the vector of the number of modes in the elemental basis order over all elements. More... | |
int | GetTotPoints (void) const |
Returns the total number of quadrature points m_npoints . More... | |
int | GetTotPoints (const int eid) const |
Returns the total number of quadrature points for eid's element . More... | |
int | GetNpoints (void) const |
Returns the total number of quadrature points m_npoints . More... | |
int | Get1DScaledTotPoints (const NekDouble scale) const |
Returns the total number of qudature points scaled by the factor scale on each 1D direction. More... | |
void | SetWaveSpace (const bool wavespace) |
Sets the wave space to the one of the possible configuration true or false. More... | |
void | SetModifiedBasis (const bool modbasis) |
Set Modified Basis for the stability analysis. More... | |
void | SetPhys (int i, NekDouble val) |
Set the i th value of m_phys to value val. More... | |
bool | GetWaveSpace (void) const |
This function returns the third direction expansion condition, which can be in wave space (coefficient) or not It is stored in the variable m_WaveSpace. More... | |
void | SetPhys (const Array< OneD, const NekDouble > &inarray) |
Fills the array m_phys. More... | |
void | SetPhysArray (Array< OneD, NekDouble > &inarray) |
Sets the array m_phys. More... | |
void | SetPhysState (const bool physState) |
This function manually sets whether the array of physical values (implemented as m_phys) is filled or not. More... | |
bool | GetPhysState (void) const |
This function indicates whether the array of physical values (implemented as m_phys) is filled or not. More... | |
NekDouble | PhysIntegral (void) |
This function integrates a function over the domain consisting of all the elements of the expansion. More... | |
NekDouble | PhysIntegral (const Array< OneD, const NekDouble > &inarray) |
This function integrates a function over the domain consisting of all the elements of the expansion. More... | |
void | IProductWRTBase_IterPerExp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This function calculates the inner product of a function with respect to all {local} expansion modes . More... | |
void | IProductWRTBase (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal) |
void | IProductWRTDerivBase (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This function calculates the inner product of a function with respect to the derivative (in direction. More... | |
void | IProductWRTDerivBase (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, NekDouble > &outarray) |
This function calculates the inner product of a function with respect to the derivative (in direction. More... | |
void | FwdTrans_IterPerExp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This function elementally evaluates the forward transformation of a function onto the global spectral/hp expansion. More... | |
void | FwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal) |
void | MultiplyByElmtInvMass (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This function elementally mulplies the coefficient space of Sin my the elemental inverse of the mass matrix. More... | |
void | MultiplyByInvMassMatrix (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal) |
void | SmoothField (Array< OneD, NekDouble > &field) |
Smooth a field across elements. More... | |
void | HelmSolve (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const FlagList &flags, const StdRegions::ConstFactorMap &factors, const StdRegions::VarCoeffMap &varcoeff=StdRegions::NullVarCoeffMap, const Array< OneD, const NekDouble > &dirForcing=NullNekDouble1DArray, const bool PhysSpaceForcing=true) |
Solve helmholtz problem. More... | |
void | LinearAdvectionDiffusionReactionSolve (const Array< OneD, Array< OneD, NekDouble > > &velocity, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const NekDouble lambda, CoeffState coeffstate=eLocal, const Array< OneD, const NekDouble > &dirForcing=NullNekDouble1DArray) |
Solve Advection Diffusion Reaction. More... | |
void | LinearAdvectionReactionSolve (const Array< OneD, Array< OneD, NekDouble > > &velocity, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const NekDouble lambda, CoeffState coeffstate=eLocal, const Array< OneD, const NekDouble > &dirForcing=NullNekDouble1DArray) |
Solve Advection Diffusion Reaction. More... | |
void | FwdTrans_BndConstrained (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | BwdTrans_IterPerExp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This function elementally evaluates the backward transformation of the global spectral/hp element expansion. More... | |
void | BwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal) |
void | GetCoords (Array< OneD, NekDouble > &coord_0, Array< OneD, NekDouble > &coord_1=NullNekDouble1DArray, Array< OneD, NekDouble > &coord_2=NullNekDouble1DArray) |
This function calculates the coordinates of all the elemental quadrature points . More... | |
void | HomogeneousFwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal, bool Shuff=true, bool UnShuff=true) |
void | HomogeneousBwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal, bool Shuff=true, bool UnShuff=true) |
void | DealiasedProd (const Array< OneD, NekDouble > &inarray1, const Array< OneD, NekDouble > &inarray2, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal) |
void | DealiasedDotProd (const Array< OneD, Array< OneD, NekDouble > > &inarray1, const Array< OneD, Array< OneD, NekDouble > > &inarray2, Array< OneD, Array< OneD, NekDouble > > &outarray, CoeffState coeffstate=eLocal) |
void | GetBCValues (Array< OneD, NekDouble > &BndVals, const Array< OneD, NekDouble > &TotField, int BndID) |
void | NormVectorIProductWRTBase (Array< OneD, const NekDouble > &V1, Array< OneD, const NekDouble > &V2, Array< OneD, NekDouble > &outarray, int BndID) |
void | NormVectorIProductWRTBase (Array< OneD, Array< OneD, NekDouble > > &V, Array< OneD, NekDouble > &outarray) |
void | ApplyGeomInfo () |
Apply geometry information to each expansion. More... | |
void | Reset () |
Reset geometry information and reset matrices. More... | |
void | WriteTecplotHeader (std::ostream &outfile, std::string var="") |
void | WriteTecplotZone (std::ostream &outfile, int expansion=-1) |
void | WriteTecplotField (std::ostream &outfile, int expansion=-1) |
void | WriteTecplotConnectivity (std::ostream &outfile, int expansion=-1) |
void | WriteVtkHeader (std::ostream &outfile) |
void | WriteVtkFooter (std::ostream &outfile) |
void | WriteVtkPieceHeader (std::ostream &outfile, int expansion, int istrip=0) |
void | WriteVtkPieceFooter (std::ostream &outfile, int expansion) |
void | WriteVtkPieceData (std::ostream &outfile, int expansion, std::string var="v") |
int | GetCoordim (int eid) |
This function returns the dimension of the coordinates of the element eid. More... | |
void | SetCoeff (int i, NekDouble val) |
Set the i th coefficiient in m_coeffs to value val. More... | |
void | SetCoeffs (int i, NekDouble val) |
Set the i th coefficiient in m_coeffs to value val. More... | |
void | SetCoeffsArray (Array< OneD, NekDouble > &inarray) |
Set the m_coeffs array to inarray. More... | |
const Array< OneD, const NekDouble > & | GetCoeffs () const |
This function returns (a reference to) the array (implemented as m_coeffs) containing all local expansion coefficients. More... | |
void | ImposeDirichletConditions (Array< OneD, NekDouble > &outarray) |
Impose Dirichlet Boundary Conditions onto Array. More... | |
void | FillBndCondFromField (void) |
Fill Bnd Condition expansion from the values stored in expansion. More... | |
void | FillBndCondFromField (const int nreg) |
Fill Bnd Condition expansion in nreg from the values stored in expansion. More... | |
void | LocalToGlobal (bool useComm=true) |
Gathers the global coefficients from the local coefficients . More... | |
void | LocalToGlobal (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool useComm=true) |
void | GlobalToLocal (void) |
Scatters from the global coefficients to the local coefficients . More... | |
void | GlobalToLocal (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
NekDouble | GetCoeff (int i) |
Get the i th value (coefficient) of m_coeffs. More... | |
NekDouble | GetCoeffs (int i) |
Get the i th value (coefficient) of m_coeffs. More... | |
const Array< OneD, const NekDouble > & | GetPhys () const |
This function returns (a reference to) the array (implemented as m_phys) containing the function evaluated at the quadrature points. More... | |
NekDouble | Linf (const Array< OneD, const NekDouble > &inarray, const Array< OneD, const NekDouble > &soln=NullNekDouble1DArray) |
This function calculates the error of the global spectral/hp element approximation. More... | |
NekDouble | L2 (const Array< OneD, const NekDouble > &inarray, const Array< OneD, const NekDouble > &soln=NullNekDouble1DArray) |
This function calculates the error with respect to soln of the global spectral/hp element approximation. More... | |
NekDouble | H1 (const Array< OneD, const NekDouble > &inarray, const Array< OneD, const NekDouble > &soln=NullNekDouble1DArray) |
Calculates the error of the global spectral/hp element approximation. More... | |
NekDouble | Integral (const Array< OneD, const NekDouble > &inarray) |
Array< OneD, const NekDouble > | HomogeneousEnergy (void) |
This function calculates the energy associated with each one of the modesof a 3D homogeneous nD expansion. More... | |
void | SetHomo1DSpecVanVisc (Array< OneD, NekDouble > visc) |
This function sets the Spectral Vanishing Viscosity in homogeneous1D expansion. More... | |
Array< OneD, const unsigned int > | GetZIDs (void) |
This function returns a vector containing the wave numbers in z-direction associated with the 3D homogenous expansion. Required if a parellelisation is applied in the Fourier direction. More... | |
LibUtilities::TranspositionSharedPtr | GetTransposition (void) |
This function returns the transposition class associaed with the homogeneous expansion. More... | |
NekDouble | GetHomoLen (void) |
This function returns the Width of homogeneous direction associaed with the homogeneous expansion. More... | |
Array< OneD, const unsigned int > | GetYIDs (void) |
This function returns a vector containing the wave numbers in y-direction associated with the 3D homogenous expansion. Required if a parellelisation is applied in the Fourier direction. More... | |
void | PhysInterp1DScaled (const NekDouble scale, const Array< OneD, NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This function interpolates the physical space points in inarray to outarray using the same points defined in the expansion but where the number of points are rescaled by 1DScale. More... | |
void | PhysGalerkinProjection1DScaled (const NekDouble scale, const Array< OneD, NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This function Galerkin projects the physical space points in inarray to outarray where inarray is assumed to be defined in the expansion but where the number of points are rescaled by 1DScale. More... | |
int | GetExpSize (void) |
This function returns the number of elements in the expansion. More... | |
int | GetNumElmts (void) |
This function returns the number of elements in the expansion which may be different for a homogeoenous extended expansionp. More... | |
const boost::shared_ptr < LocalRegions::ExpansionVector > | GetExp () const |
This function returns the vector of elements in the expansion. More... | |
LocalRegions::ExpansionSharedPtr & | GetExp (int n) const |
This function returns (a shared pointer to) the local elemental expansion of the element. More... | |
LocalRegions::ExpansionSharedPtr & | GetExp (const Array< OneD, const NekDouble > &gloCoord) |
This function returns (a shared pointer to) the local elemental expansion containing the arbitrary point given by gloCoord. More... | |
int | GetExpIndex (const Array< OneD, const NekDouble > &gloCoord, NekDouble tol=0.0, bool returnNearestElmt=false) |
int | GetExpIndex (const Array< OneD, const NekDouble > &gloCoords, Array< OneD, NekDouble > &locCoords, NekDouble tol=0.0, bool returnNearestElmt=false) |
int | GetCoeff_Offset (int n) const |
Get the start offset position for a global list of m_coeffs correspoinding to element n. More... | |
int | GetPhys_Offset (int n) const |
Get the start offset position for a global list of m_phys correspoinding to element n. More... | |
int | GetOffset_Elmt_Id (int n) const |
Get the element id associated with the n th consecutive block of data in m_phys and m_coeffs. More... | |
Array< OneD, NekDouble > & | UpdateCoeffs () |
This function returns (a reference to) the array (implemented as m_coeffs) containing all local expansion coefficients. More... | |
Array< OneD, NekDouble > & | UpdatePhys () |
This function returns (a reference to) the array (implemented as m_phys) containing the function evaluated at the quadrature points. More... | |
void | PhysDeriv (Direction edir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d) |
void | PhysDeriv (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d0, Array< OneD, NekDouble > &out_d1=NullNekDouble1DArray, Array< OneD, NekDouble > &out_d2=NullNekDouble1DArray) |
This function discretely evaluates the derivative of a function on the domain consisting of all elements of the expansion. More... | |
void | PhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d) |
void | CurlCurl (Array< OneD, Array< OneD, NekDouble > > &Vel, Array< OneD, Array< OneD, NekDouble > > &Q) |
const Array< OneD, const boost::shared_ptr< ExpList > > & | GetBndCondExpansions () |
boost::shared_ptr< ExpList > & | UpdateBndCondExpansion (int i) |
void | Upwind (const Array< OneD, const Array< OneD, NekDouble > > &Vec, const Array< OneD, const NekDouble > &Fwd, const Array< OneD, const NekDouble > &Bwd, Array< OneD, NekDouble > &Upwind) |
void | Upwind (const Array< OneD, const NekDouble > &Vn, const Array< OneD, const NekDouble > &Fwd, const Array< OneD, const NekDouble > &Bwd, Array< OneD, NekDouble > &Upwind) |
boost::shared_ptr< ExpList > & | GetTrace () |
boost::shared_ptr < AssemblyMapDG > & | GetTraceMap (void) |
const Array< OneD, const int > & | GetTraceBndMap (void) |
void | GetNormals (Array< OneD, Array< OneD, NekDouble > > &normals) |
void | AddTraceIntegral (const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, Array< OneD, NekDouble > &outarray) |
void | AddTraceIntegral (const Array< OneD, const NekDouble > &Fn, Array< OneD, NekDouble > &outarray) |
void | AddFwdBwdTraceIntegral (const Array< OneD, const NekDouble > &Fwd, const Array< OneD, const NekDouble > &Bwd, Array< OneD, NekDouble > &outarray) |
void | GetFwdBwdTracePhys (Array< OneD, NekDouble > &Fwd, Array< OneD, NekDouble > &Bwd) |
void | GetFwdBwdTracePhys (const Array< OneD, const NekDouble > &field, Array< OneD, NekDouble > &Fwd, Array< OneD, NekDouble > &Bwd) |
const std::vector< bool > & | GetLeftAdjacentFaces (void) const |
void | ExtractTracePhys (Array< OneD, NekDouble > &outarray) |
void | ExtractTracePhys (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
const Array< OneD, const SpatialDomains::BoundaryConditionShPtr > & | GetBndConditions () |
Array< OneD, SpatialDomains::BoundaryConditionShPtr > & | UpdateBndConditions () |
void | EvaluateBoundaryConditions (const NekDouble time=0.0, const std::string varName="", const NekDouble=NekConstants::kNekUnsetDouble, const NekDouble=NekConstants::kNekUnsetDouble) |
void | GeneralMatrixOp (const GlobalMatrixKey &gkey, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal) |
This function calculates the result of the multiplication of a matrix of type specified by mkey with a vector given by inarray. More... | |
void | GeneralMatrixOp_IterPerExp (const GlobalMatrixKey &gkey, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | SetUpPhysNormals () |
void | GetBoundaryToElmtMap (Array< OneD, int > &ElmtID, Array< OneD, int > &EdgeID) |
void | GetBndElmtExpansion (int i, boost::shared_ptr< ExpList > &result, const bool DeclareCoeffPhysArrays=true) |
void | ExtractElmtToBndPhys (int i, Array< OneD, NekDouble > &elmt, Array< OneD, NekDouble > &boundary) |
void | ExtractPhysToBndElmt (int i, const Array< OneD, const NekDouble > &phys, Array< OneD, NekDouble > &bndElmt) |
void | ExtractPhysToBnd (int i, const Array< OneD, const NekDouble > &phys, Array< OneD, NekDouble > &bnd) |
void | GetBoundaryNormals (int i, Array< OneD, Array< OneD, NekDouble > > &normals) |
void | GeneralGetFieldDefinitions (std::vector< LibUtilities::FieldDefinitionsSharedPtr > &fielddef, int NumHomoDir=0, Array< OneD, LibUtilities::BasisSharedPtr > &HomoBasis=LibUtilities::NullBasisSharedPtr1DArray, std::vector< NekDouble > &HomoLen=LibUtilities::NullNekDoubleVector, bool homoStrips=false, std::vector< unsigned int > &HomoSIDs=LibUtilities::NullUnsignedIntVector, std::vector< unsigned int > &HomoZIDs=LibUtilities::NullUnsignedIntVector, std::vector< unsigned int > &HomoYIDs=LibUtilities::NullUnsignedIntVector) |
const NekOptimize::GlobalOptParamSharedPtr & | GetGlobalOptParam (void) |
std::map< int, RobinBCInfoSharedPtr > | GetRobinBCInfo () |
void | GetPeriodicEntities (PeriodicMap &periodicVerts, PeriodicMap &periodicEdges, PeriodicMap &periodicFaces=NullPeriodicMap) |
std::vector < LibUtilities::FieldDefinitionsSharedPtr > | GetFieldDefinitions () |
void | GetFieldDefinitions (std::vector< LibUtilities::FieldDefinitionsSharedPtr > &fielddef) |
void | AppendFieldData (LibUtilities::FieldDefinitionsSharedPtr &fielddef, std::vector< NekDouble > &fielddata) |
Append the element data listed in elements fielddef->m_ElementIDs onto fielddata. More... | |
void | AppendFieldData (LibUtilities::FieldDefinitionsSharedPtr &fielddef, std::vector< NekDouble > &fielddata, Array< OneD, NekDouble > &coeffs) |
Append the data in coeffs listed in elements fielddef->m_ElementIDs onto fielddata. More... | |
void | ExtractElmtDataToCoeffs (LibUtilities::FieldDefinitionsSharedPtr &fielddef, std::vector< NekDouble > &fielddata, std::string &field, Array< OneD, NekDouble > &coeffs) |
Extract the data in fielddata into the coeffs using the basic ExpList Elemental expansions rather than planes in homogeneous case. More... | |
void | ExtractCoeffsToCoeffs (const boost::shared_ptr< ExpList > &fromExpList, const Array< OneD, const NekDouble > &fromCoeffs, Array< OneD, NekDouble > &toCoeffs) |
Extract the data from fromField using fromExpList the coeffs using the basic ExpList Elemental expansions rather than planes in homogeneous case. More... | |
void | ExtractDataToCoeffs (LibUtilities::FieldDefinitionsSharedPtr &fielddef, std::vector< NekDouble > &fielddata, std::string &field, Array< OneD, NekDouble > &coeffs) |
Extract the data in fielddata into the coeffs. More... | |
boost::shared_ptr< ExpList > | GetSharedThisPtr () |
Returns a shared pointer to the current object. More... | |
boost::shared_ptr < LibUtilities::SessionReader > | GetSession () const |
Returns the session object. More... | |
boost::shared_ptr < LibUtilities::Comm > | GetComm () |
Returns the comm object. More... | |
SpatialDomains::MeshGraphSharedPtr | GetGraph () |
LibUtilities::BasisSharedPtr | GetHomogeneousBasis (void) |
boost::shared_ptr< ExpList > & | GetPlane (int n) |
void | CreateCollections (Collections::ImplementationType ImpType=Collections::eNoImpType) |
Construct collections of elements containing a single element type and polynomial order from the list of expansions. More... | |
void | ClearGlobalLinSysManager (void) |
Public Attributes | |
Array< OneD, int > | m_BCtoElmMap |
Array< OneD, int > | m_BCtoEdgMap |
Public Attributes inherited from Nektar::MultiRegions::ExpList | |
ExpansionType | m_expType |
Protected Member Functions | |
const Array< OneD, const LibUtilities::BasisSharedPtr > & | GetBase () const |
This function gets the shared point to basis. More... | |
LibUtilities::BasisType | GetBasisType (const int dir) const |
This function returns the type of basis used in the dir direction. More... | |
void | SetUpDG (const std::string="DefaultVar") |
Set up all DG member variables and maps. More... | |
bool | SameTypeOfBoundaryConditions (const DisContField2D &In) |
void | GenerateBoundaryConditionExpansion (const SpatialDomains::MeshGraphSharedPtr &graph2D, const SpatialDomains::BoundaryConditions &bcs, const std::string &variable, const bool DeclareCoeffPhysArrays=true) |
This function discretises the boundary conditions by setting up a list of one-dimensional boundary expansions. More... | |
void | FindPeriodicEdges (const SpatialDomains::BoundaryConditions &bcs, const std::string &variable) |
Determine the periodic edges and vertices for the given graph. More... | |
bool | IsLeftAdjacentEdge (const int n, const int e) |
virtual void | v_GetFwdBwdTracePhys (const Array< OneD, const NekDouble > &field, Array< OneD, NekDouble > &Fwd, Array< OneD, NekDouble > &Bwd) |
This method extracts the "forward" and "backward" trace data from the array field and puts the data into output vectors Fwd and Bwd. More... | |
virtual void | v_GetFwdBwdTracePhys (Array< OneD, NekDouble > &Fwd, Array< OneD, NekDouble > &Bwd) |
virtual void | v_AddTraceIntegral (const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, Array< OneD, NekDouble > &outarray) |
virtual void | v_AddTraceIntegral (const Array< OneD, const NekDouble > &Fn, Array< OneD, NekDouble > &outarray) |
Add trace contributions into elemental coefficient spaces. More... | |
virtual void | v_AddFwdBwdTraceIntegral (const Array< OneD, const NekDouble > &Fwd, const Array< OneD, const NekDouble > &Bwd, Array< OneD, NekDouble > &outarray) |
Add trace contributions into elemental coefficient spaces. More... | |
virtual void | v_ExtractTracePhys (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This method extracts the trace (edges in 2D) from the field inarray and puts the values in outarray. More... | |
virtual void | v_ExtractTracePhys (Array< OneD, NekDouble > &outarray) |
virtual void | v_HelmSolve (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const FlagList &flags, const StdRegions::ConstFactorMap &factors, const StdRegions::VarCoeffMap &varcoeff, const Array< OneD, const NekDouble > &dirForcing, const bool PhysSpaceForcing) |
virtual void | v_GeneralMatrixOp (const GlobalMatrixKey &gkey, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal) |
Calculates the result of the multiplication of a global matrix of type specified by mkey with a vector given by inarray. More... | |
virtual void | v_GetBoundaryToElmtMap (Array< OneD, int > &ElmtID, Array< OneD, int > &EdgeID) |
Set up a list of element IDs and edge IDs that link to the boundary conditions. More... | |
virtual void | v_GetBndElmtExpansion (int i, boost::shared_ptr< ExpList > &result, const bool DeclareCoeffPhysArrays) |
virtual void | v_Reset () |
Reset this field, so that geometry information can be updated. More... | |
virtual void | v_GetPeriodicEntities (PeriodicMap &periodicVerts, PeriodicMap &periodicEdges, PeriodicMap &periodicFaces) |
Obtain a copy of the periodic edges and vertices for this field. More... | |
virtual AssemblyMapDGSharedPtr & | v_GetTraceMap () |
virtual const Array< OneD, const MultiRegions::ExpListSharedPtr > & | v_GetBndCondExpansions () |
virtual const Array< OneD, const SpatialDomains::BoundaryConditionShPtr > & | v_GetBndConditions () |
virtual MultiRegions::ExpListSharedPtr & | v_UpdateBndCondExpansion (int i) |
virtual Array< OneD, SpatialDomains::BoundaryConditionShPtr > & | v_UpdateBndConditions () |
virtual void | v_EvaluateBoundaryConditions (const NekDouble time=0.0, const std::string varName="", const NekDouble x2_in=NekConstants::kNekUnsetDouble, const NekDouble x3_in=NekConstants::kNekUnsetDouble) |
virtual std::map< int, RobinBCInfoSharedPtr > | v_GetRobinBCInfo () |
Search through the edge expansions and identify which ones have Robin/Mixed type boundary conditions. More... | |
Protected Member Functions inherited from Nektar::MultiRegions::ExpList2D | |
void | v_Upwind (const Array< OneD, const NekDouble > &Vn, const Array< OneD, const NekDouble > &Fwd, const Array< OneD, const NekDouble > &Bwd, Array< OneD, NekDouble > &Upwind) |
Upwind the Fwd and Bwd states based on the one- dimensional normal velocity field given by Vn. More... | |
void | v_GetNormals (Array< OneD, Array< OneD, NekDouble > > &normals) |
For each local element, copy the normals stored in the element list into the array normals. More... | |
Protected Member Functions inherited from Nektar::MultiRegions::ExpList | |
boost::shared_ptr< DNekMat > | GenGlobalMatrixFull (const GlobalLinSysKey &mkey, const boost::shared_ptr< AssemblyMapCG > &locToGloMap) |
const DNekScalBlkMatSharedPtr | GenBlockMatrix (const GlobalMatrixKey &gkey) |
This function assembles the block diagonal matrix of local matrices of the type mtype. More... | |
const DNekScalBlkMatSharedPtr & | GetBlockMatrix (const GlobalMatrixKey &gkey) |
void | MultiplyByBlockMatrix (const GlobalMatrixKey &gkey, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
boost::shared_ptr< GlobalMatrix > | GenGlobalMatrix (const GlobalMatrixKey &mkey, const boost::shared_ptr< AssemblyMapCG > &locToGloMap) |
Generates a global matrix from the given key and map. More... | |
void | GlobalEigenSystem (const boost::shared_ptr< DNekMat > &Gmat, Array< OneD, NekDouble > &EigValsReal, Array< OneD, NekDouble > &EigValsImag, Array< OneD, NekDouble > &EigVecs=NullNekDouble1DArray) |
boost::shared_ptr< GlobalLinSys > | GenGlobalLinSys (const GlobalLinSysKey &mkey, const boost::shared_ptr< AssemblyMapCG > &locToGloMap) |
This operation constructs the global linear system of type mkey. More... | |
boost::shared_ptr< GlobalLinSys > | GenGlobalBndLinSys (const GlobalLinSysKey &mkey, const AssemblyMapSharedPtr &locToGloMap) |
Generate a GlobalLinSys from information provided by the key "mkey" and the mapping provided in LocToGloBaseMap. More... | |
void | ReadGlobalOptimizationParameters () |
virtual int | v_GetNumElmts (void) |
virtual void | v_Upwind (const Array< OneD, const Array< OneD, NekDouble > > &Vec, const Array< OneD, const NekDouble > &Fwd, const Array< OneD, const NekDouble > &Bwd, Array< OneD, NekDouble > &Upwind) |
virtual const Array< OneD, const int > & | v_GetTraceBndMap () |
virtual const std::vector< bool > & | v_GetLeftAdjacentFaces (void) const |
virtual void | v_MultiplyByInvMassMatrix (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate) |
virtual void | v_LinearAdvectionDiffusionReactionSolve (const Array< OneD, Array< OneD, NekDouble > > &velocity, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const NekDouble lambda, CoeffState coeffstate=eLocal, const Array< OneD, const NekDouble > &dirForcing=NullNekDouble1DArray) |
virtual void | v_LinearAdvectionReactionSolve (const Array< OneD, Array< OneD, NekDouble > > &velocity, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const NekDouble lambda, CoeffState coeffstate=eLocal, const Array< OneD, const NekDouble > &dirForcing=NullNekDouble1DArray) |
virtual void | v_ImposeDirichletConditions (Array< OneD, NekDouble > &outarray) |
virtual void | v_FillBndCondFromField () |
virtual void | v_FillBndCondFromField (const int nreg) |
virtual void | v_LocalToGlobal (bool UseComm) |
virtual void | v_LocalToGlobal (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool UseComm) |
virtual void | v_GlobalToLocal (void) |
virtual void | v_GlobalToLocal (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
virtual void | v_BwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate) |
virtual void | v_BwdTrans_IterPerExp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
virtual void | v_FwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate) |
virtual void | v_FwdTrans_IterPerExp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
virtual void | v_SmoothField (Array< OneD, NekDouble > &field) |
virtual void | v_IProductWRTBase (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate) |
virtual void | v_IProductWRTBase_IterPerExp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
virtual void | v_GetCoords (Array< OneD, NekDouble > &coord_0, Array< OneD, NekDouble > &coord_1, Array< OneD, NekDouble > &coord_2=NullNekDouble1DArray) |
virtual void | v_PhysDeriv (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d0, Array< OneD, NekDouble > &out_d1, Array< OneD, NekDouble > &out_d2) |
virtual void | v_PhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d) |
virtual void | v_PhysDeriv (Direction edir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d) |
virtual void | v_CurlCurl (Array< OneD, Array< OneD, NekDouble > > &Vel, Array< OneD, Array< OneD, NekDouble > > &Q) |
virtual void | v_HomogeneousFwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal, bool Shuff=true, bool UnShuff=true) |
virtual void | v_HomogeneousBwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal, bool Shuff=true, bool UnShuff=true) |
virtual void | v_DealiasedProd (const Array< OneD, NekDouble > &inarray1, const Array< OneD, NekDouble > &inarray2, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal) |
virtual void | v_DealiasedDotProd (const Array< OneD, Array< OneD, NekDouble > > &inarray1, const Array< OneD, Array< OneD, NekDouble > > &inarray2, Array< OneD, Array< OneD, NekDouble > > &outarray, CoeffState coeffstate=eLocal) |
virtual void | v_GetBCValues (Array< OneD, NekDouble > &BndVals, const Array< OneD, NekDouble > &TotField, int BndID) |
virtual void | v_NormVectorIProductWRTBase (Array< OneD, const NekDouble > &V1, Array< OneD, const NekDouble > &V2, Array< OneD, NekDouble > &outarray, int BndID) |
virtual void | v_NormVectorIProductWRTBase (Array< OneD, Array< OneD, NekDouble > > &V, Array< OneD, NekDouble > &outarray) |
virtual void | v_ExtractElmtToBndPhys (int i, Array< OneD, NekDouble > &elmt, Array< OneD, NekDouble > &boundary) |
virtual void | v_ExtractPhysToBndElmt (int i, const Array< OneD, const NekDouble > &phys, Array< OneD, NekDouble > &bndElmt) |
virtual void | v_ExtractPhysToBnd (int i, const Array< OneD, const NekDouble > &phys, Array< OneD, NekDouble > &bnd) |
virtual void | v_GetBoundaryNormals (int i, Array< OneD, Array< OneD, NekDouble > > &normals) |
virtual std::vector < LibUtilities::FieldDefinitionsSharedPtr > | v_GetFieldDefinitions (void) |
virtual void | v_GetFieldDefinitions (std::vector< LibUtilities::FieldDefinitionsSharedPtr > &fielddef) |
virtual void | v_AppendFieldData (LibUtilities::FieldDefinitionsSharedPtr &fielddef, std::vector< NekDouble > &fielddata) |
virtual void | v_AppendFieldData (LibUtilities::FieldDefinitionsSharedPtr &fielddef, std::vector< NekDouble > &fielddata, Array< OneD, NekDouble > &coeffs) |
virtual void | v_ExtractDataToCoeffs (LibUtilities::FieldDefinitionsSharedPtr &fielddef, std::vector< NekDouble > &fielddata, std::string &field, Array< OneD, NekDouble > &coeffs) |
Extract data from raw field data into expansion list. More... | |
virtual void | v_ExtractCoeffsToCoeffs (const boost::shared_ptr< ExpList > &fromExpList, const Array< OneD, const NekDouble > &fromCoeffs, Array< OneD, NekDouble > &toCoeffs) |
virtual void | v_WriteTecplotHeader (std::ostream &outfile, std::string var="") |
virtual void | v_WriteTecplotZone (std::ostream &outfile, int expansion) |
virtual void | v_WriteTecplotField (std::ostream &outfile, int expansion) |
virtual void | v_WriteTecplotConnectivity (std::ostream &outfile, int expansion) |
virtual void | v_WriteVtkPieceData (std::ostream &outfile, int expansion, std::string var) |
virtual NekDouble | v_L2 (const Array< OneD, const NekDouble > &phys, const Array< OneD, const NekDouble > &soln=NullNekDouble1DArray) |
virtual NekDouble | v_Integral (const Array< OneD, const NekDouble > &inarray) |
virtual Array< OneD, const NekDouble > | v_HomogeneousEnergy (void) |
virtual LibUtilities::TranspositionSharedPtr | v_GetTransposition (void) |
virtual NekDouble | v_GetHomoLen (void) |
virtual Array< OneD, const unsigned int > | v_GetZIDs (void) |
virtual Array< OneD, const unsigned int > | v_GetYIDs (void) |
virtual void | v_ClearGlobalLinSysManager (void) |
void | ExtractFileBCs (const std::string &fileName, LibUtilities::CommSharedPtr comm, const std::string &varName, const boost::shared_ptr< ExpList > locExpList) |
Protected Attributes | |
Array< OneD, LibUtilities::BasisSharedPtr > | m_base |
Array< OneD, MultiRegions::ExpListSharedPtr > | m_bndCondExpansions |
An object which contains the discretised boundary conditions. More... | |
Array< OneD, SpatialDomains::BoundaryConditionShPtr > | m_bndConditions |
An array which contains the information about the boundary condition on the different boundary regions. More... | |
GlobalLinSysMapShPtr | m_globalBndMat |
ExpListSharedPtr | m_trace |
AssemblyMapDGSharedPtr | m_traceMap |
LocTraceToTraceMapSharedPtr | m_locTraceToTraceMap |
Array< OneD, Array< OneD, unsigned int > > | m_mapEdgeToElmn |
Array< OneD, Array< OneD, unsigned int > > | m_signEdgeToElmn |
Array< OneD, StdRegions::Orientation > | m_edgedir |
std::set< int > | m_boundaryEdges |
A set storing the global IDs of any boundary edges. More... | |
PeriodicMap | m_periodicVerts |
A map which identifies groups of periodic vertices. More... | |
PeriodicMap | m_periodicEdges |
A map which identifies pairs of periodic edges. More... | |
std::vector< int > | m_periodicFwdCopy |
A vector indicating degress of freedom which need to be copied from forwards to backwards space in case of a periodic boundary condition. More... | |
std::vector< int > | m_periodicBwdCopy |
std::vector< bool > | m_leftAdjacentEdges |
Protected Attributes inherited from Nektar::MultiRegions::ExpList | |
LibUtilities::CommSharedPtr | m_comm |
Communicator. More... | |
LibUtilities::SessionReaderSharedPtr | m_session |
Session. More... | |
SpatialDomains::MeshGraphSharedPtr | m_graph |
Mesh associated with this expansion list. More... | |
int | m_ncoeffs |
The total number of local degrees of freedom. m_ncoeffs . More... | |
int | m_npoints |
Array< OneD, NekDouble > | m_coeffs |
Concatenation of all local expansion coefficients. More... | |
Array< OneD, NekDouble > | m_phys |
The global expansion evaluated at the quadrature points. More... | |
bool | m_physState |
The state of the array m_phys. More... | |
boost::shared_ptr < LocalRegions::ExpansionVector > | m_exp |
The list of local expansions. More... | |
Collections::CollectionVector | m_collections |
std::vector< int > | m_coll_coeff_offset |
Offset of elemental data into the array m_coeffs. More... | |
std::vector< int > | m_coll_phys_offset |
Offset of elemental data into the array m_phys. More... | |
Array< OneD, int > | m_coeff_offset |
Offset of elemental data into the array m_coeffs. More... | |
Array< OneD, int > | m_phys_offset |
Offset of elemental data into the array m_phys. More... | |
Array< OneD, int > | m_offset_elmt_id |
Array containing the element id m_offset_elmt_id[n] that the n^th consecutive block of data in m_coeffs and m_phys is associated, i.e. for an array of constant expansion size and single shape elements m_phys[n*m_npoints] is the data related to m_exp[m_offset_elmt_id[n]];. More... | |
NekOptimize::GlobalOptParamSharedPtr | m_globalOptParam |
BlockMatrixMapShPtr | m_blockMat |
bool | m_WaveSpace |
boost::unordered_map< int, int > | m_elmtToExpId |
Mapping from geometry ID of element to index inside m_exp. More... | |
Additional Inherited Members | |
Static Protected Member Functions inherited from Nektar::MultiRegions::ExpList | |
static SpatialDomains::BoundaryConditionShPtr | GetBoundaryCondition (const SpatialDomains::BoundaryConditionCollection &collection, unsigned int index, const std::string &variable) |
Abstraction of a global discontinuous two-dimensional spectral/hp element expansion which approximates the solution of a set of partial differential equations.
Definition at line 52 of file DisContField2D.h.
Nektar::MultiRegions::DisContField2D::DisContField2D | ( | void | ) |
Default constructor.
Definition at line 63 of file DisContField2D.cpp.
Nektar::MultiRegions::DisContField2D::DisContField2D | ( | const LibUtilities::SessionReaderSharedPtr & | pSession, |
const SpatialDomains::MeshGraphSharedPtr & | graph2D, | ||
const std::string & | variable, | ||
const bool | SetUpJustDG = true , |
||
const bool | DeclareCoeffPhysArrays = true |
||
) |
Constructs a global discontinuous field based on an input mesh with boundary conditions.
Definition at line 99 of file DisContField2D.cpp.
References Nektar::MultiRegions::ExpList::EvaluateBoundaryConditions(), FindPeriodicEdges(), GenerateBoundaryConditionExpansion(), Nektar::MultiRegions::ExpList::GetBoundaryToElmtMap(), m_bndCondExpansions, Nektar::MultiRegions::ExpList::m_session, SetUpDG(), and Nektar::MultiRegions::ExpList::SetUpPhysNormals().
Nektar::MultiRegions::DisContField2D::DisContField2D | ( | const DisContField2D & | In, |
const SpatialDomains::MeshGraphSharedPtr & | graph2D, | ||
const std::string & | variable, | ||
const bool | SetUpJustDG = false , |
||
const bool | DeclareCoeffPhysArrays = true |
||
) |
Definition at line 191 of file DisContField2D.cpp.
References Nektar::MultiRegions::ExpList::EvaluateBoundaryConditions(), FindPeriodicEdges(), GenerateBoundaryConditionExpansion(), Nektar::MultiRegions::ExpList::GetBoundaryToElmtMap(), m_bndCondExpansions, m_boundaryEdges, m_globalBndMat, m_leftAdjacentEdges, m_locTraceToTraceMap, m_periodicBwdCopy, m_periodicEdges, m_periodicFwdCopy, m_periodicVerts, Nektar::MultiRegions::ExpList::m_session, m_trace, m_traceMap, SameTypeOfBoundaryConditions(), SetUpDG(), and Nektar::MultiRegions::ExpList::SetUpPhysNormals().
Nektar::MultiRegions::DisContField2D::DisContField2D | ( | const DisContField2D & | In, |
const bool | DeclareCoeffPhysArrays = true |
||
) |
Definition at line 71 of file DisContField2D.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and m_trace.
|
virtual |
void Nektar::MultiRegions::DisContField2D::EvaluateHDGPostProcessing | ( | Array< OneD, NekDouble > & | outarray | ) |
Evaluate HDG post-processing to increase polynomial order of solution.
This function takes the solution (assumed to be one order lower) in physical space, and postprocesses at the current polynomial order by solving the system:
where corresponds with the current solution as stored inside m_coeffs.
outarray | The resulting field . |
Definition at line 2116 of file DisContField2D.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL0, Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauMAlpha1Beta0, Nektar::StdRegions::eInvLaplacianWithUnityMean, Nektar::LibUtilities::eOrtho_A, Nektar::LibUtilities::eOrtho_B, Nektar::LibUtilities::eQuadrilateral, Nektar::LibUtilities::eTriangle, Nektar::eWrapper, Nektar::MultiRegions::ExpList::GetExpSize(), Nektar::NekVector< DataType >::GetPtr(), Nektar::MultiRegions::ExpList::m_coeff_offset, Nektar::MultiRegions::ExpList::m_coeffs, Nektar::MultiRegions::ExpList::m_offset_elmt_id, m_trace, m_traceMap, Vmath::Vadd(), and Vmath::Vcopy().
|
protected |
Determine the periodic edges and vertices for the given graph.
Note that much of this routine is the same as the three-dimensional version, which therefore has much better documentation.
bcs | Information about the boundary conditions. |
variable | Specifies the field. |
Definition at line 711 of file DisContField2D.cpp.
References ASSERTL0, Nektar::StdRegions::eBackwards, Nektar::StdRegions::eForwards, Nektar::StdRegions::eNoOrientation, Nektar::SpatialDomains::ePeriodic, Nektar::MultiRegions::ExpList::GetBoundaryCondition(), Nektar::SpatialDomains::BoundaryConditions::GetBoundaryConditions(), Nektar::SpatialDomains::BoundaryConditions::GetBoundaryRegions(), Nektar::iterator, Nektar::MultiRegions::ExpList::m_graph, m_periodicEdges, m_periodicVerts, Nektar::MultiRegions::ExpList::m_session, CellMLToNektar.cellml_metadata::p, Nektar::LibUtilities::ReduceSum, and Vmath::Vsum().
Referenced by DisContField2D().
|
protected |
This function discretises the boundary conditions by setting up a list of one-dimensional boundary expansions.
According to their boundary region, the separate segmental boundary expansions are bundled together in an object of the class MultiRegions::ExpList1D.
graph2D | A mesh, containing information about the domain and the spectral/hp element expansion. |
bcs | An entity containing information about the boundaries and boundary conditions. |
variable | An optional parameter to indicate for which variable the boundary conditions should be discretised. |
Definition at line 634 of file DisContField2D.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::SpatialDomains::eDirichlet, Nektar::SpatialDomains::ePeriodic, Nektar::MultiRegions::ExpList::GetBoundaryCondition(), Nektar::SpatialDomains::BoundaryConditions::GetBoundaryConditions(), Nektar::SpatialDomains::BoundaryConditions::GetBoundaryRegions(), m_bndCondExpansions, m_bndConditions, Nektar::MultiRegions::ExpList::m_session, and Nektar::MultiRegions::ExpList::SetUpPhysNormals().
Referenced by DisContField2D().
|
inlineprotected |
This function gets the shared point to basis.
Definition at line 108 of file DisContField2D.h.
|
inlineprotected |
This function returns the type of basis used in the dir direction.
The different types of bases implemented in the code are defined in the LibUtilities::BasisType enumeration list. As a result, the function will return one of the types of this enumeration list.
dir | the direction |
Definition at line 123 of file DisContField2D.h.
References ASSERTL1.
GlobalLinSysSharedPtr Nektar::MultiRegions::DisContField2D::GetGlobalBndLinSys | ( | const GlobalLinSysKey & | mkey | ) |
Definition at line 349 of file DisContField2D.cpp.
References ASSERTL0, ASSERTL1, Nektar::StdRegions::eHybridDGHelmBndLam, Nektar::MultiRegions::ExpList::GenGlobalBndLinSys(), Nektar::MultiRegions::GlobalLinSysKey::GetGlobalSysSolnType(), Nektar::MultiRegions::GlobalMatrixKey::GetMatrixType(), Nektar::iterator, m_globalBndMat, and m_traceMap.
Referenced by v_HelmSolve().
|
protected |
Definition at line 1268 of file DisContField2D.cpp.
References ASSERTL2, Nektar::iterator, m_boundaryEdges, Nektar::MultiRegions::ExpList::m_exp, m_periodicEdges, m_trace, and m_traceMap.
Referenced by SetUpDG(), and v_AddFwdBwdTraceIntegral().
NekDouble Nektar::MultiRegions::DisContField2D::L2_DGDeriv | ( | const int | dir, |
const Array< OneD, const NekDouble > & | soln | ||
) |
Calculate the error of the derivative using the consistent DG evaluation of .
The solution provided is of the primative variation at the quadrature points and the derivative is compared to the discrete derivative at these points, which is likely to be undesirable unless using a much higher number of quadrature points than the polynomial order used to evaluate .
Definition at line 1804 of file DisContField2D.cpp.
References Nektar::MultiRegions::ExpList::BwdTrans(), Nektar::MultiRegions::ExpList::GetExpSize(), Nektar::MultiRegions::ExpList::L2(), Nektar::MultiRegions::ExpList::m_coeff_offset, Nektar::MultiRegions::ExpList::m_coeffs, Nektar::MultiRegions::ExpList::m_ncoeffs, Nektar::MultiRegions::ExpList::m_npoints, Nektar::MultiRegions::ExpList::m_offset_elmt_id, Nektar::MultiRegions::ExpList::m_phys, m_trace, m_traceMap, Vmath::Vcopy(), and Vmath::Vsub().
|
protected |
For each boundary region, checks that the types and number of boundary expansions in that region match.
In | ContField2D to compare with. |
Definition at line 589 of file DisContField2D.cpp.
References Nektar::MultiRegions::ExpList::GetExpSize(), m_bndCondExpansions, m_bndConditions, Nektar::MultiRegions::ExpList::m_comm, and Nektar::LibUtilities::ReduceMin.
Referenced by Nektar::MultiRegions::ContField2D::ContField2D(), and DisContField2D().
|
protected |
Set up all DG member variables and maps.
Definition at line 378 of file DisContField2D.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL1, Nektar::StdRegions::eForwards, Nektar::SpatialDomains::ePeriodic, Nektar::MultiRegions::_PeriodicEntity::id, IsLeftAdjacentEdge(), Nektar::MultiRegions::_PeriodicEntity::isLocal, Nektar::iterator, m_bndCondExpansions, m_bndConditions, m_boundaryEdges, Nektar::MultiRegions::ExpList::m_exp, m_globalBndMat, Nektar::MultiRegions::ExpList::m_graph, m_leftAdjacentEdges, m_locTraceToTraceMap, m_periodicBwdCopy, m_periodicEdges, m_periodicFwdCopy, Nektar::MultiRegions::ExpList::m_session, m_trace, m_traceMap, Nektar::MultiRegions::NullExpListSharedPtr, Nektar::MultiRegions::_PeriodicEntity::orient, and Nektar::MultiRegions::ExpList::SetUpPhysNormals().
Referenced by DisContField2D(), and v_GetTrace().
|
protectedvirtual |
Add trace contributions into elemental coefficient spaces.
Given some quantity , calculate the elemental integral
and adds this to the coefficient space provided by outarray. The value of q is determined from the routine IsLeftAdjacentEdge() which if true we use Fwd else we use Bwd
Fwd | The trace quantities associated with left (fwd) adjancent elmt. |
Bwd | The trace quantities associated with right (bwd) adjacent elet. |
outarray | Resulting 2D coefficient space. |
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 1637 of file DisContField2D.cpp.
References Nektar::MultiRegions::ExpList::GetCoeff_Offset(), Nektar::MultiRegions::ExpList::GetExpSize(), Nektar::MultiRegions::ExpList::GetTrace(), IsLeftAdjacentEdge(), and m_traceMap.
|
protectedvirtual |
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 1533 of file DisContField2D.cpp.
References Nektar::MultiRegions::ExpList::GetCoeff_Offset(), Nektar::MultiRegions::ExpList::GetExpSize(), Nektar::MultiRegions::ExpList::GetTrace(), and m_traceMap.
|
protectedvirtual |
Add trace contributions into elemental coefficient spaces.
Given some quantity , which conatins this routine calculates the integral
and adds this to the coefficient space provided by outarray.
Fn | The trace quantities. |
outarray | Resulting 2D coefficient space. |
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 1577 of file DisContField2D.cpp.
References Nektar::LibUtilities::eGauss_Lagrange, Nektar::MultiRegions::ExpList::GetCoeff_Offset(), Nektar::MultiRegions::ExpList::GetExpSize(), Nektar::MultiRegions::ExpList::GetTrace(), m_locTraceToTraceMap, m_trace, and m_traceMap.
|
protectedvirtual |
Evaluates the boundary condition expansions, bndCondExpansions, given the information provided by bndConditions.
time | The time at which the boundary conditions should be evaluated. |
bndCondExpansions | List of boundary conditions. |
bndConditions | Information about the boundary conditions. |
This will only be undertaken for time dependent boundary conditions unless time == 0.0 which is the case when the method is called from the constructor.
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 2253 of file DisContField2D.cpp.
References ASSERTL0, Nektar::SpatialDomains::eDirichlet, Nektar::SpatialDomains::eNeumann, Nektar::SpatialDomains::eRobin, Nektar::LibUtilities::Equation::Evaluate(), Nektar::MultiRegions::ExpList::ExtractFileBCs(), Vmath::Fill(), Nektar::NekConstants::kNekUnsetDouble, m_bndCondExpansions, m_bndConditions, Nektar::SpatialDomains::DirichletBoundaryCondition::m_filename, Nektar::SpatialDomains::NeumannBoundaryCondition::m_filename, and Nektar::SpatialDomains::RobinBoundaryCondition::m_filename.
|
protectedvirtual |
This method extracts the trace (edges in 2D) from the field inarray and puts the values in outarray.
It assumes the field is C0 continuous so that it can overwrite the edge data when visited by the two adjacent elements.
inarray | An array containing the 2D data from which we wish to extract the edge data. |
outarray | The resulting edge information. |
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 1503 of file DisContField2D.cpp.
References ASSERTL1, Nektar::MultiRegions::ExpList::GetExpSize(), Nektar::MultiRegions::ExpList::GetPhys_Offset(), m_trace, and m_traceMap.
Referenced by v_ExtractTracePhys().
|
protectedvirtual |
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 1483 of file DisContField2D.cpp.
References ASSERTL1, Nektar::MultiRegions::ExpList::m_phys, Nektar::MultiRegions::ExpList::m_physState, and v_ExtractTracePhys().
|
protectedvirtual |
Calculates the result of the multiplication of a global matrix of type specified by mkey with a vector given by inarray.
mkey | Key representing desired matrix multiplication. |
inarray | Input vector. |
outarray | Resulting multiplication. |
Reimplemented from Nektar::MultiRegions::ExpList.
Reimplemented in Nektar::MultiRegions::ContField2D.
Definition at line 2009 of file DisContField2D.cpp.
References Nektar::eWrapper, Nektar::MultiRegions::ExpList::GetBlockMatrix(), and m_traceMap.
|
inlineprotectedvirtual |
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 268 of file DisContField2D.h.
References m_bndCondExpansions.
|
inlineprotectedvirtual |
Reimplemented from Nektar::MultiRegions::ExpList.
Reimplemented in Nektar::MultiRegions::ContField2D.
Definition at line 275 of file DisContField2D.h.
References m_bndConditions.
|
protectedvirtual |
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 1731 of file DisContField2D.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::MultiRegions::ExpList::GetBoundaryToElmtMap(), Nektar::MultiRegions::ExpList::GetCoeff_Offset(), Nektar::MultiRegions::ExpList::GetCoeffs(), Nektar::MultiRegions::ExpList::GetExp(), Nektar::MultiRegions::ExpList::GetPhys(), Nektar::MultiRegions::ExpList::GetPhys_Offset(), m_bndCondExpansions, and Vmath::Vcopy().
|
protectedvirtual |
Set up a list of element IDs and edge IDs that link to the boundary conditions.
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 1677 of file DisContField2D.cpp.
References Nektar::MultiRegions::ExpList::GetExpSize(), m_BCtoEdgMap, m_BCtoElmMap, m_bndCondExpansions, m_bndConditions, and Nektar::MultiRegions::ExpList::m_graph.
|
protectedvirtual |
This method extracts the "forward" and "backward" trace data from the array field and puts the data into output vectors Fwd and Bwd.
We first define the convention which defines "forwards" and "backwards". First an association is made between the edge of each element and its corresponding edge in the trace space using the mapping m_traceMap. The element can either be left-adjacent or right-adjacent to this trace edge (see Expansion1D::GetLeftAdjacentElementExp). Boundary edges are always left-adjacent since left-adjacency is populated first.
If the element is left-adjacent we extract the edge trace data from field into the forward trace space Fwd; otherwise, we place it in the backwards trace space Bwd. In this way, we form a unique set of trace normals since these are always extracted from left-adjacent elements.
field | is a NekDouble array which contains the 2D data from which we wish to extract the backward and forward orientated trace/edge arrays. |
Fwd | The resulting forwards space. |
Bwd | The resulting backwards space. |
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 1357 of file DisContField2D.cpp.
References ASSERTL0, Nektar::SpatialDomains::eDirichlet, Nektar::LibUtilities::eGauss_Lagrange, Nektar::SpatialDomains::eNeumann, Nektar::SpatialDomains::ePeriodic, Nektar::SpatialDomains::eRobin, Nektar::MultiRegions::ExpList::GetExpSize(), Nektar::MultiRegions::ExpList::GetPhys(), Nektar::MultiRegions::ExpList::GetPhys_Offset(), Nektar::iterator, m_bndCondExpansions, m_bndConditions, m_leftAdjacentEdges, m_locTraceToTraceMap, m_periodicBwdCopy, m_periodicFwdCopy, m_trace, m_traceMap, npts, Vmath::Vcopy(), and Vmath::Zero().
Referenced by v_GetFwdBwdTracePhys().
|
protectedvirtual |
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 1325 of file DisContField2D.cpp.
References Nektar::MultiRegions::ExpList::m_phys, and v_GetFwdBwdTracePhys().
|
inlineprotectedvirtual |
Obtain a copy of the periodic edges and vertices for this field.
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 252 of file DisContField2D.h.
References m_periodicEdges, and m_periodicVerts.
|
protectedvirtual |
Search through the edge expansions and identify which ones have Robin/Mixed type boundary conditions.
If a Robin boundary is found then store the edge ID of the boundary condition and the array of points of the physical space boundary condition which are hold the boundary condition primitive variable coefficient at the quatrature points
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 2037 of file DisContField2D.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::SpatialDomains::eRobin, Nektar::LibUtilities::Equation::Evaluate(), Nektar::MultiRegions::ExpList::GetBoundaryToElmtMap(), m_bndCondExpansions, and m_bndConditions.
|
inlinevirtual |
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 87 of file DisContField2D.h.
References m_trace, Nektar::MultiRegions::NullExpListSharedPtr, and SetUpDG().
|
inlineprotectedvirtual |
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 262 of file DisContField2D.h.
References m_traceMap.
|
protectedvirtual |
Reimplemented from Nektar::MultiRegions::ExpList.
Reimplemented in Nektar::MultiRegions::ContField2D.
Definition at line 1859 of file DisContField2D.cpp.
References Nektar::SpatialDomains::eDirichlet, Nektar::StdRegions::eHybridDGHelmBndLam, Nektar::StdRegions::eHybridDGLamToU, Nektar::StdRegions::eInvHybridDGHelmholtz, Nektar::eWrapper, Nektar::MultiRegions::ExpList::GetBlockMatrix(), Nektar::MultiRegions::ExpList::GetExpSize(), GetGlobalBndLinSys(), Nektar::MultiRegions::ExpList::GetNcoeffs(), Nektar::MultiRegions::ExpList::IProductWRTBase(), m_bndCondExpansions, m_bndConditions, Nektar::MultiRegions::ExpList::m_ncoeffs, Nektar::MultiRegions::ExpList::m_offset_elmt_id, m_trace, m_traceMap, Vmath::Neg(), Nektar::MultiRegions::NullAssemblyMapSharedPtr, Vmath::Smul(), Nektar::Transpose(), and Vmath::Zero().
|
protectedvirtual |
Reset this field, so that geometry information can be updated.
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 1783 of file DisContField2D.cpp.
References m_bndCondExpansions, and Nektar::MultiRegions::ExpList::v_Reset().
|
inlineprotectedvirtual |
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 281 of file DisContField2D.h.
|
inlineprotectedvirtual |
Reimplemented from Nektar::MultiRegions::ExpList.
Definition at line 287 of file DisContField2D.h.
References m_bndConditions.
|
protected |
Bases needed for the expansion
Definition at line 102 of file DisContField2D.h.
Definition at line 98 of file DisContField2D.h.
Referenced by v_GetBoundaryToElmtMap().
Definition at line 97 of file DisContField2D.h.
Referenced by v_GetBoundaryToElmtMap().
|
protected |
An object which contains the discretised boundary conditions.
It is an array of size equal to the number of boundary regions and consists of entries of the type MultiRegions::ExpList1D. Every entry corresponds to the one-dimensional spectral/hp expansion on a single boundary region. The values of the boundary conditions are stored as the coefficients of the one-dimensional expansion.
Definition at line 139 of file DisContField2D.h.
Referenced by Nektar::MultiRegions::ContField2D::ContField2D(), DisContField2D(), GenerateBoundaryConditionExpansion(), Nektar::MultiRegions::ContField2D::GetBndCondExpansions(), Nektar::MultiRegions::ContField2D::LaplaceSolve(), SameTypeOfBoundaryConditions(), SetUpDG(), v_EvaluateBoundaryConditions(), Nektar::MultiRegions::ContField2D::v_FillBndCondFromField(), v_GetBndCondExpansions(), v_GetBndElmtExpansion(), v_GetBoundaryToElmtMap(), v_GetFwdBwdTracePhys(), v_GetRobinBCInfo(), v_HelmSolve(), Nektar::MultiRegions::ContField2D::v_HelmSolve(), Nektar::MultiRegions::ContField2D::v_ImposeDirichletConditions(), Nektar::MultiRegions::ContField2D::v_LinearAdvectionDiffusionReactionSolve(), and v_Reset().
|
protected |
An array which contains the information about the boundary condition on the different boundary regions.
Definition at line 145 of file DisContField2D.h.
Referenced by Nektar::MultiRegions::ContField2D::ContField2D(), GenerateBoundaryConditionExpansion(), Nektar::MultiRegions::ContField2D::GetBndConditions(), Nektar::MultiRegions::ContField2D::LaplaceSolve(), SameTypeOfBoundaryConditions(), SetUpDG(), v_EvaluateBoundaryConditions(), v_GetBndConditions(), v_GetBoundaryToElmtMap(), v_GetFwdBwdTracePhys(), v_GetRobinBCInfo(), v_HelmSolve(), Nektar::MultiRegions::ContField2D::v_HelmSolve(), Nektar::MultiRegions::ContField2D::v_ImposeDirichletConditions(), Nektar::MultiRegions::ContField2D::v_LinearAdvectionDiffusionReactionSolve(), and v_UpdateBndConditions().
|
protected |
A set storing the global IDs of any boundary edges.
Definition at line 164 of file DisContField2D.h.
Referenced by DisContField2D(), IsLeftAdjacentEdge(), and SetUpDG().
|
protected |
Definition at line 159 of file DisContField2D.h.
|
protected |
Definition at line 147 of file DisContField2D.h.
Referenced by DisContField2D(), GetGlobalBndLinSys(), and SetUpDG().
|
protected |
Definition at line 189 of file DisContField2D.h.
Referenced by DisContField2D(), SetUpDG(), and v_GetFwdBwdTracePhys().
|
protected |
Map of local trace (the points at the face of the element) to the trace space discretisation
Definition at line 155 of file DisContField2D.h.
Referenced by DisContField2D(), SetUpDG(), v_AddTraceIntegral(), and v_GetFwdBwdTracePhys().
|
protected |
Definition at line 157 of file DisContField2D.h.
|
protected |
Definition at line 183 of file DisContField2D.h.
Referenced by DisContField2D(), SetUpDG(), and v_GetFwdBwdTracePhys().
|
protected |
A map which identifies pairs of periodic edges.
Definition at line 174 of file DisContField2D.h.
Referenced by Nektar::MultiRegions::ContField2D::ContField2D(), DisContField2D(), FindPeriodicEdges(), IsLeftAdjacentEdge(), SetUpDG(), and v_GetPeriodicEntities().
|
protected |
A vector indicating degress of freedom which need to be copied from forwards to backwards space in case of a periodic boundary condition.
Definition at line 182 of file DisContField2D.h.
Referenced by DisContField2D(), SetUpDG(), and v_GetFwdBwdTracePhys().
|
protected |
A map which identifies groups of periodic vertices.
Definition at line 169 of file DisContField2D.h.
Referenced by Nektar::MultiRegions::ContField2D::ContField2D(), DisContField2D(), FindPeriodicEdges(), and v_GetPeriodicEntities().
|
protected |
Definition at line 158 of file DisContField2D.h.
|
protected |
Definition at line 148 of file DisContField2D.h.
Referenced by DisContField2D(), EvaluateHDGPostProcessing(), IsLeftAdjacentEdge(), L2_DGDeriv(), SetUpDG(), v_AddTraceIntegral(), v_ExtractTracePhys(), v_GetFwdBwdTracePhys(), v_GetTrace(), and v_HelmSolve().
|
protected |
Definition at line 149 of file DisContField2D.h.
Referenced by DisContField2D(), EvaluateHDGPostProcessing(), GetGlobalBndLinSys(), IsLeftAdjacentEdge(), L2_DGDeriv(), SetUpDG(), v_AddFwdBwdTraceIntegral(), v_AddTraceIntegral(), v_ExtractTracePhys(), v_GeneralMatrixOp(), v_GetFwdBwdTracePhys(), v_GetTraceMap(), and v_HelmSolve().