Nektar++
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | List of all members
Nektar::SolverUtils::EquationSystem Class Reference

A base class for describing how to solve specific equations. More...

#include <EquationSystem.h>

Inheritance diagram for Nektar::SolverUtils::EquationSystem:
[legend]

Public Member Functions

virtual SOLVER_UTILS_EXPORT ~EquationSystem ()
 Destructor. More...
 
SOLVER_UTILS_EXPORT void InitObject (bool DeclareField=true)
 Initialises the members of this object. More...
 
SOLVER_UTILS_EXPORT void DoInitialise (bool dumpInitialConditions=true)
 Perform any initialisation necessary before solving the problem. More...
 
SOLVER_UTILS_EXPORT void DoSolve ()
 Solve the problem. More...
 
SOLVER_UTILS_EXPORT void TransCoeffToPhys ()
 Transform from coefficient to physical space. More...
 
SOLVER_UTILS_EXPORT void TransPhysToCoeff ()
 Transform from physical to coefficient space. More...
 
SOLVER_UTILS_EXPORT void Output ()
 Perform output operations after solve. More...
 
SOLVER_UTILS_EXPORT std::string GetSessionName ()
 Get Session name. More...
 
template<class T >
std::shared_ptr< T > as ()
 
SOLVER_UTILS_EXPORT void ResetSessionName (std::string newname)
 Reset Session name. More...
 
SOLVER_UTILS_EXPORT LibUtilities::SessionReaderSharedPtr GetSession ()
 Get Session name. More...
 
SOLVER_UTILS_EXPORT MultiRegions::ExpListSharedPtr GetPressure ()
 Get pressure field if available. More...
 
SOLVER_UTILS_EXPORT void ExtraFldOutput (std::vector< Array< OneD, NekDouble > > &fieldcoeffs, std::vector< std::string > &variables)
 
SOLVER_UTILS_EXPORT void PrintSummary (std::ostream &out)
 Print a summary of parameters and solver characteristics. More...
 
SOLVER_UTILS_EXPORT void SetLambda (NekDouble lambda)
 Set parameter m_lambda. More...
 
SOLVER_UTILS_EXPORT SessionFunctionSharedPtr GetFunction (std::string name, const MultiRegions::ExpListSharedPtr &field=MultiRegions::NullExpListSharedPtr, bool cache=false)
 Get a SessionFunction by name. More...
 
SOLVER_UTILS_EXPORT void SetInitialConditions (NekDouble initialtime=0.0, bool dumpInitialConditions=true, const int domain=0)
 Initialise the data in the dependent fields. More...
 
SOLVER_UTILS_EXPORT void EvaluateExactSolution (int field, Array< OneD, NekDouble > &outfield, const NekDouble time)
 Evaluates an exact solution. More...
 
SOLVER_UTILS_EXPORT NekDouble L2Error (unsigned int field, const Array< OneD, NekDouble > &exactsoln, bool Normalised=false)
 Compute the L2 error between fields and a given exact solution. More...
 
SOLVER_UTILS_EXPORT NekDouble L2Error (unsigned int field, bool Normalised=false)
 Compute the L2 error of the fields. More...
 
SOLVER_UTILS_EXPORT NekDouble LinfError (unsigned int field, const Array< OneD, NekDouble > &exactsoln=NullNekDouble1DArray)
 Linf error computation. More...
 
SOLVER_UTILS_EXPORT Array< OneD, NekDoubleErrorExtraPoints (unsigned int field)
 Compute error (L2 and L_inf) over an larger set of quadrature points return [L2 Linf]. More...
 
SOLVER_UTILS_EXPORT void Checkpoint_Output (const int n)
 Write checkpoint file of m_fields. More...
 
SOLVER_UTILS_EXPORT void Checkpoint_Output (const int n, MultiRegions::ExpListSharedPtr &field, std::vector< Array< OneD, NekDouble > > &fieldcoeffs, std::vector< std::string > &variables)
 Write checkpoint file of custom data fields. More...
 
SOLVER_UTILS_EXPORT void Checkpoint_BaseFlow (const int n)
 Write base flow file of m_fields. More...
 
SOLVER_UTILS_EXPORT void WriteFld (const std::string &outname)
 Write field data to the given filename. More...
 
SOLVER_UTILS_EXPORT void WriteFld (const std::string &outname, MultiRegions::ExpListSharedPtr &field, std::vector< Array< OneD, NekDouble > > &fieldcoeffs, std::vector< std::string > &variables)
 Write input fields to the given filename. More...
 
SOLVER_UTILS_EXPORT void ImportFld (const std::string &infile, Array< OneD, MultiRegions::ExpListSharedPtr > &pFields)
 Input field data from the given file. More...
 
SOLVER_UTILS_EXPORT void ImportFldToMultiDomains (const std::string &infile, Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const int ndomains)
 Input field data from the given file to multiple domains. More...
 
SOLVER_UTILS_EXPORT void ImportFld (const std::string &infile, std::vector< std::string > &fieldStr, Array< OneD, Array< OneD, NekDouble > > &coeffs)
 Output a field. Input field data into array from the given file. More...
 
SOLVER_UTILS_EXPORT void ImportFld (const std::string &infile, MultiRegions::ExpListSharedPtr &pField, std::string &pFieldName)
 Output a field. Input field data into ExpList from the given file. More...
 
SOLVER_UTILS_EXPORT void SessionSummary (SummaryList &vSummary)
 Write out a session summary. More...
 
SOLVER_UTILS_EXPORT Array< OneD, MultiRegions::ExpListSharedPtr > & UpdateFields ()
 
SOLVER_UTILS_EXPORT LibUtilities::FieldMetaDataMapUpdateFieldMetaDataMap ()
 Get hold of FieldInfoMap so it can be updated. More...
 
SOLVER_UTILS_EXPORT NekDouble GetFinalTime ()
 Return final time. More...
 
SOLVER_UTILS_EXPORT int GetNcoeffs ()
 
SOLVER_UTILS_EXPORT int GetNcoeffs (const int eid)
 
SOLVER_UTILS_EXPORT int GetNumExpModes ()
 
SOLVER_UTILS_EXPORT const Array< OneD, int > GetNumExpModesPerExp ()
 
SOLVER_UTILS_EXPORT int GetNvariables ()
 
SOLVER_UTILS_EXPORT const std::string GetVariable (unsigned int i)
 
SOLVER_UTILS_EXPORT int GetTraceTotPoints ()
 
SOLVER_UTILS_EXPORT int GetTraceNpoints ()
 
SOLVER_UTILS_EXPORT int GetExpSize ()
 
SOLVER_UTILS_EXPORT int GetPhys_Offset (int n)
 
SOLVER_UTILS_EXPORT int GetCoeff_Offset (int n)
 
SOLVER_UTILS_EXPORT int GetTotPoints ()
 
SOLVER_UTILS_EXPORT int GetTotPoints (int n)
 
SOLVER_UTILS_EXPORT int GetNpoints ()
 
SOLVER_UTILS_EXPORT int GetSteps ()
 
SOLVER_UTILS_EXPORT NekDouble GetTimeStep ()
 
SOLVER_UTILS_EXPORT void CopyFromPhysField (const int i, Array< OneD, NekDouble > &output)
 
SOLVER_UTILS_EXPORT void CopyToPhysField (const int i, const Array< OneD, const NekDouble > &input)
 
SOLVER_UTILS_EXPORT void SetSteps (const int steps)
 
SOLVER_UTILS_EXPORT void ZeroPhysFields ()
 
SOLVER_UTILS_EXPORT void FwdTransFields ()
 
SOLVER_UTILS_EXPORT void SetModifiedBasis (const bool modbasis)
 
SOLVER_UTILS_EXPORT int GetCheckpointNumber ()
 
SOLVER_UTILS_EXPORT void SetCheckpointNumber (int num)
 
SOLVER_UTILS_EXPORT int GetCheckpointSteps ()
 
SOLVER_UTILS_EXPORT void SetCheckpointSteps (int num)
 
SOLVER_UTILS_EXPORT int GetInfoSteps ()
 
SOLVER_UTILS_EXPORT void SetInfoSteps (int num)
 
SOLVER_UTILS_EXPORT void SetIterationNumberPIT (int num)
 
SOLVER_UTILS_EXPORT void SetWindowNumberPIT (int num)
 
SOLVER_UTILS_EXPORT Array< OneD, const Array< OneD, NekDouble > > GetTraceNormals ()
 
SOLVER_UTILS_EXPORT void SetTime (const NekDouble time)
 
SOLVER_UTILS_EXPORT void SetTimeStep (const NekDouble timestep)
 
SOLVER_UTILS_EXPORT void SetInitialStep (const int step)
 
SOLVER_UTILS_EXPORT void SetBoundaryConditions (NekDouble time)
 Evaluates the boundary conditions at the given time. More...
 
SOLVER_UTILS_EXPORT bool NegatedOp ()
 Identify if operator is negated in DoSolve. More...
 
SOLVER_UTILS_EXPORT bool ParallelInTime ()
 Check if solver use Parallel-in-Time. More...
 

Protected Types

enum  HomogeneousType { eHomogeneous1D , eHomogeneous2D , eHomogeneous3D , eNotHomogeneous }
 Parameter for homogeneous expansions. More...
 

Protected Member Functions

SOLVER_UTILS_EXPORT EquationSystem (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph)
 Initialises EquationSystem class members. More...
 
virtual SOLVER_UTILS_EXPORT void v_InitObject (bool DeclareFeld=true)
 Initialisation object for EquationSystem. More...
 
virtual SOLVER_UTILS_EXPORT void v_DoInitialise (bool dumpInitialConditions=true)
 Virtual function for initialisation implementation. More...
 
virtual SOLVER_UTILS_EXPORT void v_DoSolve ()
 Virtual function for solve implementation. More...
 
virtual SOLVER_UTILS_EXPORT NekDouble v_LinfError (unsigned int field, const Array< OneD, NekDouble > &exactsoln=NullNekDouble1DArray)
 Virtual function for the L_inf error computation between fields and a given exact solution. More...
 
virtual SOLVER_UTILS_EXPORT NekDouble v_L2Error (unsigned int field, const Array< OneD, NekDouble > &exactsoln=NullNekDouble1DArray, bool Normalised=false)
 Virtual function for the L_2 error computation between fields and a given exact solution. More...
 
virtual SOLVER_UTILS_EXPORT void v_TransCoeffToPhys ()
 Virtual function for transformation to physical space. More...
 
virtual SOLVER_UTILS_EXPORT void v_TransPhysToCoeff ()
 Virtual function for transformation to coefficient space. More...
 
virtual SOLVER_UTILS_EXPORT void v_GenerateSummary (SummaryList &l)
 Virtual function for generating summary information. More...
 
virtual SOLVER_UTILS_EXPORT void v_SetInitialConditions (NekDouble initialtime=0.0, bool dumpInitialConditions=true, const int domain=0)
 
virtual SOLVER_UTILS_EXPORT void v_EvaluateExactSolution (unsigned int field, Array< OneD, NekDouble > &outfield, const NekDouble time)
 
virtual SOLVER_UTILS_EXPORT void v_Output (void)
 
virtual SOLVER_UTILS_EXPORT MultiRegions::ExpListSharedPtr v_GetPressure (void)
 
virtual SOLVER_UTILS_EXPORT bool v_NegatedOp (void)
 Virtual function to identify if operator is negated in DoSolve. More...
 
virtual SOLVER_UTILS_EXPORT void v_ExtraFldOutput (std::vector< Array< OneD, NekDouble > > &fieldcoeffs, std::vector< std::string > &variables)
 

Protected Attributes

LibUtilities::CommSharedPtr m_comm
 Communicator. More...
 
bool m_verbose
 
LibUtilities::SessionReaderSharedPtr m_session
 The session reader. More...
 
std::map< std::string, SolverUtils::SessionFunctionSharedPtrm_sessionFunctions
 Map of known SessionFunctions. More...
 
LibUtilities::FieldIOSharedPtr m_fld
 Field input/output. More...
 
Array< OneD, MultiRegions::ExpListSharedPtrm_fields
 Array holding all dependent variables. More...
 
SpatialDomains::BoundaryConditionsSharedPtr m_boundaryConditions
 Pointer to boundary conditions object. More...
 
SpatialDomains::MeshGraphSharedPtr m_graph
 Pointer to graph defining mesh. More...
 
std::string m_sessionName
 Name of the session. More...
 
NekDouble m_time
 Current time of simulation. More...
 
int m_initialStep
 Number of the step where the simulation should begin. More...
 
NekDouble m_fintime
 Finish time of the simulation. More...
 
NekDouble m_timestep
 Time step size. More...
 
NekDouble m_lambda
 Lambda constant in real system if one required. More...
 
NekDouble m_checktime
 Time between checkpoints. More...
 
NekDouble m_lastCheckTime
 
NekDouble m_TimeIncrementFactor
 
int m_nchk
 Number of checkpoints written so far. More...
 
int m_steps
 Number of steps to take. More...
 
int m_checksteps
 Number of steps between checkpoints. More...
 
int m_infosteps
 Number of time steps between outputting status information. More...
 
int m_iterPIT = 0
 Number of parallel-in-time time iteration. More...
 
int m_windowPIT = 0
 Index of windows for parallel-in-time time iteration. More...
 
int m_spacedim
 Spatial dimension (>= expansion dim). More...
 
int m_expdim
 Expansion dimension. More...
 
bool m_singleMode
 Flag to determine if single homogeneous mode is used. More...
 
bool m_halfMode
 Flag to determine if half homogeneous mode is used. More...
 
bool m_multipleModes
 Flag to determine if use multiple homogenenous modes are used. More...
 
bool m_useFFT
 Flag to determine if FFT is used for homogeneous transform. More...
 
bool m_homogen_dealiasing
 Flag to determine if dealiasing is used for homogeneous simulations. More...
 
bool m_specHP_dealiasing
 Flag to determine if dealisising is usde for the Spectral/hp element discretisation. More...
 
enum MultiRegions::ProjectionType m_projectionType
 Type of projection; e.g continuous or discontinuous. More...
 
Array< OneD, Array< OneD, NekDouble > > m_traceNormals
 Array holding trace normals for DG simulations in the forwards direction. More...
 
Array< OneD, bool > m_checkIfSystemSingular
 Flag to indicate if the fields should be checked for singularity. More...
 
LibUtilities::FieldMetaDataMap m_fieldMetaDataMap
 Map to identify relevant solver info to dump in output fields. More...
 
Array< OneD, NekDoublem_movingFrameVelsxyz
 Moving frame of reference velocities. More...
 
Array< OneD, NekDoublem_movingFrameTheta
 Moving frame of reference angles with respect to the. More...
 
boost::numeric::ublas::matrix< NekDoublem_movingFrameProjMat
 Projection matrix for transformation between inertial and moving. More...
 
int m_NumQuadPointsError
 Number of Quadrature points used to work out the error. More...
 
enum HomogeneousType m_HomogeneousType
 
NekDouble m_LhomX
 physical length in X direction (if homogeneous) More...
 
NekDouble m_LhomY
 physical length in Y direction (if homogeneous) More...
 
NekDouble m_LhomZ
 physical length in Z direction (if homogeneous) More...
 
int m_npointsX
 number of points in X direction (if homogeneous) More...
 
int m_npointsY
 number of points in Y direction (if homogeneous) More...
 
int m_npointsZ
 number of points in Z direction (if homogeneous) More...
 
int m_HomoDirec
 number of homogenous directions More...
 

Static Protected Attributes

static std::string equationSystemTypeLookupIds []
 
static std::string projectionTypeLookupIds []
 

Private Member Functions

virtual SOLVER_UTILS_EXPORT Array< OneD, bool > v_GetSystemSingularChecks ()
 
SOLVER_UTILS_EXPORT void PrintProgressbar (const int position, const int goal) const
 

Detailed Description

A base class for describing how to solve specific equations.

This class is a base class for all solver implementations. It provides the underlying generic functionality and interface for solving equations.

To solve a steady-state equation, create a derived class from this class and reimplement the virtual functions to provide custom implementation for the problem.

To solve unsteady problems, derive from the UnsteadySystem class instead which provides general time integration.

Definition at line 76 of file EquationSystem.h.

Member Enumeration Documentation

◆ HomogeneousType

Parameter for homogeneous expansions.

Enumerator
eHomogeneous1D 
eHomogeneous2D 
eHomogeneous3D 
eNotHomogeneous 

Definition at line 446 of file EquationSystem.h.

Constructor & Destructor Documentation

◆ ~EquationSystem()

Nektar::SolverUtils::EquationSystem::~EquationSystem ( )
virtual

Destructor.

Destructor for class EquationSystem.

Definition at line 136 of file EquationSystem.cpp.

137{
138 LibUtilities::NekManager<LocalRegions::MatrixKey, DNekScalMat,
139 LocalRegions::MatrixKey::opLess>::ClearManager();
140 LibUtilities::NekManager<LocalRegions::MatrixKey, DNekScalBlkMat,
141 LocalRegions::MatrixKey::opLess>::ClearManager();
142}
NekMatrix< NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag > DNekScalBlkMat
Definition: NekTypeDefs.hpp:68
NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag > DNekScalMat

◆ EquationSystem()

Nektar::SolverUtils::EquationSystem::EquationSystem ( const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph 
)
protected

Initialises EquationSystem class members.

This constructor is protected as the objects of this class are never instantiated directly.

Parameters
pSessionThe session reader holding problem parameters.

Definition at line 114 of file EquationSystem.cpp.

117 : m_comm(pSession->GetComm()), m_session(pSession), m_graph(pGraph),
118 m_lambda(0), m_infosteps(10),
120{
121 // set up session names in fieldMetaDataMap
122 const vector<std::string> filenames = m_session->GetFilenames();
123
124 for (int i = 0; i < filenames.size(); ++i)
125 {
126 string sessionname = "SessionName";
127 sessionname += boost::lexical_cast<std::string>(i);
128 m_fieldMetaDataMap[sessionname] = filenames[i];
129 m_fieldMetaDataMap["ChkFileNum"] = boost::lexical_cast<std::string>(0);
130 }
131}
SpatialDomains::MeshGraphSharedPtr m_graph
Pointer to graph defining mesh.
LibUtilities::CommSharedPtr m_comm
Communicator.
int m_infosteps
Number of time steps between outputting status information.
NekDouble m_lambda
Lambda constant in real system if one required.
LibUtilities::SessionReaderSharedPtr m_session
The session reader.
LibUtilities::FieldMetaDataMap m_fieldMetaDataMap
Map to identify relevant solver info to dump in output fields.
static FieldMetaDataMap NullFieldMetaDataMap
Definition: FieldIO.h:53

References m_fieldMetaDataMap, and m_session.

Member Function Documentation

◆ as()

template<class T >
std::shared_ptr< T > Nektar::SolverUtils::EquationSystem::as ( )
inline

Definition at line 107 of file EquationSystem.h.

108 {
109 return std::dynamic_pointer_cast<T>(shared_from_this());
110 }

◆ Checkpoint_BaseFlow()

void Nektar::SolverUtils::EquationSystem::Checkpoint_BaseFlow ( const int  n)

Write base flow file of m_fields.

Write the n-th base flow into a .chk file

Parameters
nThe index of the base flow file.

Definition at line 1237 of file EquationSystem.cpp.

1238{
1239 std::string outname =
1240 m_sessionName + "_BaseFlow_" + boost::lexical_cast<std::string>(n);
1241
1242 WriteFld(outname + ".chk");
1243}
SOLVER_UTILS_EXPORT void WriteFld(const std::string &outname)
Write field data to the given filename.
std::string m_sessionName
Name of the session.

References m_sessionName, and WriteFld().

◆ Checkpoint_Output() [1/2]

void Nektar::SolverUtils::EquationSystem::Checkpoint_Output ( const int  n)

Write checkpoint file of m_fields.

Write the n-th checkpoint file.

Parameters
nThe index of the checkpoint file.

Definition at line 1176 of file EquationSystem.cpp.

1177{
1178 if (!ParallelInTime())
1179 {
1180 // Serial-in-time
1181 std::string outname =
1182 m_sessionName + "_" + boost::lexical_cast<std::string>(n);
1183 WriteFld(outname + ".chk");
1184 }
1185 else
1186 {
1187 // Parallel-in-time
1188 std::string paradir = m_sessionName + "_" +
1189 boost::lexical_cast<std::string>(m_iterPIT) +
1190 ".pit";
1191 if (!fs::is_directory(paradir))
1192 {
1193 fs::create_directory(paradir);
1194 }
1195 std::string outname = paradir + "/" + m_sessionName + "_" +
1196 boost::lexical_cast<std::string>(n);
1197 WriteFld(outname + ".chk");
1198 }
1199}
SOLVER_UTILS_EXPORT bool ParallelInTime()
Check if solver use Parallel-in-Time.
int m_iterPIT
Number of parallel-in-time time iteration.

References m_iterPIT, m_sessionName, ParallelInTime(), and WriteFld().

Referenced by Nektar::SolverUtils::UnsteadySystem::v_DoSolve(), Nektar::MMFAdvection::v_DoSolve(), Nektar::MMFMaxwell::v_DoSolve(), Nektar::MMFSWE::v_DoSolve(), Nektar::CoupledLinearNS::v_DoSolve(), v_SetInitialConditions(), Nektar::CompressibleFlowSystem::v_SetInitialConditions(), and Nektar::NonlinearPeregrine::v_SetInitialConditions().

◆ Checkpoint_Output() [2/2]

void Nektar::SolverUtils::EquationSystem::Checkpoint_Output ( const int  n,
MultiRegions::ExpListSharedPtr field,
std::vector< Array< OneD, NekDouble > > &  fieldcoeffs,
std::vector< std::string > &  variables 
)

Write checkpoint file of custom data fields.

Write the n-th checkpoint file.

Parameters
nThe index of the checkpoint file.

Definition at line 1205 of file EquationSystem.cpp.

1209{
1210 if (!ParallelInTime())
1211 {
1212 // Serial-in-time
1213 std::string outname =
1214 m_sessionName + "_" + boost::lexical_cast<std::string>(n);
1215 WriteFld(outname, field, fieldcoeffs, variables);
1216 }
1217 else
1218 {
1219 // Parallel-in-time
1220 std::string paradir = m_sessionName + "_" +
1221 boost::lexical_cast<std::string>(m_iterPIT) +
1222 ".pit";
1223 if (!fs::is_directory(paradir))
1224 {
1225 fs::create_directory(paradir);
1226 }
1227 std::string outname = paradir + "/" + m_sessionName + "_" +
1228 boost::lexical_cast<std::string>(n);
1229 WriteFld(outname, field, fieldcoeffs, variables);
1230 }
1231}

References m_iterPIT, m_sessionName, ParallelInTime(), and WriteFld().

◆ CopyFromPhysField()

void Nektar::SolverUtils::EquationSystem::CopyFromPhysField ( const int  i,
Array< OneD, NekDouble > &  output 
)
inline

Definition at line 795 of file EquationSystem.h.

797{
798 Vmath::Vcopy(output.size(), m_fields[i]->GetPhys(), 1, output, 1);
799}
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Array holding all dependent variables.
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1191

References m_fields, and Vmath::Vcopy().

◆ CopyToPhysField()

void Nektar::SolverUtils::EquationSystem::CopyToPhysField ( const int  i,
const Array< OneD, const NekDouble > &  input 
)
inline

Definition at line 801 of file EquationSystem.h.

803{
804 Vmath::Vcopy(input.size(), input, 1, m_fields[i]->UpdatePhys(), 1);
805}

References m_fields, and Vmath::Vcopy().

◆ DoInitialise()

void Nektar::SolverUtils::EquationSystem::DoInitialise ( bool  dumpInitialConditions = true)
inline

Perform any initialisation necessary before solving the problem.

This allows initialisation of the solver which cannot be completed during object construction (such as setting of initial conditions).

Public interface routine to virtual function implementation.

Definition at line 553 of file EquationSystem.h.

554{
555 v_DoInitialise(dumpInitialConditions);
556}
virtual SOLVER_UTILS_EXPORT void v_DoInitialise(bool dumpInitialConditions=true)
Virtual function for initialisation implementation.

References v_DoInitialise().

◆ DoSolve()

void Nektar::SolverUtils::EquationSystem::DoSolve ( void  )
inline

Solve the problem.

Performs the actual solve.

Public interface routine to virtual function implementation.

Definition at line 583 of file EquationSystem.h.

584{
585 v_DoSolve();
586}
virtual SOLVER_UTILS_EXPORT void v_DoSolve()
Virtual function for solve implementation.

References v_DoSolve().

◆ ErrorExtraPoints()

Array< OneD, NekDouble > Nektar::SolverUtils::EquationSystem::ErrorExtraPoints ( unsigned int  field)

Compute error (L2 and L_inf) over an larger set of quadrature points return [L2 Linf].

Compute the error in the L2-norm, L-inf for a larger number of quadrature points.

Parameters
fieldThe field to compare.
Returns
Error in the L2-norm and L-inf norm.

Definition at line 895 of file EquationSystem.cpp.

896{
897 int NumModes = GetNumExpModes();
898 Array<OneD, NekDouble> L2INF(2);
899
900 const LibUtilities::PointsKey PkeyT1(m_NumQuadPointsError,
902 const LibUtilities::PointsKey PkeyT2(m_NumQuadPointsError,
903 LibUtilities::eGaussRadauMAlpha1Beta0);
904 const LibUtilities::PointsKey PkeyQ1(m_NumQuadPointsError,
906 const LibUtilities::PointsKey PkeyQ2(m_NumQuadPointsError,
908 const LibUtilities::BasisKey BkeyT1(LibUtilities::eModified_A, NumModes,
909 PkeyT1);
910 const LibUtilities::BasisKey BkeyT2(LibUtilities::eModified_B, NumModes,
911 PkeyT2);
912 const LibUtilities::BasisKey BkeyQ1(LibUtilities::eModified_A, NumModes,
913 PkeyQ1);
914 const LibUtilities::BasisKey BkeyQ2(LibUtilities::eModified_A, NumModes,
915 PkeyQ2);
916
917 LibUtilities::BasisKeyVector Tkeys, Qkeys;
918
919 // make a copy of the ExpansionInfoMap
920 SpatialDomains::ExpansionInfoMap NewExpInfo = m_graph->GetExpansionInfo();
923 NewExpInfo);
924
925 // reset new graph with new keys
926 Tkeys.push_back(BkeyT1);
927 Tkeys.push_back(BkeyT2);
928 m_graph->ResetExpansionInfoToBasisKey(ExpInfo, LibUtilities::eTriangle,
929 Tkeys);
930 Qkeys.push_back(BkeyQ1);
931 Qkeys.push_back(BkeyQ2);
932 m_graph->ResetExpansionInfoToBasisKey(ExpInfo, LibUtilities::eQuadrilateral,
933 Qkeys);
934
937 NewExpInfo);
938
939 int ErrorCoordim = ErrorExp->GetCoordim(0);
940 int ErrorNq = ErrorExp->GetTotPoints();
941
942 Array<OneD, NekDouble> ErrorXc0(ErrorNq, 0.0);
943 Array<OneD, NekDouble> ErrorXc1(ErrorNq, 0.0);
944 Array<OneD, NekDouble> ErrorXc2(ErrorNq, 0.0);
945
946 switch (ErrorCoordim)
947 {
948 case 1:
949 ErrorExp->GetCoords(ErrorXc0);
950 break;
951 case 2:
952 ErrorExp->GetCoords(ErrorXc0, ErrorXc1);
953 break;
954 case 3:
955 ErrorExp->GetCoords(ErrorXc0, ErrorXc1, ErrorXc2);
956 break;
957 }
959 m_session->GetFunction("ExactSolution", field);
960
961 // Evaluate the exact solution
962 Array<OneD, NekDouble> ErrorSol(ErrorNq);
963
964 exSol->Evaluate(ErrorXc0, ErrorXc1, ErrorXc2, m_time, ErrorSol);
965
966 // Calcualte spectral/hp approximation on the quadrature points
967 // of this new expansion basis
968 ErrorExp->BwdTrans(m_fields[field]->GetCoeffs(), ErrorExp->UpdatePhys());
969
970 L2INF[0] = ErrorExp->L2(ErrorExp->GetPhys(), ErrorSol);
971 L2INF[1] = ErrorExp->Linf(ErrorExp->GetPhys(), ErrorSol);
972
973 return L2INF;
974}
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
NekDouble m_time
Current time of simulation.
int m_NumQuadPointsError
Number of Quadrature points used to work out the error.
SOLVER_UTILS_EXPORT int GetNumExpModes()
std::vector< BasisKey > BasisKeyVector
Name for a vector of BasisKeys.
std::shared_ptr< Equation > EquationSharedPtr
Definition: Equation.h:129
@ eGaussLobattoLegendre
1D Gauss-Lobatto-Legendre quadrature points
Definition: PointsType.h:53
@ eModified_B
Principle Modified Functions .
Definition: BasisType.h:51
@ eModified_A
Principle Modified Functions .
Definition: BasisType.h:50
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
std::shared_ptr< ExpansionInfoMap > ExpansionInfoMapShPtr
Definition: MeshGraph.h:145
std::map< int, ExpansionInfoShPtr > ExpansionInfoMap
Definition: MeshGraph.h:143

References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eModified_A, Nektar::LibUtilities::eModified_B, Nektar::LibUtilities::eQuadrilateral, Nektar::LibUtilities::eTriangle, GetNumExpModes(), m_fields, m_graph, m_NumQuadPointsError, m_session, and m_time.

Referenced by Nektar::MMFSWE::v_L2Error(), v_L2Error(), and v_LinfError().

◆ EvaluateExactSolution()

void Nektar::SolverUtils::EquationSystem::EvaluateExactSolution ( int  field,
Array< OneD, NekDouble > &  outfield,
const NekDouble  time 
)
inline

Evaluates an exact solution.

Definition at line 683 of file EquationSystem.h.

685{
686 v_EvaluateExactSolution(field, outfield, time);
687}
virtual SOLVER_UTILS_EXPORT void v_EvaluateExactSolution(unsigned int field, Array< OneD, NekDouble > &outfield, const NekDouble time)

References v_EvaluateExactSolution().

Referenced by Nektar::PulseWaveSystem::v_L2Error(), Nektar::MMFSWE::v_LinfError(), and Nektar::PulseWaveSystem::v_LinfError().

◆ ExtraFldOutput()

void Nektar::SolverUtils::EquationSystem::ExtraFldOutput ( std::vector< Array< OneD, NekDouble > > &  fieldcoeffs,
std::vector< std::string > &  variables 
)
inline

Append the coefficients and name of variables with solver specific extra variables

Parameters
fieldcoeffsVector with coefficients
variablesVector with name of variables

Definition at line 632 of file EquationSystem.h.

635{
636 v_ExtraFldOutput(fieldcoeffs, variables);
637}
virtual SOLVER_UTILS_EXPORT void v_ExtraFldOutput(std::vector< Array< OneD, NekDouble > > &fieldcoeffs, std::vector< std::string > &variables)

References v_ExtraFldOutput().

Referenced by WriteFld().

◆ FwdTransFields()

void Nektar::SolverUtils::EquationSystem::FwdTransFields ( void  )

FwdTrans the m_fields members

Definition at line 1162 of file EquationSystem.cpp.

1163{
1164 for (int i = 0; i < m_fields.size(); i++)
1165 {
1166 m_fields[i]->FwdTrans(m_fields[i]->GetPhys(),
1167 m_fields[i]->UpdateCoeffs());
1168 m_fields[i]->SetPhysState(false);
1169 }
1170}

References m_fields.

◆ GetCheckpointNumber()

SOLVER_UTILS_EXPORT int Nektar::SolverUtils::EquationSystem::GetCheckpointNumber ( )
inline

Definition at line 279 of file EquationSystem.h.

280 {
281 return m_nchk;
282 }
int m_nchk
Number of checkpoints written so far.

References m_nchk.

◆ GetCheckpointSteps()

SOLVER_UTILS_EXPORT int Nektar::SolverUtils::EquationSystem::GetCheckpointSteps ( )
inline

Definition at line 289 of file EquationSystem.h.

290 {
291 return m_checksteps;
292 }
int m_checksteps
Number of steps between checkpoints.

References m_checksteps.

◆ GetCoeff_Offset()

int Nektar::SolverUtils::EquationSystem::GetCoeff_Offset ( int  n)
inline

Definition at line 760 of file EquationSystem.h.

761{
762 return m_fields[0]->GetCoeff_Offset(n);
763}

References m_fields.

◆ GetExpSize()

int Nektar::SolverUtils::EquationSystem::GetExpSize ( void  )
inline

◆ GetFinalTime()

NekDouble Nektar::SolverUtils::EquationSystem::GetFinalTime ( )
inline

Return final time.

Definition at line 702 of file EquationSystem.h.

703{
704 return m_time;
705}

References m_time.

◆ GetFunction()

SessionFunctionSharedPtr Nektar::SolverUtils::EquationSystem::GetFunction ( std::string  name,
const MultiRegions::ExpListSharedPtr field = MultiRegions::NullExpListSharedPtr,
bool  cache = false 
)

Get a SessionFunction by name.

Definition at line 737 of file EquationSystem.cpp.

739{
740 MultiRegions::ExpListSharedPtr vField = field;
741 if (!field)
742 {
743 vField = m_fields[0];
744 }
745
746 if (cache)
747 {
748 if ((m_sessionFunctions.find(name) == m_sessionFunctions.end()) ||
749 (m_sessionFunctions[name]->GetSession() != m_session) ||
750 (m_sessionFunctions[name]->GetExpansion() != vField))
751 {
754 m_session, vField, name, cache);
755 }
756
757 return m_sessionFunctions[name];
758 }
759 else
760 {
762 new SessionFunction(m_session, vField, name, cache));
763 }
764}
std::map< std::string, SolverUtils::SessionFunctionSharedPtr > m_sessionFunctions
Map of known SessionFunctions.
std::shared_ptr< SessionFunction > SessionFunctionSharedPtr

References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), m_fields, m_session, m_sessionFunctions, and CellMLToNektar.pycml::name.

Referenced by Nektar::CoupledLinearNS::DefineForcingTerm(), Nektar::MMFSWE::EvaluateCoriolis(), Nektar::ShallowWaterSystem::EvaluateCoriolis(), Nektar::ShallowWaterSystem::EvaluateWaterDepth(), Nektar::SmoothedProfileMethod::ReadPhi(), Nektar::VelocityCorrectionScheme::SetUpSVV(), Nektar::SteadyAdvectionDiffusion::v_DoInitialise(), Nektar::CoupledLinearNS::v_DoInitialise(), Nektar::LinearElasticSystem::v_DoSolve(), v_EvaluateExactSolution(), Nektar::Poisson::v_GenerateSummary(), Nektar::PulseWaveSystem::v_InitObject(), Nektar::BidomainRoth::v_InitObject(), Nektar::Monodomain::v_InitObject(), Nektar::APE::v_InitObject(), Nektar::LEE::v_InitObject(), Nektar::CFLtester::v_InitObject(), Nektar::EigenValuesAdvection::v_InitObject(), Nektar::MMFAdvection::v_InitObject(), Nektar::Poisson::v_InitObject(), Nektar::Projection::v_InitObject(), Nektar::SteadyAdvectionDiffusion::v_InitObject(), Nektar::UnsteadyAdvection::v_InitObject(), Nektar::UnsteadyAdvectionDiffusion::v_InitObject(), v_L2Error(), Nektar::PulseWaveSystem::v_L2Error(), v_LinfError(), Nektar::PulseWaveSystem::v_LinfError(), Nektar::Dummy::v_PostIntegrate(), Nektar::AcousticSystem::v_PreIntegrate(), and v_SetInitialConditions().

◆ GetInfoSteps()

SOLVER_UTILS_EXPORT int Nektar::SolverUtils::EquationSystem::GetInfoSteps ( )
inline

Definition at line 299 of file EquationSystem.h.

300 {
301 return m_infosteps;
302 }

References m_infosteps.

◆ GetNcoeffs() [1/2]

int Nektar::SolverUtils::EquationSystem::GetNcoeffs ( void  )
inline

Definition at line 707 of file EquationSystem.h.

708{
709 return m_fields[0]->GetNcoeffs();
710}

References m_fields.

Referenced by Nektar::LinearSWE::AddCoriolis(), Nektar::NonlinearPeregrine::AddCoriolis(), Nektar::NonlinearSWE::AddCoriolis(), Nektar::NonlinearPeregrine::AddVariableDepth(), Nektar::NonlinearSWE::AddVariableDepth(), Nektar::CoupledLinearNS::DefineForcingTerm(), Nektar::CFLtester::DoOdeProjection(), Nektar::MMFAdvection::DoOdeProjection(), Nektar::UnsteadyAdvectionDiffusion::DoOdeProjection(), Nektar::UnsteadyDiffusion::DoOdeProjection(), Nektar::UnsteadyInviscidBurger::DoOdeProjection(), Nektar::UnsteadyReactionDiffusion::DoOdeProjection(), Nektar::LinearSWE::DoOdeProjection(), Nektar::NonlinearPeregrine::DoOdeProjection(), Nektar::NonlinearSWE::DoOdeProjection(), Nektar::MMFMaxwell::DoOdeRhs(), Nektar::MMFSWE::DoOdeRhs(), Nektar::NonlinearPeregrine::DoOdeRhs(), Nektar::CFSImplicit::DoOdeRhsCoeff(), ImportFld(), ImportFldToMultiDomains(), Nektar::CFSImplicit::MultiplyElmtInvMassPlusSource(), Nektar::VelocityCorrectionScheme::SetupFlowrate(), Nektar::CoupledLinearNS::Solve(), Nektar::CoupledLinearNS::SolveLinearNS(), Nektar::CoupledLinearNS::SolveSteadyNavierStokes(), Nektar::CoupledLinearNS::SolveUnsteadyStokesSystem(), Nektar::LEE::v_AddLinTerm(), Nektar::NavierStokesImplicitCFE::v_DoDiffusionCoeff(), Nektar::EigenValuesAdvection::v_DoSolve(), Nektar::Laplace::v_DoSolve(), Nektar::Projection::v_DoSolve(), Nektar::SteadyAdvectionDiffusion::v_DoSolve(), Nektar::AcousticSystem::v_ExtraFldOutput(), Nektar::CoupledLinearNS::v_Output(), v_SetInitialConditions(), Nektar::MMFAdvection::WeakDGDirectionalAdvection(), Nektar::MMFMaxwell::WeakDGMaxwellDirDeriv(), Nektar::MMFSWE::WeakDGSWEDirDeriv(), WriteFld(), and Nektar::PulseWaveSystem::WriteVessels().

◆ GetNcoeffs() [2/2]

int Nektar::SolverUtils::EquationSystem::GetNcoeffs ( const int  eid)
inline

Definition at line 712 of file EquationSystem.h.

713{
714 return m_fields[0]->GetNcoeffs(eid);
715}

References m_fields.

◆ GetNpoints()

int Nektar::SolverUtils::EquationSystem::GetNpoints ( void  )
inline

Definition at line 775 of file EquationSystem.h.

776{
777 return m_fields[0]->GetNpoints();
778}

References m_fields.

Referenced by Nektar::SolverUtils::UnsteadySystem::AppendOutput1D(), Nektar::MMFMaxwell::ComputeMaterialMicroWaveCloak(), Nektar::MMFMaxwell::ComputeMaterialOpticalCloak(), Nektar::MMFMaxwell::ComputeRadCloak(), Nektar::SolverUtils::UnsteadySystem::DoDummyProjection(), Nektar::CFLtester::DoOdeProjection(), Nektar::MMFAdvection::DoOdeProjection(), Nektar::UnsteadyAdvection::DoOdeProjection(), Nektar::UnsteadyAdvectionDiffusion::DoOdeProjection(), Nektar::UnsteadyDiffusion::DoOdeProjection(), Nektar::UnsteadyInviscidBurger::DoOdeProjection(), Nektar::UnsteadyViscousBurgers::DoOdeProjection(), Nektar::CompressibleFlowSystem::DoOdeProjection(), Nektar::ImageWarpingSystem::DoOdeProjection(), Nektar::MMFMaxwell::DoOdeProjection(), Nektar::LinearSWE::DoOdeProjection(), Nektar::NonlinearPeregrine::DoOdeProjection(), Nektar::NonlinearSWE::DoOdeProjection(), Nektar::CFLtester::DoOdeRhs(), Nektar::MMFAdvection::DoOdeRhs(), Nektar::UnsteadyAdvection::DoOdeRhs(), Nektar::UnsteadyAdvectionDiffusion::DoOdeRhs(), Nektar::UnsteadyInviscidBurger::DoOdeRhs(), Nektar::UnsteadyViscousBurgers::DoOdeRhs(), Nektar::CompressibleFlowSystem::DoOdeRhs(), Nektar::ImageWarpingSystem::DoOdeRhs(), Nektar::UnsteadyInviscidBurger::GetFluxVector(), Nektar::UnsteadyInviscidBurger::GetNormalVelocity(), Nektar::CFSImplicit::NumCalcRiemFluxJac(), Nektar::CoupledLinearNS::Solve(), Nektar::NavierStokesCFE::v_DoDiffusion(), Nektar::NavierStokesCFEAxisym::v_DoDiffusion(), Nektar::NavierStokesImplicitCFE::v_DoDiffusionCoeff(), Nektar::EigenValuesAdvection::v_DoSolve(), Nektar::LinearElasticSystem::v_DoSolve(), Nektar::NavierStokesCFEAxisym::v_InitObject(), Nektar::MMFSWE::v_L2Error(), v_L2Error(), Nektar::PulseWaveSystem::v_L2Error(), v_LinfError(), Nektar::PulseWaveSystem::v_LinfError(), Nektar::MMFMaxwell::WeakDGMaxwellDirDeriv(), Nektar::MMFSWE::WeakDGSWEDirDeriv(), and ZeroPhysFields().

◆ GetNumExpModes()

int Nektar::SolverUtils::EquationSystem::GetNumExpModes ( void  )
inline

Definition at line 717 of file EquationSystem.h.

718{
719 return m_graph->GetExpansionInfo()
720 .begin()
721 ->second->m_basisKeyVector[0]
722 .GetNumModes();
723}

References m_graph.

Referenced by ErrorExtraPoints().

◆ GetNumExpModesPerExp()

const Array< OneD, int > Nektar::SolverUtils::EquationSystem::GetNumExpModesPerExp ( void  )
inline

Definition at line 725 of file EquationSystem.h.

726{
727 return m_fields[0]->EvalBasisNumModesMaxPerExp();
728}

References m_fields.

Referenced by Nektar::SolverUtils::AdvectionSystem::GetElmtCFLVals().

◆ GetNvariables()

int Nektar::SolverUtils::EquationSystem::GetNvariables ( void  )
inline

Definition at line 730 of file EquationSystem.h.

731{
732 return m_session->GetVariables().size();
733}

References m_session.

Referenced by ImportFldToMultiDomains().

◆ GetPhys_Offset()

int Nektar::SolverUtils::EquationSystem::GetPhys_Offset ( int  n)
inline

Definition at line 755 of file EquationSystem.h.

756{
757 return m_fields[0]->GetPhys_Offset(n);
758}

References m_fields.

Referenced by Nektar::CFSImplicit::AddMatNSBlkDiagVol(), and Nektar::IncNavierStokes::SetRadiationBoundaryForcing().

◆ GetPressure()

MultiRegions::ExpListSharedPtr Nektar::SolverUtils::EquationSystem::GetPressure ( void  )
inline

Get pressure field if available.

Get Pressure field if available

Definition at line 620 of file EquationSystem.h.

621{
622 return v_GetPressure();
623}
virtual SOLVER_UTILS_EXPORT MultiRegions::ExpListSharedPtr v_GetPressure(void)

References v_GetPressure().

◆ GetSession()

SOLVER_UTILS_EXPORT LibUtilities::SessionReaderSharedPtr Nektar::SolverUtils::EquationSystem::GetSession ( )
inline

Get Session name.

Definition at line 119 of file EquationSystem.h.

120 {
121 return m_session;
122 }

References m_session.

◆ GetSessionName()

SOLVER_UTILS_EXPORT std::string Nektar::SolverUtils::EquationSystem::GetSessionName ( )
inline

Get Session name.

Definition at line 102 of file EquationSystem.h.

103 {
104 return m_sessionName;
105 }

References m_sessionName.

◆ GetSteps()

int Nektar::SolverUtils::EquationSystem::GetSteps ( void  )
inline

Definition at line 780 of file EquationSystem.h.

781{
782 return m_steps;
783}
int m_steps
Number of steps to take.

References m_steps.

◆ GetTimeStep()

NekDouble Nektar::SolverUtils::EquationSystem::GetTimeStep ( void  )
inline

Definition at line 785 of file EquationSystem.h.

786{
787 return m_timestep;
788}
NekDouble m_timestep
Time step size.

References m_timestep.

Referenced by Nektar::SolverUtils::UnsteadySystem::v_DoSolve().

◆ GetTotPoints() [1/2]

int Nektar::SolverUtils::EquationSystem::GetTotPoints ( void  )
inline

Definition at line 765 of file EquationSystem.h.

766{
767 return m_fields[0]->GetNpoints();
768}

References m_fields.

Referenced by Nektar::LinearSWE::AddCoriolis(), Nektar::NonlinearPeregrine::AddCoriolis(), Nektar::NonlinearSWE::AddCoriolis(), Nektar::SolverUtils::MMFSystem::AdddedtMaxwell(), Nektar::NonlinearPeregrine::AddVariableDepth(), Nektar::NonlinearSWE::AddVariableDepth(), Nektar::SolverUtils::UnsteadySystem::CheckSteadyState(), Nektar::SolverUtils::MMFSystem::Computedemdxicdote(), Nektar::MMFMaxwell::ComputeEnergyDensity(), Nektar::LinearSWE::ConservativeToPrimitive(), Nektar::MMFSWE::ConservativeToPrimitive(), Nektar::NonlinearPeregrine::ConservativeToPrimitive(), Nektar::NonlinearSWE::ConservativeToPrimitive(), Nektar::CoupledLinearNS::Continuation(), Nektar::CoupledLinearNS::DefineForcingTerm(), Nektar::SolverUtils::MMFSystem::DeriveCrossProductMF(), Nektar::AcousticSystem::DoOdeRhs(), Nektar::MMFDiffusion::DoOdeRhs(), Nektar::Dummy::DoOdeRhs(), Nektar::MMFMaxwell::DoOdeRhs(), Nektar::LinearSWE::DoOdeRhs(), Nektar::MMFSWE::DoOdeRhs(), Nektar::NonlinearPeregrine::DoOdeRhs(), Nektar::NonlinearSWE::DoOdeRhs(), Nektar::MMFMaxwell::EvaluateCoriolis(), Nektar::MMFSWE::EvaluateCoriolisForZonalFlow(), Nektar::CompressibleFlowSystem::EvaluateIsentropicVortex(), Nektar::CoupledLinearNS::EvaluateNewtonRHS(), Nektar::MMFSWE::EvaluateStandardCoriolis(), Nektar::MMFSWE::EvaluateWaterDepth(), Nektar::CompressibleFlowSystem::GetExactRinglebFlow(), Nektar::CFLtester::GetStdVelocity(), Nektar::MMFSWE::IsolatedMountainFlow(), Nektar::NonlinearPeregrine::LaitoneSolitaryWave(), Nektar::MMFDiffusion::Morphogenesis(), Nektar::CFSImplicit::MultiplyElmtInvMassPlusSource(), Nektar::MMFDiffusion::PlanePhiWave(), Nektar::LinearSWE::PrimitiveToConservative(), Nektar::MMFSWE::PrimitiveToConservative(), Nektar::NonlinearPeregrine::PrimitiveToConservative(), Nektar::NonlinearSWE::PrimitiveToConservative(), Nektar::MMFSWE::RossbyWave(), Nektar::CoupledLinearNS::SetUpCoupledMatrix(), Nektar::CoupledLinearNS::SolveSteadyNavierStokes(), Nektar::MMFSWE::SteadyZonalFlow(), Nektar::MMFDiffusion::TestCubeProblem(), Nektar::MMFDiffusion::TestPlaneProblem(), Nektar::MMFSWE::UnstableJetFlow(), Nektar::MMFSWE::UnsteadyZonalFlow(), Nektar::LEE::v_AddLinTerm(), Nektar::NavierStokesImplicitCFE::v_CalcPhysDeriv(), Nektar::LinearSWE::v_ConservativeToPrimitive(), Nektar::NonlinearPeregrine::v_ConservativeToPrimitive(), Nektar::NonlinearSWE::v_ConservativeToPrimitive(), Nektar::VCSImplicit::v_DoInitialise(), Nektar::CoupledLinearNS::v_DoInitialise(), Nektar::VCSMapping::v_DoInitialise(), Nektar::VelocityCorrectionScheme::v_DoInitialise(), Nektar::SolverUtils::UnsteadySystem::v_DoSolve(), Nektar::MMFMaxwell::v_DoSolve(), Nektar::MMFDiffusion::v_EvaluateExactSolution(), Nektar::CompressibleFlowSystem::v_GetMaxStdVelocity(), Nektar::APE::v_InitObject(), Nektar::LEE::v_InitObject(), Nektar::ShallowWaterSystem::v_InitObject(), Nektar::Dummy::v_Output(), Nektar::LinearSWE::v_PrimitiveToConservative(), Nektar::NonlinearPeregrine::v_PrimitiveToConservative(), Nektar::NonlinearSWE::v_PrimitiveToConservative(), Nektar::MMFMaxwell::v_SetInitialConditions(), Nektar::MMFSWE::v_SetInitialConditions(), Nektar::MMFDiffusion::v_SetInitialConditions(), Nektar::SolverUtils::UnsteadySystem::v_SteadyStateResidual(), Nektar::CompressibleFlowSystem::v_SteadyStateResidual(), and Nektar::NonlinearPeregrine::WCESolve().

◆ GetTotPoints() [2/2]

int Nektar::SolverUtils::EquationSystem::GetTotPoints ( int  n)
inline

Definition at line 770 of file EquationSystem.h.

771{
772 return m_fields[0]->GetTotPoints(n);
773}

References m_fields.

◆ GetTraceNormals()

SOLVER_UTILS_EXPORT Array< OneD, const Array< OneD, NekDouble > > Nektar::SolverUtils::EquationSystem::GetTraceNormals ( )
inline

Definition at line 319 of file EquationSystem.h.

320 {
321 return m_traceNormals;
322 }
Array< OneD, Array< OneD, NekDouble > > m_traceNormals
Array holding trace normals for DG simulations in the forwards direction.

References m_traceNormals.

◆ GetTraceNpoints()

int Nektar::SolverUtils::EquationSystem::GetTraceNpoints ( void  )
inline

◆ GetTraceTotPoints()

int Nektar::SolverUtils::EquationSystem::GetTraceTotPoints ( void  )
inline

Definition at line 740 of file EquationSystem.h.

741{
742 return GetTraceNpoints();
743}
SOLVER_UTILS_EXPORT int GetTraceNpoints()

References GetTraceNpoints().

Referenced by Nektar::SolverUtils::MMFSystem::AverageMaxwellFlux1D(), Nektar::SolverUtils::MMFSystem::ComputeMFtrace(), Nektar::SolverUtils::MMFSystem::ComputeNtimesF12(), Nektar::SolverUtils::MMFSystem::ComputeNtimesFz(), Nektar::SolverUtils::MMFSystem::ComputeNtimestimesdF12(), Nektar::SolverUtils::MMFSystem::ComputeNtimestimesdFz(), Nektar::MMFMaxwell::ComputeSurfaceCurrent(), Nektar::CompressibleFlowSystem::DoOdeRhs(), Nektar::NonlinearPeregrine::DoOdeRhs(), Nektar::CFSImplicit::DoOdeRhsCoeff(), Nektar::CFSImplicit::GetTraceJac(), Nektar::SolverUtils::MMFSystem::LaxFriedrichMaxwellFlux1D(), Nektar::CFSImplicit::NumCalcRiemFluxJac(), Nektar::NonlinearPeregrine::NumericalFluxConsVariables(), Nektar::NonlinearPeregrine::NumericalFluxForcing(), Nektar::SolverUtils::MMFSystem::NumericalMaxwellFluxTE(), Nektar::SolverUtils::MMFSystem::NumericalMaxwellFluxTM(), Nektar::MMFSWE::NumericalSWEFlux(), Nektar::MMFMaxwell::Printout_SurfaceCurrent(), Nektar::AcousticSystem::SetBoundaryConditions(), Nektar::CompressibleFlowSystem::SetBoundaryConditions(), Nektar::LinearSWE::SetBoundaryConditions(), Nektar::NonlinearPeregrine::SetBoundaryConditions(), Nektar::NonlinearSWE::SetBoundaryConditions(), Nektar::SolverUtils::MMFSystem::UpwindMaxwellFlux1D(), Nektar::NavierStokesCFE::v_DoDiffusion(), Nektar::NavierStokesImplicitCFE::v_DoDiffusionCoeff(), Nektar::NavierStokesCFE::v_ExtraFldOutput(), Nektar::PulseWaveSystem::v_InitObject(), Nektar::MMFSWE::WallBoundary2D(), Nektar::NonlinearPeregrine::WallBoundaryContVariables(), and Nektar::NonlinearPeregrine::WallBoundaryForcing().

◆ GetVariable()

const std::string Nektar::SolverUtils::EquationSystem::GetVariable ( unsigned int  i)
inline

Definition at line 735 of file EquationSystem.h.

736{
737 return m_session->GetVariable(i);
738}

References m_session.

◆ ImportFld() [1/3]

void Nektar::SolverUtils::EquationSystem::ImportFld ( const std::string &  infile,
Array< OneD, MultiRegions::ExpListSharedPtr > &  pFields 
)

Input field data from the given file.

Import field from infile and load into m_fields. This routine will also perform a BwdTrans to ensure data is in both the physical and coefficient storage.

Parameters
infileFilename to read.

Definition at line 1346 of file EquationSystem.cpp.

1349{
1350 std::vector<LibUtilities::FieldDefinitionsSharedPtr> FieldDef;
1351 std::vector<std::vector<NekDouble>> FieldData;
1354 field_fld->Import(infile, FieldDef, FieldData);
1355
1356 // Copy FieldData into m_fields
1357 for (int j = 0; j < pFields.size(); ++j)
1358 {
1359 Vmath::Zero(pFields[j]->GetNcoeffs(), pFields[j]->UpdateCoeffs(), 1);
1360
1361 for (int i = 0; i < FieldDef.size(); ++i)
1362 {
1363 ASSERTL1(FieldDef[i]->m_fields[j] == m_session->GetVariable(j),
1364 std::string("Order of ") + infile +
1365 std::string(" data and that defined in "
1366 "m_boundaryconditions differs"));
1367
1368 pFields[j]->ExtractDataToCoeffs(FieldDef[i], FieldData[i],
1369 FieldDef[i]->m_fields[j],
1370 pFields[j]->UpdateCoeffs());
1371 }
1372 pFields[j]->BwdTrans(pFields[j]->GetCoeffs(), pFields[j]->UpdatePhys());
1373 }
1374}
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
Definition: ErrorUtil.hpp:249
static std::shared_ptr< FieldIO > CreateForFile(const LibUtilities::SessionReaderSharedPtr session, const std::string &filename)
Construct a FieldIO object for a given input filename.
Definition: FieldIO.cpp:226
SOLVER_UTILS_EXPORT int GetNcoeffs()
std::shared_ptr< FieldIO > FieldIOSharedPtr
Definition: FieldIO.h:327
void Zero(int n, T *x, const int incx)
Zero vector.
Definition: Vmath.cpp:487

References ASSERTL1, Nektar::LibUtilities::FieldIO::CreateForFile(), GetNcoeffs(), m_fields, m_session, and Vmath::Zero().

◆ ImportFld() [2/3]

void Nektar::SolverUtils::EquationSystem::ImportFld ( const std::string &  infile,
MultiRegions::ExpListSharedPtr pField,
std::string &  pFieldName 
)

Output a field. Input field data into ExpList from the given file.

Import field from infile and load into pField. This routine will also perform a BwdTrans to ensure data is in both the physical and coefficient storage.

Definition at line 1430 of file EquationSystem.cpp.

1433{
1434 std::vector<LibUtilities::FieldDefinitionsSharedPtr> FieldDef;
1435 std::vector<std::vector<NekDouble>> FieldData;
1436
1439 field_fld->Import(infile, FieldDef, FieldData);
1440 int idx = -1;
1441
1442 Vmath::Zero(pField->GetNcoeffs(), pField->UpdateCoeffs(), 1);
1443
1444 for (int i = 0; i < FieldDef.size(); ++i)
1445 {
1446 // find the index of the required field in the file.
1447 for (int j = 0; j < FieldData.size(); ++j)
1448 {
1449 if (FieldDef[i]->m_fields[j] == pFieldName)
1450 {
1451 idx = j;
1452 }
1453 }
1454 ASSERTL1(idx >= 0, "Field " + pFieldName + " not found.");
1455
1456 pField->ExtractDataToCoeffs(FieldDef[i], FieldData[i],
1457 FieldDef[i]->m_fields[idx],
1458 pField->UpdateCoeffs());
1459 }
1460 pField->BwdTrans(pField->GetCoeffs(), pField->UpdatePhys());
1461}

References ASSERTL1, Nektar::LibUtilities::FieldIO::CreateForFile(), m_fields, m_session, and Vmath::Zero().

◆ ImportFld() [3/3]

void Nektar::SolverUtils::EquationSystem::ImportFld ( const std::string &  infile,
std::vector< std::string > &  fieldStr,
Array< OneD, Array< OneD, NekDouble > > &  coeffs 
)

Output a field. Input field data into array from the given file.

Import field from infile and load into the array coeffs.

Parameters
infileFilename to read.
fieldStran array of string identifying fields to be imported
coeffsarray of array of coefficients to store imported data

Definition at line 1470 of file EquationSystem.cpp.

1473{
1474
1475 ASSERTL0(fieldStr.size() <= coeffs.size(),
1476 "length of fieldstr should be the same as coeffs");
1477
1478 std::vector<LibUtilities::FieldDefinitionsSharedPtr> FieldDef;
1479 std::vector<std::vector<NekDouble>> FieldData;
1480
1483 field_fld->Import(infile, FieldDef, FieldData);
1484
1485 // Copy FieldData into m_fields
1486 for (int j = 0; j < fieldStr.size(); ++j)
1487 {
1488 Vmath::Zero(coeffs[j].size(), coeffs[j], 1);
1489 for (int i = 0; i < FieldDef.size(); ++i)
1490 {
1491 m_fields[0]->ExtractDataToCoeffs(FieldDef[i], FieldData[i],
1492 fieldStr[j], coeffs[j]);
1493 }
1494 }
1495}
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:215

References ASSERTL0, Nektar::LibUtilities::FieldIO::CreateForFile(), m_fields, m_session, and Vmath::Zero().

◆ ImportFldToMultiDomains()

void Nektar::SolverUtils::EquationSystem::ImportFldToMultiDomains ( const std::string &  infile,
Array< OneD, MultiRegions::ExpListSharedPtr > &  pFields,
const int  ndomains 
)

Input field data from the given file to multiple domains.

Import field from infile and load into m_fields. This routine will also perform a BwdTrans to ensure data is in both the physical and coefficient storage.

Parameters
infileFilename to read. If optionan ndomains is specified it assumes we loop over nodmains for each nvariables.

Definition at line 1384 of file EquationSystem.cpp.

1387{
1388 std::vector<LibUtilities::FieldDefinitionsSharedPtr> FieldDef;
1389 std::vector<std::vector<NekDouble>> FieldData;
1390
1391 LibUtilities::Import(infile, FieldDef, FieldData);
1392
1393 int nvariables = GetNvariables();
1394
1395 ASSERTL0(
1396 ndomains * nvariables == pFields.size(),
1397 "Number of fields does not match the number of variables and domains");
1398
1399 // Copy FieldData into m_fields
1400 for (int j = 0; j < ndomains; ++j)
1401 {
1402 for (int i = 0; i < nvariables; ++i)
1403 {
1404 Vmath::Zero(pFields[j * nvariables + i]->GetNcoeffs(),
1405 pFields[j * nvariables + i]->UpdateCoeffs(), 1);
1406
1407 for (int n = 0; n < FieldDef.size(); ++n)
1408 {
1409 ASSERTL1(FieldDef[n]->m_fields[i] == m_session->GetVariable(i),
1410 std::string("Order of ") + infile +
1411 std::string(" data and that defined in "
1412 "m_boundaryconditions differs"));
1413
1414 pFields[j * nvariables + i]->ExtractDataToCoeffs(
1415 FieldDef[n], FieldData[n], FieldDef[n]->m_fields[i],
1416 pFields[j * nvariables + i]->UpdateCoeffs());
1417 }
1418 pFields[j * nvariables + i]->BwdTrans(
1419 pFields[j * nvariables + i]->GetCoeffs(),
1420 pFields[j * nvariables + i]->UpdatePhys());
1421 }
1422 }
1423}
SOLVER_UTILS_EXPORT int GetNvariables()
void Import(const std::string &infilename, std::vector< FieldDefinitionsSharedPtr > &fielddefs, std::vector< std::vector< NekDouble > > &fielddata, FieldMetaDataMap &fieldinfomap, const Array< OneD, int > &ElementIDs)
This function allows for data to be imported from an FLD file when a session and/or communicator is n...
Definition: FieldIO.cpp:290

References ASSERTL0, ASSERTL1, GetNcoeffs(), GetNvariables(), Nektar::LibUtilities::Import(), m_fields, m_session, and Vmath::Zero().

◆ InitObject()

void Nektar::SolverUtils::EquationSystem::InitObject ( bool  DeclareField = true)
inline

Initialises the members of this object.

This is the second part of the two-phase initialisation process. Calls to virtual functions will correctly resolve to the derived class during this phase of the construction.

Definition at line 542 of file EquationSystem.h.

543{
544 v_InitObject(DeclareField);
545}
virtual SOLVER_UTILS_EXPORT void v_InitObject(bool DeclareFeld=true)
Initialisation object for EquationSystem.

References v_InitObject().

◆ L2Error() [1/2]

SOLVER_UTILS_EXPORT NekDouble Nektar::SolverUtils::EquationSystem::L2Error ( unsigned int  field,
bool  Normalised = false 
)
inline

Compute the L2 error of the fields.

Definition at line 160 of file EquationSystem.h.

162 {
163 return L2Error(field, NullNekDouble1DArray, Normalised);
164 }
SOLVER_UTILS_EXPORT NekDouble L2Error(unsigned int field, const Array< OneD, NekDouble > &exactsoln, bool Normalised=false)
Compute the L2 error between fields and a given exact solution.
static Array< OneD, NekDouble > NullNekDouble1DArray

References L2Error(), and Nektar::NullNekDouble1DArray.

◆ L2Error() [2/2]

NekDouble Nektar::SolverUtils::EquationSystem::L2Error ( unsigned int  field,
const Array< OneD, NekDouble > &  exactsoln,
bool  Normalised = false 
)
inline

Compute the L2 error between fields and a given exact solution.

L_2 Error computation Public interface routine to virtual function implementation.

Definition at line 610 of file EquationSystem.h.

613{
614 return v_L2Error(field, exactsoln, Normalised);
615}
virtual SOLVER_UTILS_EXPORT NekDouble v_L2Error(unsigned int field, const Array< OneD, NekDouble > &exactsoln=NullNekDouble1DArray, bool Normalised=false)
Virtual function for the L_2 error computation between fields and a given exact solution.

References v_L2Error().

Referenced by L2Error().

◆ LinfError()

NekDouble Nektar::SolverUtils::EquationSystem::LinfError ( unsigned int  field,
const Array< OneD, NekDouble > &  exactsoln = NullNekDouble1DArray 
)
inline

Linf error computation.

L_inf Error computation Public interface routine to virtual function implementation.

Definition at line 600 of file EquationSystem.h.

602{
603 return v_LinfError(field, exactsoln);
604}
virtual SOLVER_UTILS_EXPORT NekDouble v_LinfError(unsigned int field, const Array< OneD, NekDouble > &exactsoln=NullNekDouble1DArray)
Virtual function for the L_inf error computation between fields and a given exact solution.

References v_LinfError().

Referenced by Nektar::MMFSWE::v_LinfError().

◆ NegatedOp()

bool Nektar::SolverUtils::EquationSystem::NegatedOp ( void  )
inline

Identify if operator is negated in DoSolve.

Definition at line 690 of file EquationSystem.h.

691{
692 return v_NegatedOp();
693}
virtual SOLVER_UTILS_EXPORT bool v_NegatedOp(void)
Virtual function to identify if operator is negated in DoSolve.

References v_NegatedOp().

◆ Output()

void Nektar::SolverUtils::EquationSystem::Output ( void  )
inline

Perform output operations after solve.

Perform output operations after solve.

Definition at line 591 of file EquationSystem.h.

592{
593 v_Output();
594}
virtual SOLVER_UTILS_EXPORT void v_Output(void)

References v_Output().

◆ ParallelInTime()

SOLVER_UTILS_EXPORT bool Nektar::SolverUtils::EquationSystem::ParallelInTime ( )
inline

◆ PrintProgressbar()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::EquationSystem::PrintProgressbar ( const int  position,
const int  goal 
) const
inlineprivate

Definition at line 530 of file EquationSystem.h.

532 {
533 LibUtilities::PrintProgressbar(position, goal, "Interpolating");
534 }
int PrintProgressbar(const int position, const int goal, const std::string message, int lastprogress=-1)
Prints a progressbar.
Definition: Progressbar.hpp:67

References Nektar::LibUtilities::PrintProgressbar().

◆ PrintSummary()

void Nektar::SolverUtils::EquationSystem::PrintSummary ( std::ostream &  out)
inline

Print a summary of parameters and solver characteristics.

Prints a summary of variables and problem parameters.

Public interface routine to virtual function implementation.

Parameters
outThe ostream object to write to.

Definition at line 646 of file EquationSystem.h.

647{
648 if (m_session->GetComm()->GetRank() == 0)
649 {
650 std::vector<std::pair<std::string, std::string>> vSummary;
651 v_GenerateSummary(vSummary);
652
653 out << "==============================================================="
654 "========"
655 << std::endl
656 << std::flush;
657 for (auto &x : vSummary)
658 {
659 out << "\t";
660 out.width(20);
661 out << x.first << ": " << x.second << std::endl << std::flush;
662 }
663 out << "==============================================================="
664 "========"
665 << std::endl
666 << std::flush;
667 }
668}
virtual SOLVER_UTILS_EXPORT void v_GenerateSummary(SummaryList &l)
Virtual function for generating summary information.

References m_session, and v_GenerateSummary().

◆ ResetSessionName()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::EquationSystem::ResetSessionName ( std::string  newname)
inline

Reset Session name.

Definition at line 113 of file EquationSystem.h.

114 {
115 m_sessionName = newname;
116 }

References m_sessionName.

◆ SessionSummary()

void Nektar::SolverUtils::EquationSystem::SessionSummary ( SummaryList s)

Write out a session summary.

Write out a summary of the session data.

Parameters
outOutput stream to write data to.

Definition at line 1501 of file EquationSystem.cpp.

1502{
1503 AddSummaryItem(s, "EquationType", m_session->GetSolverInfo("EQTYPE"));
1504 AddSummaryItem(s, "Session Name", m_sessionName);
1505 AddSummaryItem(s, "Spatial Dim.", m_spacedim);
1506 AddSummaryItem(s, "Max SEM Exp. Order",
1507 m_fields[0]->EvalBasisNumModesMax());
1508
1509 if (m_session->GetComm()->GetSize() > 1)
1510 {
1511 AddSummaryItem(s, "Num. Processes", m_session->GetComm()->GetSize());
1512 }
1513
1515 {
1516 AddSummaryItem(s, "Quasi-3D", "Homogeneous in z-direction");
1517 AddSummaryItem(s, "Expansion Dim.", m_expdim + 1);
1518 AddSummaryItem(s, "Num. Hom. Modes (z)", m_npointsZ);
1519 AddSummaryItem(s, "Hom. length (LZ)", m_LhomZ);
1520 AddSummaryItem(s, "FFT Type", m_useFFT ? "FFTW" : "MVM");
1521 if (m_halfMode)
1522 {
1523 AddSummaryItem(s, "ModeType", "Half Mode");
1524 }
1525 else if (m_singleMode)
1526 {
1527 AddSummaryItem(s, "ModeType", "Single Mode");
1528 }
1529 else if (m_multipleModes)
1530 {
1531 AddSummaryItem(s, "ModeType", "Multiple Modes");
1532 }
1533 }
1535 {
1536 AddSummaryItem(s, "Quasi-3D", "Homogeneous in yz-plane");
1537 AddSummaryItem(s, "Expansion Dim.", m_expdim + 2);
1538 AddSummaryItem(s, "Num. Hom. Modes (y)", m_npointsY);
1539 AddSummaryItem(s, "Num. Hom. Modes (z)", m_npointsZ);
1540 AddSummaryItem(s, "Hom. length (LY)", m_LhomY);
1541 AddSummaryItem(s, "Hom. length (LZ)", m_LhomZ);
1542 AddSummaryItem(s, "FFT Type", m_useFFT ? "FFTW" : "MVM");
1543 }
1544 else
1545 {
1546 AddSummaryItem(s, "Expansion Dim.", m_expdim);
1547 }
1548
1549 if (m_session->DefinesSolverInfo("UpwindType"))
1550 {
1551 AddSummaryItem(s, "Riemann Solver",
1552 m_session->GetSolverInfo("UpwindType"));
1553 }
1554
1555 if (m_session->DefinesSolverInfo("AdvectionType"))
1556 {
1557 std::string AdvectionType;
1558 AdvectionType = m_session->GetSolverInfo("AdvectionType");
1560 s, "Advection Type",
1561 GetAdvectionFactory().GetClassDescription(AdvectionType));
1562 }
1563
1565 {
1566 AddSummaryItem(s, "Projection Type", "Continuous Galerkin");
1567 }
1569 {
1570 AddSummaryItem(s, "Projection Type", "Discontinuous Galerkin");
1571 }
1573 {
1574 AddSummaryItem(s, "Projection Type",
1575 "Mixed Continuous Galerkin and Discontinuous");
1576 }
1577
1578 if (m_session->DefinesSolverInfo("DiffusionType"))
1579 {
1580 std::string DiffusionType;
1581 DiffusionType = m_session->GetSolverInfo("DiffusionType");
1583 s, "Diffusion Type",
1584 GetDiffusionFactory().GetClassDescription(DiffusionType));
1585 }
1586}
int m_spacedim
Spatial dimension (>= expansion dim).
bool m_useFFT
Flag to determine if FFT is used for homogeneous transform.
int m_expdim
Expansion dimension.
bool m_multipleModes
Flag to determine if use multiple homogenenous modes are used.
int m_npointsZ
number of points in Z direction (if homogeneous)
NekDouble m_LhomY
physical length in Y direction (if homogeneous)
int m_npointsY
number of points in Y direction (if homogeneous)
bool m_singleMode
Flag to determine if single homogeneous mode is used.
enum HomogeneousType m_HomogeneousType
enum MultiRegions::ProjectionType m_projectionType
Type of projection; e.g continuous or discontinuous.
NekDouble m_LhomZ
physical length in Z direction (if homogeneous)
bool m_halfMode
Flag to determine if half homogeneous mode is used.
AdvectionFactory & GetAdvectionFactory()
Gets the factory for initialising advection objects.
Definition: Advection.cpp:47
DiffusionFactory & GetDiffusionFactory()
Definition: Diffusion.cpp:41
void AddSummaryItem(SummaryList &l, const std::string &name, const std::string &value)
Adds a summary item to the summary info list.
Definition: Misc.cpp:49

References Nektar::SolverUtils::AddSummaryItem(), Nektar::MultiRegions::eDiscontinuous, Nektar::MultiRegions::eGalerkin, eHomogeneous1D, eHomogeneous2D, Nektar::MultiRegions::eMixed_CG_Discontinuous, Nektar::SolverUtils::GetAdvectionFactory(), Nektar::SolverUtils::GetDiffusionFactory(), m_expdim, m_fields, m_halfMode, m_HomogeneousType, m_LhomY, m_LhomZ, m_multipleModes, m_npointsY, m_npointsZ, m_projectionType, m_session, m_sessionName, m_singleMode, m_spacedim, and m_useFFT.

Referenced by Nektar::Laplace::v_GenerateSummary(), Nektar::Projection::v_GenerateSummary(), Nektar::LinearElasticSystem::v_GenerateSummary(), and v_GenerateSummary().

◆ SetBoundaryConditions()

void Nektar::SolverUtils::EquationSystem::SetBoundaryConditions ( NekDouble  time)

◆ SetCheckpointNumber()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::EquationSystem::SetCheckpointNumber ( int  num)
inline

Definition at line 284 of file EquationSystem.h.

285 {
286 m_nchk = num;
287 }

References m_nchk.

◆ SetCheckpointSteps()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::EquationSystem::SetCheckpointSteps ( int  num)
inline

Definition at line 294 of file EquationSystem.h.

295 {
296 m_checksteps = num;
297 }

References m_checksteps.

◆ SetInfoSteps()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::EquationSystem::SetInfoSteps ( int  num)
inline

Definition at line 304 of file EquationSystem.h.

305 {
306 m_infosteps = num;
307 }

References m_infosteps.

◆ SetInitialConditions()

void Nektar::SolverUtils::EquationSystem::SetInitialConditions ( NekDouble  initialtime = 0.0,
bool  dumpInitialConditions = true,
const int  domain = 0 
)
inline

Initialise the data in the dependent fields.

Definition at line 675 of file EquationSystem.h.

678{
679 v_SetInitialConditions(initialtime, dumpInitialConditions, domain);
680}
virtual SOLVER_UTILS_EXPORT void v_SetInitialConditions(NekDouble initialtime=0.0, bool dumpInitialConditions=true, const int domain=0)

References v_SetInitialConditions().

Referenced by main(), Nektar::PulseWaveSystem::v_DoInitialise(), Nektar::MMFSWE::v_DoInitialise(), Nektar::SolverUtils::UnsteadySystem::v_DoInitialise(), and Nektar::CoupledLinearNS::v_DoInitialise().

◆ SetInitialStep()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::EquationSystem::SetInitialStep ( const int  step)
inline

Definition at line 334 of file EquationSystem.h.

335 {
336 m_initialStep = step;
337 }
int m_initialStep
Number of the step where the simulation should begin.

References m_initialStep.

◆ SetIterationNumberPIT()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::EquationSystem::SetIterationNumberPIT ( int  num)
inline

Definition at line 309 of file EquationSystem.h.

310 {
311 m_iterPIT = num;
312 }

References m_iterPIT.

◆ SetLambda()

void Nektar::SolverUtils::EquationSystem::SetLambda ( NekDouble  lambda)
inline

Set parameter m_lambda.

Definition at line 670 of file EquationSystem.h.

671{
672 m_lambda = lambda;
673}

References m_lambda.

◆ SetModifiedBasis()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::EquationSystem::SetModifiedBasis ( const bool  modbasis)
inline

◆ SetSteps()

void Nektar::SolverUtils::EquationSystem::SetSteps ( const int  steps)
inline

Definition at line 790 of file EquationSystem.h.

791{
792 m_steps = steps;
793}

References m_steps.

◆ SetTime()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::EquationSystem::SetTime ( const NekDouble  time)
inline

Definition at line 324 of file EquationSystem.h.

325 {
326 m_time = time;
327 }

References m_time.

◆ SetTimeStep()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::EquationSystem::SetTimeStep ( const NekDouble  timestep)
inline

Definition at line 329 of file EquationSystem.h.

330 {
331 m_timestep = timestep;
332 }

References m_timestep.

◆ SetWindowNumberPIT()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::EquationSystem::SetWindowNumberPIT ( int  num)
inline

Definition at line 314 of file EquationSystem.h.

315 {
316 m_windowPIT = num;
317 }
int m_windowPIT
Index of windows for parallel-in-time time iteration.

References m_windowPIT.

◆ TransCoeffToPhys()

void Nektar::SolverUtils::EquationSystem::TransCoeffToPhys ( void  )
inline

Transform from coefficient to physical space.

Performs the transformation from coefficient to physical space.

Public interface routine to virtual function implementation.

Definition at line 563 of file EquationSystem.h.

564{
566}
virtual SOLVER_UTILS_EXPORT void v_TransCoeffToPhys()
Virtual function for transformation to physical space.

References v_TransCoeffToPhys().

◆ TransPhysToCoeff()

void Nektar::SolverUtils::EquationSystem::TransPhysToCoeff ( void  )
inline

Transform from physical to coefficient space.

Performs the transformation from physical to coefficient space.

Public interface routine to virtual function implementation.

Definition at line 573 of file EquationSystem.h.

574{
576}
virtual SOLVER_UTILS_EXPORT void v_TransPhysToCoeff()
Virtual function for transformation to coefficient space.

References v_TransPhysToCoeff().

◆ UpdateFieldMetaDataMap()

SOLVER_UTILS_EXPORT LibUtilities::FieldMetaDataMap & Nektar::SolverUtils::EquationSystem::UpdateFieldMetaDataMap ( )
inline

Get hold of FieldInfoMap so it can be updated.

◆ UpdateFields()

Array< OneD, MultiRegions::ExpListSharedPtr > & Nektar::SolverUtils::EquationSystem::UpdateFields ( void  )
inline

Definition at line 696 of file EquationSystem.h.

697{
698 return m_fields;
699}

References m_fields.

◆ v_DoInitialise()

void Nektar::SolverUtils::EquationSystem::v_DoInitialise ( bool  dumpInitialConditions = true)
protectedvirtual

Virtual function for initialisation implementation.

By default, nothing needs initialising at the EquationSystem level.

Reimplemented in Nektar::VCSImplicit, Nektar::EigenValuesAdvection, Nektar::SteadyAdvectionDiffusion, Nektar::PulseWaveSystem, Nektar::MMFSWE, Nektar::SolverUtils::UnsteadySystem, Nektar::CoupledLinearNS, Nektar::VCSMapping, and Nektar::VelocityCorrectionScheme.

Definition at line 1079 of file EquationSystem.cpp.

1080{
1081 boost::ignore_unused(dumpInitialConditions);
1082}

Referenced by DoInitialise().

◆ v_DoSolve()

void Nektar::SolverUtils::EquationSystem::v_DoSolve ( void  )
protectedvirtual

◆ v_EvaluateExactSolution()

void Nektar::SolverUtils::EquationSystem::v_EvaluateExactSolution ( unsigned int  field,
Array< OneD, NekDouble > &  outfield,
const NekDouble  time 
)
protectedvirtual

Reimplemented in Nektar::MMFAdvection, Nektar::MMFDiffusion, Nektar::MMFMaxwell, Nektar::MMFSWE, and Nektar::CompressibleFlowSystem.

Definition at line 1062 of file EquationSystem.cpp.

1065{
1066 ASSERTL0(outfield.size() == m_fields[field]->GetNpoints(),
1067 "ExactSolution array size mismatch.");
1068 Vmath::Zero(outfield.size(), outfield, 1);
1069 if (m_session->DefinesFunction("ExactSolution"))
1070 {
1071 GetFunction("ExactSolution")
1072 ->Evaluate(m_session->GetVariable(field), outfield, time);
1073 }
1074}
SOLVER_UTILS_EXPORT SessionFunctionSharedPtr GetFunction(std::string name, const MultiRegions::ExpListSharedPtr &field=MultiRegions::NullExpListSharedPtr, bool cache=false)
Get a SessionFunction by name.

References ASSERTL0, GetFunction(), m_fields, m_session, and Vmath::Zero().

Referenced by EvaluateExactSolution(), Nektar::MMFDiffusion::v_EvaluateExactSolution(), and Nektar::CompressibleFlowSystem::v_EvaluateExactSolution().

◆ v_ExtraFldOutput()

void Nektar::SolverUtils::EquationSystem::v_ExtraFldOutput ( std::vector< Array< OneD, NekDouble > > &  fieldcoeffs,
std::vector< std::string > &  variables 
)
protectedvirtual

Reimplemented in Nektar::AcousticSystem, Nektar::CompressibleFlowSystem, Nektar::NavierStokesCFE, and Nektar::LinearElasticSystem.

Definition at line 1609 of file EquationSystem.cpp.

1612{
1613 boost::ignore_unused(fieldcoeffs, variables);
1614}

Referenced by ExtraFldOutput().

◆ v_GenerateSummary()

void Nektar::SolverUtils::EquationSystem::v_GenerateSummary ( SummaryList l)
protectedvirtual

◆ v_GetPressure()

MultiRegions::ExpListSharedPtr Nektar::SolverUtils::EquationSystem::v_GetPressure ( void  )
protectedvirtual

Reimplemented in Nektar::CompressibleFlowSystem, and Nektar::IncNavierStokes.

Definition at line 1599 of file EquationSystem.cpp.

1600{
1601 ASSERTL0(false, "This function is not valid for the Base class");
1603 return null;
1604}

References ASSERTL0.

Referenced by GetPressure().

◆ v_GetSystemSingularChecks()

Array< OneD, bool > Nektar::SolverUtils::EquationSystem::v_GetSystemSingularChecks ( )
privatevirtual

Reimplemented in Nektar::Helmholtz, Nektar::Laplace, Nektar::Poisson, and Nektar::VelocityCorrectionScheme.

Definition at line 1591 of file EquationSystem.cpp.

1592{
1593 return Array<OneD, bool>(m_session->GetVariables().size(), false);
1594}

References m_session.

Referenced by v_InitObject().

◆ v_InitObject()

void Nektar::SolverUtils::EquationSystem::v_InitObject ( bool  DeclareFeld = true)
protectedvirtual

Initialisation object for EquationSystem.

Continuous field

Setting up the normals

Setting up the normals

Reimplemented in Nektar::PulseWavePropagation, Nektar::PulseWaveSystem, Nektar::SolverUtils::AdvectionSystem, Nektar::SolverUtils::UnsteadySystem, Nektar::Bidomain, Nektar::BidomainRoth, Nektar::Monodomain, Nektar::NavierStokesCFE, Nektar::MMFDiffusion, Nektar::ImageWarpingSystem, Nektar::CoupledLinearNS, Nektar::IncNavierStokes, Nektar::SmoothedProfileMethod, Nektar::VCSMapping, Nektar::VelocityCorrectionScheme, Nektar::PulseWaveSystemOutput, Nektar::AcousticSystem, Nektar::APE, Nektar::LEE, Nektar::CFLtester, Nektar::EigenValuesAdvection, Nektar::Helmholtz, Nektar::Laplace, Nektar::MMFAdvection, Nektar::Poisson, Nektar::Projection, Nektar::SteadyAdvectionDiffusion, Nektar::SteadyAdvectionDiffusionReaction, Nektar::UnsteadyAdvection, Nektar::UnsteadyAdvectionDiffusion, Nektar::UnsteadyDiffusion, Nektar::UnsteadyInviscidBurger, Nektar::UnsteadyReactionDiffusion, Nektar::UnsteadyViscousBurgers, Nektar::CompressibleFlowSystem, Nektar::CFSImplicit, Nektar::EulerCFE, Nektar::EulerImplicitCFE, Nektar::NavierStokesCFEAxisym, Nektar::NavierStokesImplicitCFE, Nektar::Dummy, Nektar::IterativeElasticSystem, Nektar::LinearElasticSystem, Nektar::MMFMaxwell, Nektar::LinearSWE, Nektar::MMFSWE, Nektar::NonlinearPeregrine, Nektar::NonlinearSWE, and Nektar::ShallowWaterSystem.

Definition at line 147 of file EquationSystem.cpp.

148{
149 // Save the basename of input file name for output details
150 m_sessionName = m_session->GetSessionName();
151
152 // Instantiate a field reader/writer
154
155 // Also read and store the boundary conditions
159
160 // Set space dimension for use in class
161 m_spacedim = m_graph->GetSpaceDimension();
162
163 // Setting parameteres for homogenous problems
164 m_HomoDirec = 0;
165 m_useFFT = false;
166 m_homogen_dealiasing = false;
167 m_singleMode = false;
168 m_halfMode = false;
169 m_multipleModes = false;
171
172 m_verbose = m_session->DefinesCmdLineArgument("verbose");
173
174 if (m_session->DefinesSolverInfo("HOMOGENEOUS"))
175 {
176 std::string HomoStr = m_session->GetSolverInfo("HOMOGENEOUS");
177 m_spacedim = 3;
178
179 if ((HomoStr == "HOMOGENEOUS1D") || (HomoStr == "Homogeneous1D") ||
180 (HomoStr == "1D") || (HomoStr == "Homo1D"))
181 {
183 m_session->LoadParameter("LZ", m_LhomZ);
184 m_HomoDirec = 1;
185
186 if (m_session->DefinesSolverInfo("ModeType"))
187 {
188 m_session->MatchSolverInfo("ModeType", "SingleMode",
189 m_singleMode, false);
190 m_session->MatchSolverInfo("ModeType", "HalfMode", m_halfMode,
191 false);
192 m_session->MatchSolverInfo("ModeType", "MultipleModes",
193 m_multipleModes, false);
194 }
195
196 // Stability Analysis flags
197 if (m_session->DefinesSolverInfo("ModeType"))
198 {
199 if (m_singleMode)
200 {
201 m_npointsZ = 2;
202 }
203 else if (m_halfMode)
204 {
205 m_npointsZ = 1;
206 }
207 else if (m_multipleModes)
208 {
209 m_npointsZ = m_session->GetParameter("HomModesZ");
210 }
211 else
212 {
213 ASSERTL0(false, "SolverInfo ModeType not valid");
214 }
215 }
216 else
217 {
218 m_npointsZ = m_session->GetParameter("HomModesZ");
219 }
220 }
221
222 if ((HomoStr == "HOMOGENEOUS2D") || (HomoStr == "Homogeneous2D") ||
223 (HomoStr == "2D") || (HomoStr == "Homo2D"))
224 {
226 m_session->LoadParameter("HomModesY", m_npointsY);
227 m_session->LoadParameter("LY", m_LhomY);
228 m_session->LoadParameter("HomModesZ", m_npointsZ);
229 m_session->LoadParameter("LZ", m_LhomZ);
230 m_HomoDirec = 2;
231 }
232
233 if ((HomoStr == "HOMOGENEOUS3D") || (HomoStr == "Homogeneous3D") ||
234 (HomoStr == "3D") || (HomoStr == "Homo3D"))
235 {
237 m_session->LoadParameter("HomModesY", m_npointsY);
238 m_session->LoadParameter("LY", m_LhomY);
239 m_session->LoadParameter("HomModesZ", m_npointsZ);
240 m_session->LoadParameter("LZ", m_LhomZ);
241 m_HomoDirec = 2;
242 }
243
244 m_session->MatchSolverInfo("USEFFT", "FFTW", m_useFFT, false);
245
246 m_session->MatchSolverInfo("DEALIASING", "True", m_homogen_dealiasing,
247 false);
248 }
249 else
250 {
251 // set to default value so can use to identify 2d or 3D
252 // (homogeneous) expansions
253 m_npointsZ = 1;
254 }
255
256 m_session->MatchSolverInfo("SPECTRALHPDEALIASING", "True",
257 m_specHP_dealiasing, false);
258 if (m_specHP_dealiasing == false)
259 {
260 m_session->MatchSolverInfo("SPECTRALHPDEALIASING", "On",
261 m_specHP_dealiasing, false);
262 }
263
264 // Options to determine type of projection from file or directly
265 // from constructor
266 if (m_session->DefinesSolverInfo("PROJECTION"))
267 {
268 std::string ProjectStr = m_session->GetSolverInfo("PROJECTION");
269
270 if ((ProjectStr == "Continuous") || (ProjectStr == "Galerkin") ||
271 (ProjectStr == "CONTINUOUS") || (ProjectStr == "GALERKIN"))
272 {
274 }
275 else if ((ProjectStr == "MixedCGDG") ||
276 (ProjectStr == "Mixed_CG_Discontinuous"))
277 {
279 }
280 else if (ProjectStr == "DisContinuous")
281 {
283 }
284 else
285 {
286 ASSERTL0(false, "PROJECTION value not recognised");
287 }
288 }
289 else
290 {
291 cerr << "Projection type not specified in SOLVERINFO,"
292 "defaulting to continuous Galerkin"
293 << endl;
295 }
296
297 // Enforce singularity check for some problems
299
300 int i;
301 int nvariables = m_session->GetVariables().size();
302 bool DeclareCoeffPhysArrays = true;
303
304 m_fields = Array<OneD, MultiRegions::ExpListSharedPtr>(nvariables);
305 m_spacedim = m_graph->GetSpaceDimension() + m_HomoDirec;
306 m_expdim = m_graph->GetMeshDimension();
307
308 if (DeclareFields) // declare field if required
309 {
310 /// Continuous field
313 {
314 switch (m_expdim)
315 {
316 case 1:
317 {
320 {
321 const LibUtilities::PointsKey PkeyY(
323 const LibUtilities::BasisKey BkeyY(
325 const LibUtilities::PointsKey PkeyZ(
327 const LibUtilities::BasisKey BkeyZ(
329
330 for (i = 0; i < m_fields.size(); i++)
331 {
332 m_fields[i] = MemoryManager<
333 MultiRegions::ContField3DHomogeneous2D>::
334 AllocateSharedPtr(m_session, BkeyY, BkeyZ,
337 m_session->GetVariable(i));
338 }
339 }
340 else
341 {
342 for (i = 0; i < m_fields.size(); i++)
343 {
344 m_fields[i] =
348 m_session->GetVariable(i));
349 }
350 }
351 break;
352 }
353 case 2:
354 {
356 {
357 // Fourier single mode stability analysis
358 if (m_singleMode)
359 {
360 const LibUtilities::PointsKey PkeyZ(
363
364 const LibUtilities::BasisKey BkeyZ(
366 PkeyZ);
367
368 for (i = 0; i < m_fields.size(); i++)
369 {
370 m_fields[i] = MemoryManager<
371 MultiRegions::ContField3DHomogeneous1D>::
372 AllocateSharedPtr(
373 m_session, BkeyZ, m_LhomZ, m_useFFT,
375 m_session->GetVariable(i),
377 }
378 }
379 // Half mode stability analysis
380 else if (m_halfMode)
381 {
382 const LibUtilities::PointsKey PkeyZ(
385
386 const LibUtilities::BasisKey BkeyZR(
388 PkeyZ);
389
390 const LibUtilities::BasisKey BkeyZI(
392 PkeyZ);
393
394 for (i = 0; i < m_fields.size(); i++)
395 {
396 if (m_session->GetVariable(i).compare("w") == 0)
397 {
398 m_fields[i] = MemoryManager<
399 MultiRegions::
400 ContField3DHomogeneous1D>::
401 AllocateSharedPtr(
402 m_session, BkeyZI, m_LhomZ,
404 m_graph, m_session->GetVariable(i),
406 }
407 else
408 {
409 m_fields[i] = MemoryManager<
410 MultiRegions::
411 ContField3DHomogeneous1D>::
412 AllocateSharedPtr(
413 m_session, BkeyZR, m_LhomZ,
415 m_graph, m_session->GetVariable(i),
417 }
418 }
419 }
420 // Normal homogeneous 1D
421 else
422 {
423 const LibUtilities::PointsKey PkeyZ(
425 const LibUtilities::BasisKey BkeyZ(
427
428 for (i = 0; i < m_fields.size(); i++)
429 {
430 m_fields[i] = MemoryManager<
431 MultiRegions::ContField3DHomogeneous1D>::
432 AllocateSharedPtr(
433 m_session, BkeyZ, m_LhomZ, m_useFFT,
435 m_session->GetVariable(i),
437 }
438 }
439 }
440 else
441 {
442 i = 0;
446 m_session->GetVariable(i),
447 DeclareCoeffPhysArrays,
449 m_fields[0] = firstfield;
450 for (i = 1; i < m_fields.size(); i++)
451 {
452 if (m_graph->SameExpansionInfo(
453 m_session->GetVariable(0),
454 m_session->GetVariable(i)))
455 {
456 m_fields[i] =
459 *firstfield, m_graph,
460 m_session->GetVariable(i),
461 DeclareCoeffPhysArrays,
463 }
464 else
465 {
466 m_fields[i] =
470 m_session->GetVariable(i),
471 DeclareCoeffPhysArrays,
473 }
474 }
475
476 if (m_projectionType ==
478 {
479 /// Setting up the normals
481 Array<OneD, Array<OneD, NekDouble>>(m_spacedim);
482
483 for (i = 0; i < m_spacedim; ++i)
484 {
485 m_traceNormals[i] =
486 Array<OneD, NekDouble>(GetTraceNpoints());
487 }
488
489 m_fields[0]->GetTrace()->GetNormals(m_traceNormals);
490 }
491 }
492
493 break;
494 }
495 case 3:
496 {
497 i = 0;
501 m_session->GetVariable(i),
502 DeclareCoeffPhysArrays,
504
505 m_fields[0] = firstfield;
506 for (i = 1; i < m_fields.size(); i++)
507 {
508 if (m_graph->SameExpansionInfo(
509 m_session->GetVariable(0),
510 m_session->GetVariable(i)))
511 {
512 m_fields[i] =
515 *firstfield, m_graph,
516 m_session->GetVariable(i),
517 DeclareCoeffPhysArrays,
519 }
520 else
521 {
522 m_fields[i] =
526 m_session->GetVariable(i),
527 DeclareCoeffPhysArrays,
529 }
530 }
531
532 if (m_projectionType ==
534 {
535 /// Setting up the normals
537 Array<OneD, Array<OneD, NekDouble>>(m_spacedim);
538 for (i = 0; i < m_spacedim; ++i)
539 {
540 m_traceNormals[i] =
541 Array<OneD, NekDouble>(GetTraceNpoints());
542 }
543
544 m_fields[0]->GetTrace()->GetNormals(m_traceNormals);
545 // Call the trace on all fields to ensure DG setup.
546 for (i = 1; i < m_fields.size(); ++i)
547 {
548 m_fields[i]->GetTrace();
549 }
550 }
551 break;
552 }
553 default:
554 ASSERTL0(false, "Expansion dimension not recognised");
555 break;
556 }
557 }
558 // Discontinuous field
559 else
560 {
561 switch (m_expdim)
562 {
563 case 1:
564 {
567 {
568 const LibUtilities::PointsKey PkeyY(
570 const LibUtilities::BasisKey BkeyY(
572 const LibUtilities::PointsKey PkeyZ(
574 const LibUtilities::BasisKey BkeyZ(
576
577 for (i = 0; i < m_fields.size(); i++)
578 {
579 m_fields[i] = MemoryManager<
580 MultiRegions::DisContField3DHomogeneous2D>::
581 AllocateSharedPtr(m_session, BkeyY, BkeyZ,
584 m_session->GetVariable(i));
585 }
586 }
587 else
588 {
589 for (i = 0; i < m_fields.size(); i++)
590 {
591 m_fields[i] =
595 m_session->GetVariable(i));
596 }
597 }
598
599 break;
600 }
601 case 2:
602 {
604 {
605 const LibUtilities::PointsKey PkeyZ(
607 const LibUtilities::BasisKey BkeyZ(
609
610 for (i = 0; i < m_fields.size(); i++)
611 {
612 m_fields[i] = MemoryManager<
613 MultiRegions::DisContField3DHomogeneous1D>::
614 AllocateSharedPtr(m_session, BkeyZ, m_LhomZ,
615 m_useFFT,
617 m_session->GetVariable(i));
618 }
619 }
620 else
621 {
622 i = 0;
626 m_session->GetVariable(i));
627 m_fields[0] = firstfield;
628 for (i = 1; i < m_fields.size(); i++)
629 {
630 if (m_graph->SameExpansionInfo(
631 m_session->GetVariable(0),
632 m_session->GetVariable(i)))
633 {
634 m_fields[i] =
637 *firstfield, m_graph,
638 m_session->GetVariable(i));
639 }
640 else
641 {
642 m_fields[i] =
646 m_session->GetVariable(i));
647 }
648 }
649 }
650
651 break;
652 }
653 case 3:
654 {
656 {
657 ASSERTL0(
658 false,
659 "3D fully periodic problems not implemented yet");
660 }
661 else
662 {
663 i = 0;
667 m_session->GetVariable(i));
668 m_fields[0] = firstfield;
669 for (i = 1; i < m_fields.size(); i++)
670 {
671 if (m_graph->SameExpansionInfo(
672 m_session->GetVariable(0),
673 m_session->GetVariable(i)))
674 {
675 m_fields[i] =
678 *firstfield, m_graph,
679 m_session->GetVariable(i));
680 }
681 else
682 {
683 m_fields[i] =
687 m_session->GetVariable(i));
688 }
689 }
690 }
691 break;
692 }
693 default:
694 ASSERTL0(false, "Expansion dimension not recognised");
695 break;
696 }
697
698 // Setting up the normals
699 m_traceNormals = Array<OneD, Array<OneD, NekDouble>>(m_spacedim);
700
701 for (i = 0; i < m_spacedim; ++i)
702 {
703 m_traceNormals[i] =
704 Array<OneD, NekDouble>(GetTraceNpoints(), 0.0);
705 }
706
707 m_fields[0]->GetTrace()->GetNormals(m_traceNormals);
708 }
709 // Zero all physical fields initially
711 }
712
713 // Set Default Parameter
714 m_session->LoadParameter("Time", m_time, 0.0);
715 m_session->LoadParameter("TimeStep", m_timestep, 0.0);
716 m_session->LoadParameter("NumSteps", m_steps, 0);
717 m_session->LoadParameter("IO_CheckSteps", m_checksteps, 0);
718 m_session->LoadParameter("IO_CheckTime", m_checktime, 0.0);
719 m_session->LoadParameter("FinTime", m_fintime, 0);
720 m_session->LoadParameter("NumQuadPointsError", m_NumQuadPointsError, 0);
721
722 // Check uniqueness of checkpoint output
723 ASSERTL0((m_checktime == 0.0 && m_checksteps == 0) ||
724 (m_checktime > 0.0 && m_checksteps == 0) ||
725 (m_checktime == 0.0 && m_checksteps > 0),
726 "Only one of IO_CheckTime and IO_CheckSteps "
727 "should be set!");
728 m_session->LoadParameter("TimeIncrementFactor", m_TimeIncrementFactor, 1.0);
729
730 m_nchk = 0;
731 m_iterPIT = 0;
732}
static std::shared_ptr< FieldIO > CreateDefault(const LibUtilities::SessionReaderSharedPtr session)
Returns an object for the default FieldIO method.
Definition: FieldIO.cpp:197
LibUtilities::FieldIOSharedPtr m_fld
Field input/output.
NekDouble m_fintime
Finish time of the simulation.
NekDouble m_checktime
Time between checkpoints.
bool m_specHP_dealiasing
Flag to determine if dealisising is usde for the Spectral/hp element discretisation.
SOLVER_UTILS_EXPORT void ZeroPhysFields()
int m_HomoDirec
number of homogenous directions
Array< OneD, bool > m_checkIfSystemSingular
Flag to indicate if the fields should be checked for singularity.
bool m_homogen_dealiasing
Flag to determine if dealiasing is used for homogeneous simulations.
virtual SOLVER_UTILS_EXPORT Array< OneD, bool > v_GetSystemSingularChecks()
SpatialDomains::BoundaryConditionsSharedPtr m_boundaryConditions
Pointer to boundary conditions object.
@ eFourierEvenlySpaced
1D Evenly-spaced points using Fourier Fit
Definition: PointsType.h:76
@ eFourierSingleModeSpaced
1D Non Evenly-spaced points for Single Mode analysis
Definition: PointsType.h:77
@ eFourierSingleMode
Fourier ModifiedExpansion with just the first mode .
Definition: BasisType.h:66
@ eFourierHalfModeIm
Fourier Modified expansions with just the imaginary part of the first mode .
Definition: BasisType.h:70
@ eFourierHalfModeRe
Fourier Modified expansions with just the real part of the first mode .
Definition: BasisType.h:68
@ eFourier
Fourier Expansion .
Definition: BasisType.h:57
std::shared_ptr< DisContField > DisContFieldSharedPtr
Definition: DisContField.h:341
std::shared_ptr< ContField > ContFieldSharedPtr
Definition: ContField.h:270

References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL0, Nektar::LibUtilities::FieldIO::CreateDefault(), Nektar::MultiRegions::eDiscontinuous, Nektar::LibUtilities::eFourier, Nektar::LibUtilities::eFourierEvenlySpaced, Nektar::LibUtilities::eFourierHalfModeIm, Nektar::LibUtilities::eFourierHalfModeRe, Nektar::LibUtilities::eFourierSingleMode, Nektar::LibUtilities::eFourierSingleModeSpaced, Nektar::MultiRegions::eGalerkin, eHomogeneous1D, eHomogeneous2D, eHomogeneous3D, Nektar::MultiRegions::eMixed_CG_Discontinuous, eNotHomogeneous, GetTraceNpoints(), m_boundaryConditions, m_checkIfSystemSingular, m_checksteps, m_checktime, m_expdim, m_fields, m_fintime, m_fld, m_graph, m_halfMode, m_HomoDirec, m_homogen_dealiasing, m_HomogeneousType, m_iterPIT, m_LhomY, m_LhomZ, m_multipleModes, m_nchk, m_npointsY, m_npointsZ, m_NumQuadPointsError, m_projectionType, m_session, m_sessionName, m_singleMode, m_spacedim, m_specHP_dealiasing, m_steps, m_time, m_TimeIncrementFactor, m_timestep, m_traceNormals, m_useFFT, m_verbose, v_GetSystemSingularChecks(), and ZeroPhysFields().

Referenced by InitObject(), Nektar::SolverUtils::UnsteadySystem::v_InitObject(), Nektar::EigenValuesAdvection::v_InitObject(), Nektar::Laplace::v_InitObject(), Nektar::Projection::v_InitObject(), Nektar::SteadyAdvectionDiffusion::v_InitObject(), and Nektar::LinearElasticSystem::v_InitObject().

◆ v_L2Error()

NekDouble Nektar::SolverUtils::EquationSystem::v_L2Error ( unsigned int  field,
const Array< OneD, NekDouble > &  exactsoln = NullNekDouble1DArray,
bool  Normalised = false 
)
protectedvirtual

Virtual function for the L_2 error computation between fields and a given exact solution.

Compute the error in the L2-norm.

Parameters
fieldThe field to compare.
exactsolnThe exact solution to compare with.
NormalisedNormalise L2-error.
Returns
Error in the L2-norm.

Reimplemented in Nektar::MMFSWE, and Nektar::PulseWaveSystem.

Definition at line 789 of file EquationSystem.cpp.

792{
793 NekDouble L2error = -1.0;
794
795 if (m_NumQuadPointsError == 0)
796 {
797 if (m_fields[field]->GetPhysState() == false)
798 {
799 m_fields[field]->BwdTrans(m_fields[field]->GetCoeffs(),
800 m_fields[field]->UpdatePhys());
801 }
802
803 if (exactsoln.size())
804 {
805 L2error =
806 m_fields[field]->L2(m_fields[field]->GetPhys(), exactsoln);
807 }
808 else if (m_session->DefinesFunction("ExactSolution"))
809 {
810 Array<OneD, NekDouble> exactsoln(m_fields[field]->GetNpoints());
811
812 GetFunction("ExactSolution")
813 ->Evaluate(m_session->GetVariable(field), exactsoln, m_time);
814
815 L2error =
816 m_fields[field]->L2(m_fields[field]->GetPhys(), exactsoln);
817 }
818 else
819 {
820 L2error = m_fields[field]->L2(m_fields[field]->GetPhys());
821 }
822
823 if (Normalised == true)
824 {
825 Array<OneD, NekDouble> one(m_fields[field]->GetNpoints(), 1.0);
826
827 NekDouble Vol = m_fields[field]->Integral(one);
828 L2error = sqrt(L2error * L2error / Vol);
829 }
830 }
831 else
832 {
833 Array<OneD, NekDouble> L2INF(2);
834 L2INF = ErrorExtraPoints(field);
835 L2error = L2INF[0];
836 }
837 return L2error;
838}
SOLVER_UTILS_EXPORT Array< OneD, NekDouble > ErrorExtraPoints(unsigned int field)
Compute error (L2 and L_inf) over an larger set of quadrature points return [L2 Linf].
SOLVER_UTILS_EXPORT int GetNpoints()
double NekDouble
scalarT< T > sqrt(scalarT< T > in)
Definition: scalar.hpp:294

References ErrorExtraPoints(), GetFunction(), GetNpoints(), m_fields, m_NumQuadPointsError, m_session, m_time, and tinysimd::sqrt().

Referenced by L2Error().

◆ v_LinfError()

NekDouble Nektar::SolverUtils::EquationSystem::v_LinfError ( unsigned int  field,
const Array< OneD, NekDouble > &  exactsoln = NullNekDouble1DArray 
)
protectedvirtual

Virtual function for the L_inf error computation between fields and a given exact solution.

Compute the error in the L_inf-norm

Parameters
fieldThe field to compare.
exactsolnThe exact solution to compare with.
Returns
Error in the L_inft-norm.

Reimplemented in Nektar::MMFSWE, and Nektar::PulseWaveSystem.

Definition at line 846 of file EquationSystem.cpp.

848{
849 NekDouble Linferror = -1.0;
850
851 if (m_NumQuadPointsError == 0)
852 {
853 if (m_fields[field]->GetPhysState() == false)
854 {
855 m_fields[field]->BwdTrans(m_fields[field]->GetCoeffs(),
856 m_fields[field]->UpdatePhys());
857 }
858
859 if (exactsoln.size())
860 {
861 Linferror =
862 m_fields[field]->Linf(m_fields[field]->GetPhys(), exactsoln);
863 }
864 else if (m_session->DefinesFunction("ExactSolution"))
865 {
866 Array<OneD, NekDouble> exactsoln(m_fields[field]->GetNpoints());
867
868 GetFunction("ExactSolution")
869 ->Evaluate(m_session->GetVariable(field), exactsoln, m_time);
870
871 Linferror =
872 m_fields[field]->Linf(m_fields[field]->GetPhys(), exactsoln);
873 }
874 else
875 {
876 Linferror = m_fields[field]->Linf(m_fields[field]->GetPhys());
877 }
878 }
879 else
880 {
881 Array<OneD, NekDouble> L2INF(2);
882 L2INF = ErrorExtraPoints(field);
883 Linferror = L2INF[1];
884 }
885
886 return Linferror;
887}

References ErrorExtraPoints(), GetFunction(), GetNpoints(), m_fields, m_NumQuadPointsError, m_session, and m_time.

Referenced by LinfError().

◆ v_NegatedOp()

bool Nektar::SolverUtils::EquationSystem::v_NegatedOp ( void  )
protectedvirtual

Virtual function to identify if operator is negated in DoSolve.

Virtual function to define if operator in DoSolve is negated with regard to the strong form. This is currently only used in Arnoldi solves. Default is false.

Reimplemented in Nektar::CoupledLinearNS.

Definition at line 1096 of file EquationSystem.cpp.

1097{
1098 return false;
1099}

Referenced by NegatedOp().

◆ v_Output()

void Nektar::SolverUtils::EquationSystem::v_Output ( void  )
protectedvirtual

Write the field data to file. The file is named according to the session name with the extension .fld appended.

Reimplemented in Nektar::AcousticSystem, Nektar::Dummy, Nektar::CoupledLinearNS, and Nektar::PulseWaveSystem.

Definition at line 1125 of file EquationSystem.cpp.

1126{
1127 if (!ParallelInTime())
1128 {
1129 // Serial-in-time
1130 WriteFld(m_sessionName + ".fld");
1131 }
1132 else
1133 {
1134 // Parallel-in-time
1135 std::string newdir = m_sessionName + ".pit";
1136 if (!fs::is_directory(newdir))
1137 {
1138 fs::create_directory(newdir);
1139 }
1140 WriteFld(newdir + "/" + m_sessionName + "_" +
1141 boost::lexical_cast<std::string>(
1142 m_windowPIT * m_comm->GetTimeComm()->GetSize() +
1143 m_comm->GetTimeComm()->GetRank() + 1) +
1144 ".fld");
1145 }
1146}

References m_comm, m_sessionName, m_windowPIT, ParallelInTime(), and WriteFld().

Referenced by Output(), Nektar::AcousticSystem::v_Output(), and Nektar::Dummy::v_Output().

◆ v_SetInitialConditions()

void Nektar::SolverUtils::EquationSystem::v_SetInitialConditions ( NekDouble  initialtime = 0.0,
bool  dumpInitialConditions = true,
const int  domain = 0 
)
protectedvirtual

Set the physical fields based on a restart file, or a function describing the initial condition given in the session.

Parameters
initialtimeTime at which to evaluate the function.
dumpInitialConditionsWrite the initial condition to file?

Reimplemented in Nektar::MMFAdvection, Nektar::MMFMaxwell, Nektar::MMFSWE, Nektar::Bidomain, Nektar::BidomainRoth, Nektar::Monodomain, Nektar::CompressibleFlowSystem, Nektar::MMFDiffusion, and Nektar::NonlinearPeregrine.

Definition at line 982 of file EquationSystem.cpp.

985{
986 boost::ignore_unused(initialtime);
987
988 if (m_session->GetComm()->GetRank() == 0)
989 {
990 cout << "Initial Conditions:" << endl;
991 }
992
993 if (m_session->DefinesFunction("InitialConditions"))
994 {
995 GetFunction("InitialConditions")
996 ->Evaluate(m_session->GetVariables(), m_fields, m_time, domain);
997 // Enforce C0 Continutiy of initial condiiton
1000 {
1001 for (int i = 0; i < m_fields.size(); ++i)
1002 {
1003 m_fields[i]->LocalToGlobal();
1004 m_fields[i]->GlobalToLocal();
1005 m_fields[i]->BwdTrans(m_fields[i]->GetCoeffs(),
1006 m_fields[i]->UpdatePhys());
1007 }
1008 }
1009
1010 if (m_session->GetComm()->GetRank() == 0)
1011 {
1012 for (int i = 0; i < m_fields.size(); ++i)
1013 {
1014 std::string varName = m_session->GetVariable(i);
1015 cout << " - Field " << varName << ": "
1016 << GetFunction("InitialConditions")
1017 ->Describe(varName, domain)
1018 << endl;
1019 }
1020 }
1021 }
1022 else
1023 {
1024 int nq = m_fields[0]->GetNpoints();
1025 for (int i = 0; i < m_fields.size(); i++)
1026 {
1027 Vmath::Zero(nq, m_fields[i]->UpdatePhys(), 1);
1028 m_fields[i]->SetPhysState(true);
1029 Vmath::Zero(m_fields[i]->GetNcoeffs(), m_fields[i]->UpdateCoeffs(),
1030 1);
1031 if (m_session->GetComm()->GetRank() == 0)
1032 {
1033 cout << " - Field " << m_session->GetVariable(i)
1034 << ": 0 (default)" << endl;
1035 }
1036 }
1037 }
1038
1039 if (dumpInitialConditions && m_checksteps && m_nchk == 0 &&
1040 !ParallelInTime())
1041 {
1043 }
1044 else if (dumpInitialConditions && m_nchk == 0 && ParallelInTime())
1045 {
1046 std::string newdir = m_sessionName + ".pit";
1047 if (!fs::is_directory(newdir))
1048 {
1049 fs::create_directory(newdir);
1050 }
1051 if (m_comm->GetTimeComm()->GetRank() == 0)
1052 {
1053 WriteFld(newdir + "/" + m_sessionName + "_0.fld");
1054 }
1055 }
1056 ++m_nchk;
1057}
SOLVER_UTILS_EXPORT void Checkpoint_Output(const int n)
Write checkpoint file of m_fields.

References Checkpoint_Output(), Nektar::MultiRegions::eGalerkin, Nektar::MultiRegions::eMixed_CG_Discontinuous, GetFunction(), GetNcoeffs(), m_checksteps, m_comm, m_fields, m_nchk, m_projectionType, m_session, m_sessionName, m_time, ParallelInTime(), WriteFld(), and Vmath::Zero().

Referenced by SetInitialConditions(), Nektar::Bidomain::v_SetInitialConditions(), Nektar::BidomainRoth::v_SetInitialConditions(), Nektar::Monodomain::v_SetInitialConditions(), Nektar::CompressibleFlowSystem::v_SetInitialConditions(), Nektar::MMFDiffusion::v_SetInitialConditions(), and Nektar::NonlinearPeregrine::v_SetInitialConditions().

◆ v_TransCoeffToPhys()

void Nektar::SolverUtils::EquationSystem::v_TransCoeffToPhys ( void  )
protectedvirtual

Virtual function for transformation to physical space.

Reimplemented in Nektar::CoupledLinearNS, Nektar::IncNavierStokes, and Nektar::VelocityCorrectionScheme.

Definition at line 1104 of file EquationSystem.cpp.

1105{
1106}

Referenced by TransCoeffToPhys().

◆ v_TransPhysToCoeff()

void Nektar::SolverUtils::EquationSystem::v_TransPhysToCoeff ( void  )
protectedvirtual

Virtual function for transformation to coefficient space.

Reimplemented in Nektar::CoupledLinearNS, Nektar::IncNavierStokes, and Nektar::VelocityCorrectionScheme.

Definition at line 1111 of file EquationSystem.cpp.

1112{
1113}

Referenced by TransPhysToCoeff().

◆ WriteFld() [1/2]

void Nektar::SolverUtils::EquationSystem::WriteFld ( const std::string &  outname)

Write field data to the given filename.

Writes the field data to a file with the given filename.

Parameters
outnameFilename to write to.

Definition at line 1249 of file EquationSystem.cpp.

1250{
1251 std::vector<Array<OneD, NekDouble>> fieldcoeffs(m_fields.size());
1252 std::vector<std::string> variables(m_fields.size());
1253
1254 for (int i = 0; i < m_fields.size(); ++i)
1255 {
1256 if (m_fields[i]->GetNcoeffs() == m_fields[0]->GetNcoeffs())
1257 {
1258 fieldcoeffs[i] = m_fields[i]->UpdateCoeffs();
1259 }
1260 else
1261 {
1262 fieldcoeffs[i] = Array<OneD, NekDouble>(m_fields[0]->GetNcoeffs());
1263 m_fields[0]->ExtractCoeffsToCoeffs(
1264 m_fields[i], m_fields[i]->GetCoeffs(), fieldcoeffs[i]);
1265 }
1266 variables[i] = m_boundaryConditions->GetVariable(i);
1267 }
1268
1269 ExtraFldOutput(fieldcoeffs, variables);
1270
1271 WriteFld(outname, m_fields[0], fieldcoeffs, variables);
1272}
SOLVER_UTILS_EXPORT void ExtraFldOutput(std::vector< Array< OneD, NekDouble > > &fieldcoeffs, std::vector< std::string > &variables)

References ExtraFldOutput(), GetNcoeffs(), m_boundaryConditions, m_fields, and WriteFld().

Referenced by Checkpoint_BaseFlow(), Nektar::MMFMaxwell::Checkpoint_EDFluxOutput(), Nektar::MMFMaxwell::Checkpoint_EnergyOutput(), Checkpoint_Output(), Nektar::MMFSWE::Checkpoint_Output_Cartesian(), Nektar::MMFMaxwell::Checkpoint_PlotOutput(), Nektar::MMFMaxwell::Checkpoint_TotalFieldOutput(), Nektar::MMFMaxwell::Checkpoint_TotPlotOutput(), Nektar::BidomainRoth::v_InitObject(), Nektar::Monodomain::v_InitObject(), v_Output(), Nektar::CoupledLinearNS::v_Output(), Nektar::SolverUtils::AdvectionSystem::v_PostIntegrate(), Nektar::MMFAdvection::v_SetInitialConditions(), Nektar::MMFMaxwell::v_SetInitialConditions(), Nektar::MMFSWE::v_SetInitialConditions(), v_SetInitialConditions(), Nektar::CompressibleFlowSystem::v_SetInitialConditions(), Nektar::MMFDiffusion::v_SetInitialConditions(), and WriteFld().

◆ WriteFld() [2/2]

void Nektar::SolverUtils::EquationSystem::WriteFld ( const std::string &  outname,
MultiRegions::ExpListSharedPtr field,
std::vector< Array< OneD, NekDouble > > &  fieldcoeffs,
std::vector< std::string > &  variables 
)

Write input fields to the given filename.

Writes the field data to a file with the given filename.

Parameters
outnameFilename to write to.
fieldExpList on which data is based.
fieldcoeffsAn array of array of expansion coefficients.
variablesAn array of variable names.

Definition at line 1281 of file EquationSystem.cpp.

1285{
1286 std::vector<LibUtilities::FieldDefinitionsSharedPtr> FieldDef =
1287 field->GetFieldDefinitions();
1288 std::vector<std::vector<NekDouble>> FieldData(FieldDef.size());
1289
1290 // Copy Data into FieldData and set variable
1291 for (int j = 0; j < fieldcoeffs.size(); ++j)
1292 {
1293 for (int i = 0; i < FieldDef.size(); ++i)
1294 {
1295 // Could do a search here to find correct variable
1296 FieldDef[i]->m_fields.push_back(variables[j]);
1297 field->AppendFieldData(FieldDef[i], FieldData[i], fieldcoeffs[j]);
1298 }
1299 }
1300
1301 // Update time in field info if required
1302 if (m_fieldMetaDataMap.find("Time") != m_fieldMetaDataMap.end())
1303 {
1304 m_fieldMetaDataMap["Time"] = boost::lexical_cast<std::string>(m_time);
1305 }
1306
1307 // Update step in field info if required
1308 if (m_fieldMetaDataMap.find("ChkFileNum") != m_fieldMetaDataMap.end())
1309 {
1310 m_fieldMetaDataMap["ChkFileNum"] =
1311 boost::lexical_cast<std::string>(m_nchk);
1312 }
1313
1314 // If necessary, add mapping information to metadata
1315 // and output mapping coordinates
1316 Array<OneD, MultiRegions::ExpListSharedPtr> fields(1);
1317 fields[0] = field;
1321 mapping->Output(fieldMetaDataMap, outname);
1322
1323 // If necessary, add informaton for moving frame reference to metadata
1324 if (m_fieldMetaDataMap.find("Theta_x") != m_fieldMetaDataMap.end())
1325 {
1326 // if one theta exists, add all three thetas
1327 std::vector<std::string> vSuffix = {"_x", "_y", "_z"};
1328 for (int i = 0; i < 3; ++i)
1329 {
1330 std::string sTheta = "Theta" + vSuffix[i];
1331 m_fieldMetaDataMap[sTheta] =
1332 boost::lexical_cast<std::string>(m_movingFrameTheta[i]);
1333 }
1334 }
1335
1336 m_fld->Write(outname, FieldDef, FieldData, fieldMetaDataMap,
1337 m_session->GetBackups());
1338}
static GLOBAL_MAPPING_EXPORT MappingSharedPtr Load(const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields)
Return a pointer to the mapping, creating it on first call.
Definition: Mapping.cpp:272
Array< OneD, NekDouble > m_movingFrameTheta
Moving frame of reference angles with respect to the.
GLOBAL_MAPPING_EXPORT typedef std::shared_ptr< Mapping > MappingSharedPtr
A shared pointer to a Mapping object.
Definition: Mapping.h:53
std::map< std::string, std::string > FieldMetaDataMap
Definition: FieldIO.h:52

References Nektar::GlobalMapping::Mapping::Load(), m_fieldMetaDataMap, m_fld, m_movingFrameTheta, m_nchk, m_session, m_time, and Nektar::GlobalMapping::MappingSharedPtr.

◆ ZeroPhysFields()

void Nektar::SolverUtils::EquationSystem::ZeroPhysFields ( void  )

Zero the physical fields.

Definition at line 1151 of file EquationSystem.cpp.

1152{
1153 for (int i = 0; i < m_fields.size(); i++)
1154 {
1155 Vmath::Zero(m_fields[i]->GetNpoints(), m_fields[i]->UpdatePhys(), 1);
1156 }
1157}

References GetNpoints(), m_fields, and Vmath::Zero().

Referenced by v_InitObject().

Member Data Documentation

◆ equationSystemTypeLookupIds

std::string Nektar::SolverUtils::EquationSystem::equationSystemTypeLookupIds
staticprotected
Initial value:
= {
static std::string RegisterEnumValue(std::string pEnum, std::string pString, int pEnumValue)
Registers an enumeration value.

Definition at line 524 of file EquationSystem.h.

◆ m_boundaryConditions

SpatialDomains::BoundaryConditionsSharedPtr Nektar::SolverUtils::EquationSystem::m_boundaryConditions
protected

◆ m_checkIfSystemSingular

Array<OneD, bool> Nektar::SolverUtils::EquationSystem::m_checkIfSystemSingular
protected

Flag to indicate if the fields should be checked for singularity.

Definition at line 427 of file EquationSystem.h.

Referenced by v_InitObject().

◆ m_checksteps

int Nektar::SolverUtils::EquationSystem::m_checksteps
protected

◆ m_checktime

NekDouble Nektar::SolverUtils::EquationSystem::m_checktime
protected

◆ m_comm

LibUtilities::CommSharedPtr Nektar::SolverUtils::EquationSystem::m_comm
protected

◆ m_expdim

int Nektar::SolverUtils::EquationSystem::m_expdim
protected

◆ m_fieldMetaDataMap

LibUtilities::FieldMetaDataMap Nektar::SolverUtils::EquationSystem::m_fieldMetaDataMap
protected

◆ m_fields

Array<OneD, MultiRegions::ExpListSharedPtr> Nektar::SolverUtils::EquationSystem::m_fields
protected

Array holding all dependent variables.

Definition at line 363 of file EquationSystem.h.

Referenced by Nektar::SolverUtils::MMFSystem::AbsIntegral(), Nektar::UnsteadyAdvectionDiffusion::AddAdvectionPenaltyFlux(), Nektar::MMFSWE::AddCoriolis(), Nektar::LinearSWE::AddCoriolis(), Nektar::NonlinearPeregrine::AddCoriolis(), Nektar::NonlinearSWE::AddCoriolis(), Nektar::MMFSWE::AddDivForGradient(), Nektar::MMFSWE::AddElevationEffect(), Nektar::MMFMaxwell::AddGreenDerivCompensate(), Nektar::CFSImplicit::AddMatNSBlkDiagBnd(), Nektar::CFSImplicit::AddMatNSBlkDiagVol(), Nektar::MMFMaxwell::AddPML(), Nektar::MMFSWE::AddRotation(), Nektar::NonlinearPeregrine::AddVariableDepth(), Nektar::NonlinearSWE::AddVariableDepth(), Nektar::MMFAdvection::AdvectionBellPlane(), Nektar::MMFAdvection::AdvectionBellSphere(), Nektar::SolverUtils::UnsteadySystem::AppendOutput1D(), Nektar::VCSMapping::ApplyIncNSMappingForcing(), Nektar::SolverUtils::MMFSystem::AverageMaxwellFlux1D(), Nektar::SolverUtils::MMFSystem::AvgAbsInt(), Nektar::SolverUtils::MMFSystem::AvgInt(), Nektar::LinearElasticSystem::BuildMatrixSystem(), Nektar::CFSImplicit::CalcRefValues(), Nektar::CFSImplicit::CalcTraceNumericalFlux(), Nektar::CFSImplicit::CalcVolJacStdMat(), Nektar::SolverUtils::MMFSystem::CartesianToMovingframes(), Nektar::SolverUtils::UnsteadySystem::CheckForRestartTime(), Nektar::SolverUtils::MMFSystem::CheckMovingFrames(), Nektar::MMFMaxwell::Checkpoint_EDFluxOutput(), Nektar::MMFMaxwell::Checkpoint_EnergyOutput(), Nektar::MMFSWE::Checkpoint_Output_Cartesian(), Nektar::MMFMaxwell::Checkpoint_PlotOutput(), Nektar::MMFMaxwell::Checkpoint_TotalFieldOutput(), Nektar::MMFMaxwell::Checkpoint_TotPlotOutput(), Nektar::SolverUtils::UnsteadySystem::CheckSteadyState(), Nektar::MMFSWE::Compute_demdt_cdot_ek(), Nektar::SolverUtils::MMFSystem::ComputeCurl(), Nektar::SolverUtils::MMFSystem::Computedemdxicdote(), Nektar::SolverUtils::MMFSystem::ComputeDivCurlMF(), Nektar::MMFSWE::ComputeEnergy(), Nektar::MMFMaxwell::ComputeEnergyDensity(), Nektar::MMFSWE::ComputeEnstrophy(), Nektar::VelocityCorrectionScheme::ComputeGJPNormalVelocity(), Nektar::MMFSWE::ComputeMass(), Nektar::MMFMaxwell::ComputeMaterialMicroWaveCloak(), Nektar::MMFMaxwell::ComputeMaterialOpticalCloak(), Nektar::MMFMaxwell::ComputeMaterialVector(), Nektar::SolverUtils::MMFSystem::ComputeMFtrace(), Nektar::MMFAdvection::ComputeNablaCdotVelocity(), Nektar::MMFSWE::ComputeNablaCdotVelocity(), Nektar::SolverUtils::MMFSystem::ComputencdotMF(), Nektar::MMFMaxwell::ComputeRadCloak(), Nektar::MMFMaxwell::ComputeSurfaceCurrent(), Nektar::MMFAdvection::ComputeveldotMF(), Nektar::MMFSWE::ComputeVorticity(), Nektar::SolverUtils::MMFSystem::ComputeZimYim(), Nektar::MMFSWE::ConservativeToPrimitive(), Nektar::CoupledLinearNS::Continuation(), Nektar::SolverUtils::MMFSystem::CopyBoundaryTrace(), Nektar::AcousticSystem::CopyBoundaryTrace(), Nektar::ShallowWaterSystem::CopyBoundaryTrace(), CopyFromPhysField(), CopyToPhysField(), Nektar::CoupledLinearNS::DefineForcingTerm(), Nektar::CompressibleFlowSystem::DoAdvection(), Nektar::CFSImplicit::DoAdvectionCoeff(), Nektar::UnsteadyAdvectionDiffusion::DoImplicitSolve(), Nektar::UnsteadyDiffusion::DoImplicitSolve(), Nektar::UnsteadyReactionDiffusion::DoImplicitSolve(), Nektar::UnsteadyViscousBurgers::DoImplicitSolve(), Nektar::Bidomain::DoImplicitSolve(), Nektar::BidomainRoth::DoImplicitSolve(), Nektar::Monodomain::DoImplicitSolve(), Nektar::MMFDiffusion::DoImplicitSolve(), Nektar::CFSImplicit::DoImplicitSolve(), Nektar::AcousticSystem::DoOdeProjection(), Nektar::CFLtester::DoOdeProjection(), Nektar::MMFAdvection::DoOdeProjection(), Nektar::UnsteadyAdvection::DoOdeProjection(), Nektar::UnsteadyAdvectionDiffusion::DoOdeProjection(), Nektar::UnsteadyDiffusion::DoOdeProjection(), Nektar::UnsteadyInviscidBurger::DoOdeProjection(), Nektar::UnsteadyReactionDiffusion::DoOdeProjection(), Nektar::CompressibleFlowSystem::DoOdeProjection(), Nektar::Dummy::DoOdeProjection(), Nektar::LinearSWE::DoOdeProjection(), Nektar::NonlinearPeregrine::DoOdeProjection(), Nektar::NonlinearSWE::DoOdeProjection(), Nektar::AcousticSystem::DoOdeRhs(), Nektar::CFLtester::DoOdeRhs(), Nektar::MMFAdvection::DoOdeRhs(), Nektar::UnsteadyAdvection::DoOdeRhs(), Nektar::UnsteadyAdvectionDiffusion::DoOdeRhs(), Nektar::UnsteadyDiffusion::DoOdeRhs(), Nektar::UnsteadyInviscidBurger::DoOdeRhs(), Nektar::UnsteadyReactionDiffusion::DoOdeRhs(), Nektar::UnsteadyViscousBurgers::DoOdeRhs(), Nektar::Bidomain::DoOdeRhs(), Nektar::BidomainRoth::DoOdeRhs(), Nektar::CompressibleFlowSystem::DoOdeRhs(), Nektar::MMFDiffusion::DoOdeRhs(), Nektar::ImageWarpingSystem::DoOdeRhs(), Nektar::MMFMaxwell::DoOdeRhs(), Nektar::PulseWavePropagation::DoOdeRhs(), Nektar::LinearSWE::DoOdeRhs(), Nektar::MMFSWE::DoOdeRhs(), Nektar::NonlinearPeregrine::DoOdeRhs(), Nektar::NonlinearSWE::DoOdeRhs(), Nektar::CFSImplicit::DoOdeRhsCoeff(), ErrorExtraPoints(), Nektar::CoupledLinearNS::EvaluateAdvection(), Nektar::IncNavierStokes::EvaluateAdvectionTerms(), Nektar::MMFAdvection::EvaluateAdvectionVelocity(), Nektar::MMFMaxwell::EvaluateCoriolis(), Nektar::MMFSWE::EvaluateCoriolisForZonalFlow(), Nektar::CompressibleFlowSystem::EvaluateIsentropicVortex(), Nektar::CoupledLinearNS::EvaluateNewtonRHS(), Nektar::MMFSWE::EvaluateStandardCoriolis(), Nektar::MMFSWE::EvaluateWaterDepth(), FwdTransFields(), Nektar::MMFMaxwell::GaussianPulse(), Nektar::MMFMaxwell::GenerateSigmaPML(), Nektar::SolverUtils::AdvectionSystem::GetCFLEstimate(), GetCoeff_Offset(), Nektar::SolverUtils::AdvectionSystem::GetElmtCFLVals(), Nektar::CompressibleFlowSystem::GetElmtTimeStep(), Nektar::CompressibleFlowSystem::GetExactRinglebFlow(), GetExpSize(), Nektar::PulseWavePropagation::GetFluxVector(), Nektar::LinearSWE::GetFluxVector(), Nektar::NonlinearPeregrine::GetFluxVector(), Nektar::NonlinearSWE::GetFluxVector(), Nektar::UnsteadyAdvectionDiffusion::GetFluxVectorAdv(), Nektar::UnsteadyViscousBurgers::GetFluxVectorAdv(), Nektar::UnsteadyAdvection::GetFluxVectorDeAlias(), Nektar::CompressibleFlowSystem::GetFluxVectorDeAlias(), GetFunction(), Nektar::SolverUtils::MMFSystem::GetIncidentField(), Nektar::UnsteadyAdvectionDiffusion::GetMaxStdVelocity(), Nektar::SolverUtils::MMFSystem::GetMaxwellFlux1D(), Nektar::SolverUtils::MMFSystem::GetMaxwellFlux2D(), GetNcoeffs(), Nektar::UnsteadyAdvectionDiffusion::GetNormalVel(), Nektar::CFLtester::GetNormalVelocity(), Nektar::EigenValuesAdvection::GetNormalVelocity(), Nektar::MMFAdvection::GetNormalVelocity(), Nektar::UnsteadyAdvection::GetNormalVelocity(), Nektar::UnsteadyInviscidBurger::GetNormalVelocity(), Nektar::ImageWarpingSystem::GetNormalVelocity(), Nektar::UnsteadyViscousBurgers::GetNormalVelocity(), GetNpoints(), GetNumExpModesPerExp(), GetPhys_Offset(), Nektar::CompressibleFlowSystem::GetStabilityLimitVector(), Nektar::CFLtester::GetStdVelocity(), Nektar::UnsteadyAdvectionDiffusion::GetSubstepTimeStep(), Nektar::MMFSWE::GetSWEFluxVector(), GetTotPoints(), Nektar::CFSImplicit::GetTraceJac(), GetTraceNpoints(), Nektar::NavierStokesCFE::GetViscosityAndThermalCondFromTemp(), ImportFld(), ImportFldToMultiDomains(), Nektar::CompressibleFlowSystem::InitAdvection(), Nektar::CFSImplicit::InitialiseNonlinSysSolver(), Nektar::SolverUtils::UnsteadySystem::InitializeSteadyState(), Nektar::NavierStokesCFE::InitObject_Explicit(), Nektar::MMFSWE::IsolatedMountainFlow(), Nektar::NonlinearPeregrine::LaitoneSolitaryWave(), Nektar::SolverUtils::MMFSystem::LaxFriedrichMaxwellFlux1D(), Nektar::VCSMapping::MappingAccelerationCorrection(), Nektar::VCSMapping::MappingAdvectionCorrection(), Nektar::VCSMapping::MappingPressureCorrection(), Nektar::VelocityCorrectionScheme::MeasureFlowrate(), Nektar::SolverUtils::MMFSystem::MMFInitObject(), Nektar::MMFDiffusion::Morphogenesis(), Nektar::CFSImplicit::MultiplyElmtInvMassPlusSource(), Nektar::CFSImplicit::NonlinSysEvaluatorCoeff(), Nektar::CFSImplicit::NumCalcRiemFluxJac(), Nektar::NonlinearPeregrine::NumericalFluxConsVariables(), Nektar::NonlinearPeregrine::NumericalFluxForcing(), Nektar::SolverUtils::MMFSystem::NumericalMaxwellFluxTE(), Nektar::SolverUtils::MMFSystem::NumericalMaxwellFluxTM(), Nektar::MMFSWE::NumericalSWEFlux(), Nektar::MMFDiffusion::PlanePhiWave(), Nektar::CFSImplicit::PreconCoeff(), Nektar::MMFSWE::PrimitiveToConservative(), Nektar::MMFMaxwell::Printout_SurfaceCurrent(), Nektar::MMFSWE::RossbyWave(), SessionSummary(), Nektar::MMFSWE::SetBoundaryConditions(), Nektar::AcousticSystem::SetBoundaryConditions(), Nektar::CompressibleFlowSystem::SetBoundaryConditions(), Nektar::LinearSWE::SetBoundaryConditions(), Nektar::NonlinearPeregrine::SetBoundaryConditions(), Nektar::NonlinearSWE::SetBoundaryConditions(), SetBoundaryConditions(), Nektar::IncNavierStokes::SetBoundaryConditions(), Nektar::NonlinearPeregrine::SetBoundaryConditionsContVariables(), Nektar::NonlinearPeregrine::SetBoundaryConditionsForcing(), Nektar::IncNavierStokes::SetMRFDomainVelBCs(), Nektar::IncNavierStokes::SetMRFWallBCs(), Nektar::IncNavierStokes::SetRadiationBoundaryForcing(), Nektar::SmoothedProfileMethod::SetUpCorrectionPressure(), Nektar::CoupledLinearNS::SetUpCoupledMatrix(), Nektar::SmoothedProfileMethod::SetUpExpansions(), Nektar::VelocityCorrectionScheme::SetUpExtrapolation(), Nektar::VelocityCorrectionScheme::SetupFlowrate(), Nektar::SolverUtils::MMFSystem::SetUpMovingFrames(), Nektar::VelocityCorrectionScheme::SetUpSVV(), Nektar::IncNavierStokes::SetUpWomersley(), Nektar::IncNavierStokes::SetWomersleyBoundary(), Nektar::IncNavierStokes::SetZeroNormalVelocity(), Nektar::CoupledLinearNS::Solve(), Nektar::CoupledLinearNS::SolveLinearNS(), Nektar::CoupledLinearNS::SolveSteadyNavierStokes(), Nektar::CoupledLinearNS::SolveUnsteadyStokesSystem(), Nektar::NavierStokesCFE::SpecialBndTreat(), Nektar::MMFSWE::SteadyZonalFlow(), Nektar::UnsteadyAdvectionDiffusion::SubStepAdvance(), Nektar::UnsteadyAdvectionDiffusion::SubStepAdvection(), Nektar::SolverUtils::UnsteadySystem::SVVVarDiffCoeff(), Nektar::VelocityCorrectionScheme::SVVVarDiffCoeff(), Nektar::MMFAdvection::Test2Dproblem(), Nektar::MMFAdvection::Test3Dproblem(), Nektar::MMFDiffusion::TestCubeProblem(), Nektar::MMFMaxwell::TestMaxwell1D(), Nektar::MMFMaxwell::TestMaxwell2DPEC(), Nektar::MMFMaxwell::TestMaxwell2DPMC(), Nektar::MMFMaxwell::TestMaxwellSphere(), Nektar::MMFDiffusion::TestPlaneProblem(), Nektar::MMFSWE::TestSWE2Dproblem(), Nektar::MMFSWE::TestVorticityComputation(), Nektar::MMFSWE::UnstableJetFlow(), Nektar::MMFSWE::UnsteadyZonalFlow(), Nektar::AcousticSystem::UpdateBasefieldFwdBwd(), UpdateFields(), Nektar::SmoothedProfileMethod::UpdateForcing(), Nektar::SolverUtils::MMFSystem::UpwindMaxwellFlux1D(), Nektar::LEE::v_AddLinTerm(), Nektar::NavierStokesImplicitCFE::v_CalcPhysDeriv(), Nektar::LinearSWE::v_ConservativeToPrimitive(), Nektar::NonlinearPeregrine::v_ConservativeToPrimitive(), Nektar::NonlinearSWE::v_ConservativeToPrimitive(), Nektar::NavierStokesCFE::v_DoDiffusion(), Nektar::NavierStokesImplicitCFE::v_DoDiffusionCoeff(), Nektar::VCSImplicit::v_DoInitialise(), Nektar::SteadyAdvectionDiffusion::v_DoInitialise(), Nektar::PulseWaveSystem::v_DoInitialise(), Nektar::MMFSWE::v_DoInitialise(), Nektar::CoupledLinearNS::v_DoInitialise(), Nektar::VCSMapping::v_DoInitialise(), Nektar::VelocityCorrectionScheme::v_DoInitialise(), Nektar::SolverUtils::UnsteadySystem::v_DoSolve(), Nektar::EigenValuesAdvection::v_DoSolve(), Nektar::Laplace::v_DoSolve(), Nektar::MMFAdvection::v_DoSolve(), Nektar::Projection::v_DoSolve(), Nektar::SteadyAdvectionDiffusion::v_DoSolve(), Nektar::IterativeElasticSystem::v_DoSolve(), Nektar::LinearElasticSystem::v_DoSolve(), Nektar::MMFMaxwell::v_DoSolve(), Nektar::PulseWaveSystem::v_DoSolve(), Nektar::MMFSWE::v_DoSolve(), Nektar::VelocityCorrectionScheme::v_EvaluateAdvection_SetPressureBCs(), Nektar::VCSMapping::v_EvaluateAdvection_SetPressureBCs(), v_EvaluateExactSolution(), Nektar::MMFMaxwell::v_EvaluateExactSolution(), Nektar::AcousticSystem::v_ExtraFldOutput(), Nektar::CompressibleFlowSystem::v_ExtraFldOutput(), Nektar::NavierStokesCFE::v_ExtraFldOutput(), Nektar::LinearElasticSystem::v_ExtraFldOutput(), Nektar::Poisson::v_GenerateSummary(), Nektar::Projection::v_GenerateSummary(), Nektar::SolverUtils::MMFSystem::v_GenerateSummary(), Nektar::AcousticSystem::v_GetMaxStdVelocity(), Nektar::CompressibleFlowSystem::v_GetMaxStdVelocity(), Nektar::IncNavierStokes::v_GetMaxStdVelocity(), Nektar::CompressibleFlowSystem::v_GetTimeStep(), Nektar::CFLtester::v_GetTimeStep(), Nektar::NavierStokesCFEAxisym::v_GetViscousFluxVector(), Nektar::NavierStokesCFE::v_GetViscousFluxVectorDeAlias(), v_InitObject(), Nektar::PulseWavePropagation::v_InitObject(), Nektar::PulseWaveSystem::v_InitObject(), Nektar::Bidomain::v_InitObject(), Nektar::BidomainRoth::v_InitObject(), Nektar::Monodomain::v_InitObject(), Nektar::MMFDiffusion::v_InitObject(), Nektar::ImageWarpingSystem::v_InitObject(), Nektar::CoupledLinearNS::v_InitObject(), Nektar::IncNavierStokes::v_InitObject(), Nektar::VCSMapping::v_InitObject(), Nektar::VelocityCorrectionScheme::v_InitObject(), Nektar::AcousticSystem::v_InitObject(), Nektar::APE::v_InitObject(), Nektar::LEE::v_InitObject(), Nektar::CFLtester::v_InitObject(), Nektar::EigenValuesAdvection::v_InitObject(), Nektar::MMFAdvection::v_InitObject(), Nektar::Poisson::v_InitObject(), Nektar::Projection::v_InitObject(), Nektar::UnsteadyAdvection::v_InitObject(), Nektar::UnsteadyAdvectionDiffusion::v_InitObject(), Nektar::UnsteadyDiffusion::v_InitObject(), Nektar::UnsteadyInviscidBurger::v_InitObject(), Nektar::UnsteadyReactionDiffusion::v_InitObject(), Nektar::UnsteadyViscousBurgers::v_InitObject(), Nektar::CompressibleFlowSystem::v_InitObject(), Nektar::NavierStokesCFEAxisym::v_InitObject(), Nektar::Dummy::v_InitObject(), Nektar::IterativeElasticSystem::v_InitObject(), Nektar::LinearElasticSystem::v_InitObject(), Nektar::MMFMaxwell::v_InitObject(), Nektar::LinearSWE::v_InitObject(), Nektar::MMFSWE::v_InitObject(), Nektar::NonlinearPeregrine::v_InitObject(), Nektar::NonlinearSWE::v_InitObject(), Nektar::ShallowWaterSystem::v_InitObject(), Nektar::MMFSWE::v_L2Error(), v_L2Error(), Nektar::PulseWaveSystem::v_L2Error(), Nektar::MMFSWE::v_LinfError(), v_LinfError(), Nektar::PulseWaveSystem::v_LinfError(), Nektar::CoupledLinearNS::v_Output(), Nektar::Dummy::v_PostIntegrate(), Nektar::AcousticSystem::v_PreIntegrate(), Nektar::Dummy::v_PreIntegrate(), Nektar::LinearSWE::v_PrimitiveToConservative(), Nektar::NonlinearPeregrine::v_PrimitiveToConservative(), Nektar::NonlinearSWE::v_PrimitiveToConservative(), Nektar::APE::v_RiemannInvariantBC(), Nektar::LEE::v_RiemannInvariantBC(), Nektar::MMFAdvection::v_SetInitialConditions(), Nektar::MMFMaxwell::v_SetInitialConditions(), Nektar::MMFSWE::v_SetInitialConditions(), v_SetInitialConditions(), Nektar::CompressibleFlowSystem::v_SetInitialConditions(), Nektar::MMFDiffusion::v_SetInitialConditions(), Nektar::VelocityCorrectionScheme::v_SetUpPressureForcing(), Nektar::VCSMapping::v_SetUpPressureForcing(), Nektar::VCSImplicit::v_SetUpPressureForcing(), Nektar::VelocityCorrectionScheme::v_SetUpViscousForcing(), Nektar::VCSMapping::v_SetUpViscousForcing(), Nektar::VCSImplicit::v_SetUpViscousForcing(), Nektar::VCSMapping::v_SolvePressure(), Nektar::VelocityCorrectionScheme::v_SolveUnsteadyStokesSystem(), Nektar::VelocityCorrectionScheme::v_SolveViscous(), Nektar::VCSMapping::v_SolveViscous(), Nektar::VCSImplicit::v_SolveViscous(), Nektar::SolverUtils::UnsteadySystem::v_SteadyStateResidual(), Nektar::CompressibleFlowSystem::v_SteadyStateResidual(), Nektar::CoupledLinearNS::v_TransCoeffToPhys(), Nektar::VelocityCorrectionScheme::v_TransCoeffToPhys(), Nektar::CoupledLinearNS::v_TransPhysToCoeff(), Nektar::VelocityCorrectionScheme::v_TransPhysToCoeff(), Nektar::AcousticSystem::WallBC(), Nektar::LinearSWE::WallBoundary(), Nektar::NonlinearPeregrine::WallBoundary(), Nektar::NonlinearSWE::WallBoundary(), Nektar::LinearSWE::WallBoundary2D(), Nektar::NonlinearPeregrine::WallBoundary2D(), Nektar::NonlinearSWE::WallBoundary2D(), Nektar::MMFSWE::WallBoundary2D(), Nektar::NonlinearPeregrine::WallBoundaryContVariables(), Nektar::NonlinearPeregrine::WallBoundaryForcing(), Nektar::NonlinearPeregrine::WCESolve(), Nektar::MMFAdvection::WeakDGDirectionalAdvection(), Nektar::MMFMaxwell::WeakDGMaxwellDirDeriv(), Nektar::MMFSWE::WeakDGSWEDirDeriv(), Nektar::AcousticSystem::WhiteNoiseBC(), WriteFld(), Nektar::IterativeElasticSystem::WriteGeometry(), and ZeroPhysFields().

◆ m_fintime

NekDouble Nektar::SolverUtils::EquationSystem::m_fintime
protected

◆ m_fld

LibUtilities::FieldIOSharedPtr Nektar::SolverUtils::EquationSystem::m_fld
protected

Field input/output.

Definition at line 361 of file EquationSystem.h.

Referenced by v_InitObject(), WriteFld(), and Nektar::PulseWaveSystem::WriteVessels().

◆ m_graph

SpatialDomains::MeshGraphSharedPtr Nektar::SolverUtils::EquationSystem::m_graph
protected

◆ m_halfMode

bool Nektar::SolverUtils::EquationSystem::m_halfMode
protected

Flag to determine if half homogeneous mode is used.

Definition at line 406 of file EquationSystem.h.

Referenced by SessionSummary(), and v_InitObject().

◆ m_HomoDirec

int Nektar::SolverUtils::EquationSystem::m_HomoDirec
protected

number of homogenous directions

Definition at line 464 of file EquationSystem.h.

Referenced by v_InitObject().

◆ m_homogen_dealiasing

bool Nektar::SolverUtils::EquationSystem::m_homogen_dealiasing
protected

◆ m_HomogeneousType

enum HomogeneousType Nektar::SolverUtils::EquationSystem::m_HomogeneousType
protected

◆ m_infosteps

int Nektar::SolverUtils::EquationSystem::m_infosteps
protected

◆ m_initialStep

int Nektar::SolverUtils::EquationSystem::m_initialStep
protected

◆ m_iterPIT

int Nektar::SolverUtils::EquationSystem::m_iterPIT = 0
protected

Number of parallel-in-time time iteration.

Definition at line 396 of file EquationSystem.h.

Referenced by Checkpoint_Output(), SetIterationNumberPIT(), and v_InitObject().

◆ m_lambda

NekDouble Nektar::SolverUtils::EquationSystem::m_lambda
protected

Lambda constant in real system if one required.

Definition at line 380 of file EquationSystem.h.

Referenced by SetLambda(), and Nektar::CoupledLinearNS::v_DoInitialise().

◆ m_lastCheckTime

NekDouble Nektar::SolverUtils::EquationSystem::m_lastCheckTime
protected

◆ m_LhomX

NekDouble Nektar::SolverUtils::EquationSystem::m_LhomX
protected

physical length in X direction (if homogeneous)

Definition at line 456 of file EquationSystem.h.

◆ m_LhomY

NekDouble Nektar::SolverUtils::EquationSystem::m_LhomY
protected

physical length in Y direction (if homogeneous)

Definition at line 457 of file EquationSystem.h.

Referenced by SessionSummary(), and v_InitObject().

◆ m_LhomZ

NekDouble Nektar::SolverUtils::EquationSystem::m_LhomZ
protected

physical length in Z direction (if homogeneous)

Definition at line 458 of file EquationSystem.h.

Referenced by SessionSummary(), Nektar::CoupledLinearNS::SetUpCoupledMatrix(), v_InitObject(), and Nektar::CoupledLinearNS::v_InitObject().

◆ m_movingFrameProjMat

boost::numeric::ublas::matrix<NekDouble> Nektar::SolverUtils::EquationSystem::m_movingFrameProjMat
protected

◆ m_movingFrameTheta

Array<OneD, NekDouble> Nektar::SolverUtils::EquationSystem::m_movingFrameTheta
protected

Moving frame of reference angles with respect to the.

Definition at line 436 of file EquationSystem.h.

Referenced by Nektar::IncNavierStokes::v_GetMovingFrameAngles(), Nektar::IncNavierStokes::v_InitObject(), Nektar::IncNavierStokes::v_SetMovingFrameAngles(), and WriteFld().

◆ m_movingFrameVelsxyz

Array<OneD, NekDouble> Nektar::SolverUtils::EquationSystem::m_movingFrameVelsxyz
protected

◆ m_multipleModes

bool Nektar::SolverUtils::EquationSystem::m_multipleModes
protected

Flag to determine if use multiple homogenenous modes are used.

Definition at line 408 of file EquationSystem.h.

Referenced by SessionSummary(), and v_InitObject().

◆ m_nchk

int Nektar::SolverUtils::EquationSystem::m_nchk
protected

◆ m_npointsX

int Nektar::SolverUtils::EquationSystem::m_npointsX
protected

number of points in X direction (if homogeneous)

Definition at line 460 of file EquationSystem.h.

◆ m_npointsY

int Nektar::SolverUtils::EquationSystem::m_npointsY
protected

number of points in Y direction (if homogeneous)

Definition at line 461 of file EquationSystem.h.

Referenced by SessionSummary(), and v_InitObject().

◆ m_npointsZ

int Nektar::SolverUtils::EquationSystem::m_npointsZ
protected

◆ m_NumQuadPointsError

int Nektar::SolverUtils::EquationSystem::m_NumQuadPointsError
protected

Number of Quadrature points used to work out the error.

Definition at line 443 of file EquationSystem.h.

Referenced by ErrorExtraPoints(), v_InitObject(), Nektar::MMFSWE::v_L2Error(), v_L2Error(), Nektar::PulseWaveSystem::v_L2Error(), v_LinfError(), and Nektar::PulseWaveSystem::v_LinfError().

◆ m_projectionType

enum MultiRegions::ProjectionType Nektar::SolverUtils::EquationSystem::m_projectionType
protected

Type of projection; e.g continuous or discontinuous.

Definition at line 422 of file EquationSystem.h.

Referenced by Nektar::LinearSWE::AddCoriolis(), Nektar::NonlinearPeregrine::AddCoriolis(), Nektar::NonlinearSWE::AddCoriolis(), Nektar::NonlinearPeregrine::AddVariableDepth(), Nektar::NonlinearSWE::AddVariableDepth(), Nektar::UnsteadyAdvectionDiffusion::DoImplicitSolve(), Nektar::CFLtester::DoOdeProjection(), Nektar::MMFAdvection::DoOdeProjection(), Nektar::UnsteadyAdvection::DoOdeProjection(), Nektar::UnsteadyAdvectionDiffusion::DoOdeProjection(), Nektar::UnsteadyDiffusion::DoOdeProjection(), Nektar::UnsteadyInviscidBurger::DoOdeProjection(), Nektar::UnsteadyViscousBurgers::DoOdeProjection(), Nektar::CompressibleFlowSystem::DoOdeProjection(), Nektar::ImageWarpingSystem::DoOdeProjection(), Nektar::LinearSWE::DoOdeProjection(), Nektar::MMFSWE::DoOdeProjection(), Nektar::NonlinearPeregrine::DoOdeProjection(), Nektar::NonlinearSWE::DoOdeProjection(), Nektar::MMFAdvection::DoOdeRhs(), Nektar::UnsteadyViscousBurgers::DoOdeRhs(), Nektar::ImageWarpingSystem::DoOdeRhs(), Nektar::LinearSWE::DoOdeRhs(), Nektar::NonlinearPeregrine::DoOdeRhs(), Nektar::NonlinearSWE::DoOdeRhs(), Nektar::CompressibleFlowSystem::GetStabilityLimit(), Nektar::CompressibleFlowSystem::InitAdvection(), SessionSummary(), Nektar::EigenValuesAdvection::v_DoSolve(), v_InitObject(), Nektar::PulseWaveSystem::v_InitObject(), Nektar::SmoothedProfileMethod::v_InitObject(), Nektar::AcousticSystem::v_InitObject(), Nektar::CFLtester::v_InitObject(), Nektar::EigenValuesAdvection::v_InitObject(), Nektar::UnsteadyAdvection::v_InitObject(), Nektar::UnsteadyAdvectionDiffusion::v_InitObject(), Nektar::UnsteadyDiffusion::v_InitObject(), Nektar::UnsteadyInviscidBurger::v_InitObject(), Nektar::UnsteadyReactionDiffusion::v_InitObject(), Nektar::UnsteadyViscousBurgers::v_InitObject(), Nektar::LinearSWE::v_InitObject(), Nektar::NonlinearPeregrine::v_InitObject(), Nektar::NonlinearSWE::v_InitObject(), Nektar::ShallowWaterSystem::v_InitObject(), and v_SetInitialConditions().

◆ m_session

LibUtilities::SessionReaderSharedPtr Nektar::SolverUtils::EquationSystem::m_session
protected

The session reader.

Definition at line 356 of file EquationSystem.h.

Referenced by Nektar::LinearElasticSystem::BuildMatrixSystem(), Nektar::CFSImplicit::CalcTraceNumericalFlux(), Nektar::SolverUtils::UnsteadySystem::CheckForRestartTime(), Nektar::SolverUtils::UnsteadySystem::CheckSteadyState(), Nektar::SolverUtils::MMFSystem::CopyBoundaryTrace(), Nektar::IncNavierStokes::DefinedForcing(), Nektar::CoupledLinearNS::DefineForcingTerm(), Nektar::Bidomain::DoImplicitSolve(), Nektar::Bidomain::DoOdeRhs(), Nektar::BidomainRoth::DoOdeRhs(), Nektar::ImageWarpingSystem::DoOdeRhs(), EquationSystem(), ErrorExtraPoints(), Nektar::CompressibleFlowSystem::EvaluateIsentropicVortex(), Nektar::PulseWavePropagation::GetFluxVector(), GetFunction(), Nektar::SmoothedProfileMethod::GetFunctionHdl(), GetNvariables(), Nektar::IncNavierStokes::GetPivotPoint(), GetSession(), Nektar::UnsteadyAdvectionDiffusion::GetSubstepTimeStep(), GetVariable(), Nektar::Helmholtz::Helmholtz(), ImportFld(), ImportFldToMultiDomains(), Nektar::CompressibleFlowSystem::InitAdvection(), Nektar::CFSImplicit::InitialiseNonlinSysSolver(), Nektar::CompressibleFlowSystem::InitialiseParameters(), Nektar::SolverUtils::UnsteadySystem::InitializeSteadyState(), Nektar::NavierStokesCFE::InitObject_Explicit(), Nektar::VelocityCorrectionScheme::MeasureFlowrate(), Nektar::SolverUtils::MMFSystem::MMFInitObject(), PrintSummary(), Nektar::SmoothedProfileMethod::ReadPhi(), SessionSummary(), Nektar::AcousticSystem::SetBoundaryConditions(), Nektar::LinearSWE::SetBoundaryConditions(), Nektar::NonlinearSWE::SetBoundaryConditions(), SetBoundaryConditions(), Nektar::IncNavierStokes::SetBoundaryConditions(), Nektar::PulseWavePropagation::SetPulseWaveBoundaryConditions(), Nektar::CoupledLinearNS::SetUpCoupledMatrix(), Nektar::PulseWaveSystem::SetUpDomainInterfaceBCs(), Nektar::PulseWaveSystem::SetUpDomainInterfaces(), Nektar::VelocityCorrectionScheme::SetUpExtrapolation(), Nektar::VelocityCorrectionScheme::SetupFlowrate(), Nektar::SolverUtils::MMFSystem::SetUpMovingFrames(), Nektar::VelocityCorrectionScheme::SetUpSVV(), Nektar::SmoothedProfileMethod::SolveCorrectedVelocity(), Nektar::UnsteadyAdvectionDiffusion::SubStepAdvance(), Nektar::SteadyAdvectionDiffusion::v_DoInitialise(), Nektar::PulseWaveSystem::v_DoInitialise(), Nektar::CoupledLinearNS::v_DoInitialise(), Nektar::SolverUtils::UnsteadySystem::v_DoSolve(), Nektar::MMFAdvection::v_DoSolve(), Nektar::IterativeElasticSystem::v_DoSolve(), Nektar::LinearElasticSystem::v_DoSolve(), Nektar::MMFMaxwell::v_DoSolve(), Nektar::PulseWaveSystem::v_DoSolve(), Nektar::MMFSWE::v_DoSolve(), v_EvaluateExactSolution(), Nektar::CompressibleFlowSystem::v_EvaluateExactSolution(), Nektar::AcousticSystem::v_ExtraFldOutput(), Nektar::CompressibleFlowSystem::v_ExtraFldOutput(), Nektar::NavierStokesCFE::v_ExtraFldOutput(), Nektar::Poisson::v_GenerateSummary(), Nektar::Projection::v_GenerateSummary(), Nektar::UnsteadyAdvection::v_GenerateSummary(), Nektar::UnsteadyAdvectionDiffusion::v_GenerateSummary(), Nektar::CompressibleFlowSystem::v_GenerateSummary(), Nektar::VelocityCorrectionScheme::v_GenerateSummary(), Nektar::VCSImplicit::v_GenerateSummary(), Nektar::VCSWeakPressure::v_GenerateSummary(), Nektar::LinearSWE::v_GenerateSummary(), Nektar::SolverUtils::UnsteadySystem::v_GenerateSummary(), Nektar::Monodomain::v_GenerateSummary(), Nektar::VelocityCorrectionScheme::v_GetForceDimension(), Nektar::CoupledLinearNS::v_GetForceDimension(), v_GetSystemSingularChecks(), Nektar::Helmholtz::v_GetSystemSingularChecks(), Nektar::Laplace::v_GetSystemSingularChecks(), Nektar::Poisson::v_GetSystemSingularChecks(), Nektar::VelocityCorrectionScheme::v_GetSystemSingularChecks(), v_InitObject(), Nektar::PulseWavePropagation::v_InitObject(), Nektar::PulseWaveSystem::v_InitObject(), Nektar::SolverUtils::AdvectionSystem::v_InitObject(), Nektar::SolverUtils::UnsteadySystem::v_InitObject(), Nektar::Bidomain::v_InitObject(), Nektar::BidomainRoth::v_InitObject(), Nektar::Monodomain::v_InitObject(), Nektar::MMFDiffusion::v_InitObject(), Nektar::ImageWarpingSystem::v_InitObject(), Nektar::CoupledLinearNS::v_InitObject(), Nektar::IncNavierStokes::v_InitObject(), Nektar::SmoothedProfileMethod::v_InitObject(), Nektar::VCSMapping::v_InitObject(), Nektar::VelocityCorrectionScheme::v_InitObject(), Nektar::PulseWaveSystemOutput::v_InitObject(), Nektar::AcousticSystem::v_InitObject(), Nektar::APE::v_InitObject(), Nektar::LEE::v_InitObject(), Nektar::CFLtester::v_InitObject(), Nektar::EigenValuesAdvection::v_InitObject(), Nektar::MMFAdvection::v_InitObject(), Nektar::Poisson::v_InitObject(), Nektar::Projection::v_InitObject(), Nektar::SteadyAdvectionDiffusionReaction::v_InitObject(), Nektar::UnsteadyAdvection::v_InitObject(), Nektar::UnsteadyAdvectionDiffusion::v_InitObject(), Nektar::UnsteadyDiffusion::v_InitObject(), Nektar::UnsteadyInviscidBurger::v_InitObject(), Nektar::UnsteadyReactionDiffusion::v_InitObject(), Nektar::UnsteadyViscousBurgers::v_InitObject(), Nektar::CompressibleFlowSystem::v_InitObject(), Nektar::CFSImplicit::v_InitObject(), Nektar::Dummy::v_InitObject(), Nektar::IterativeElasticSystem::v_InitObject(), Nektar::LinearElasticSystem::v_InitObject(), Nektar::MMFMaxwell::v_InitObject(), Nektar::LinearSWE::v_InitObject(), Nektar::MMFSWE::v_InitObject(), Nektar::NonlinearPeregrine::v_InitObject(), Nektar::NonlinearSWE::v_InitObject(), Nektar::ShallowWaterSystem::v_InitObject(), v_L2Error(), Nektar::PulseWaveSystem::v_L2Error(), v_LinfError(), Nektar::PulseWaveSystem::v_LinfError(), Nektar::Dummy::v_Output(), Nektar::Dummy::v_PostIntegrate(), Nektar::AcousticSystem::v_PreIntegrate(), Nektar::Dummy::v_PreIntegrate(), Nektar::SolverUtils::UnsteadySystem::v_PrintStatusInformation(), Nektar::CFSImplicit::v_PrintStatusInformation(), Nektar::SolverUtils::UnsteadySystem::v_PrintSummaryStatistics(), Nektar::CFSImplicit::v_PrintSummaryStatistics(), v_SetInitialConditions(), Nektar::CompressibleFlowSystem::v_SetInitialConditions(), Nektar::VCSMapping::v_SolvePressure(), Nektar::VCSMapping::v_SolveViscous(), WriteFld(), Nektar::IterativeElasticSystem::WriteGeometry(), and Nektar::PulseWaveSystem::WriteVessels().

◆ m_sessionFunctions

std::map<std::string, SolverUtils::SessionFunctionSharedPtr> Nektar::SolverUtils::EquationSystem::m_sessionFunctions
protected

Map of known SessionFunctions.

Definition at line 359 of file EquationSystem.h.

Referenced by GetFunction().

◆ m_sessionName

std::string Nektar::SolverUtils::EquationSystem::m_sessionName
protected

◆ m_singleMode

bool Nektar::SolverUtils::EquationSystem::m_singleMode
protected

◆ m_spacedim

int Nektar::SolverUtils::EquationSystem::m_spacedim
protected

Spatial dimension (>= expansion dim).

Definition at line 400 of file EquationSystem.h.

Referenced by Nektar::CFSImplicit::AddMatNSBlkDiagBnd(), Nektar::CFSImplicit::AddMatNSBlkDiagVol(), Nektar::NonlinearPeregrine::AddVariableDepth(), Nektar::NonlinearSWE::AddVariableDepth(), Nektar::CFSImplicit::CalcVolJacStdMat(), Nektar::SolverUtils::MMFSystem::CheckMovingFrames(), Nektar::MMFMaxwell::Checkpoint_EDFluxOutput(), Nektar::MMFMaxwell::Checkpoint_EnergyOutput(), Nektar::MMFSWE::Checkpoint_Output_Cartesian(), Nektar::MMFMaxwell::Checkpoint_PlotOutput(), Nektar::MMFMaxwell::Checkpoint_TotPlotOutput(), Nektar::MMFSWE::Compute_demdt_cdot_ek(), Nektar::SolverUtils::MMFSystem::ComputeCurl(), Nektar::SolverUtils::MMFSystem::Computedemdxicdote(), Nektar::SolverUtils::MMFSystem::ComputeDivCurlMF(), Nektar::MMFSWE::ComputeEnstrophy(), Nektar::SolverUtils::MMFSystem::ComputeMFtrace(), Nektar::MMFAdvection::ComputeNablaCdotVelocity(), Nektar::MMFSWE::ComputeNablaCdotVelocity(), Nektar::SolverUtils::MMFSystem::ComputencdotMF(), Nektar::SolverUtils::MMFSystem::ComputeNtimesF12(), Nektar::SolverUtils::MMFSystem::ComputeNtimesFz(), Nektar::SolverUtils::MMFSystem::ComputeNtimesMF(), Nektar::SolverUtils::MMFSystem::ComputeNtimestimesdFz(), Nektar::MMFAdvection::ComputeveldotMF(), Nektar::SolverUtils::MMFSystem::DeriveCrossProductMF(), Nektar::CompressibleFlowSystem::DoAdvection(), Nektar::CFSImplicit::DoAdvectionCoeff(), Nektar::Bidomain::DoImplicitSolve(), Nektar::AcousticSystem::DoOdeRhs(), Nektar::MMFAdvection::DoOdeRhs(), Nektar::PulseWavePropagation::DoOdeRhs(), Nektar::LinearSWE::DoOdeRhs(), Nektar::NonlinearSWE::DoOdeRhs(), Nektar::MMFAdvection::EvaluateAdvectionVelocity(), Nektar::CompressibleFlowSystem::EvaluateIsentropicVortex(), Nektar::LinearSWE::GetFluxVector(), Nektar::NonlinearPeregrine::GetFluxVector(), Nektar::NonlinearSWE::GetFluxVector(), Nektar::CompressibleFlowSystem::GetFluxVector(), Nektar::UnsteadyAdvection::GetFluxVectorDeAlias(), Nektar::CompressibleFlowSystem::GetFluxVectorDeAlias(), Nektar::CFSImplicit::GetFluxVectorJacPoint(), Nektar::UnsteadyInviscidBurger::GetNormalVelocity(), Nektar::IncNavierStokes::GetPivotPoint(), Nektar::CFSImplicit::GetTraceJac(), Nektar::LinearSWE::GetVelocityVector(), Nektar::NonlinearPeregrine::GetVelocityVector(), Nektar::NonlinearSWE::GetVelocityVector(), Nektar::SolverUtils::MMFSystem::GramSchumitz(), Nektar::CFSImplicit::InitialiseNonlinSysSolver(), Nektar::MMFSWE::IsolatedMountainFlow(), Nektar::VelocityCorrectionScheme::MeasureFlowrate(), Nektar::SolverUtils::MMFSystem::MMFInitObject(), Nektar::CFSImplicit::NumCalcRiemFluxJac(), Nektar::SolverUtils::MMFSystem::NumericalMaxwellFluxTE(), Nektar::SolverUtils::MMFSystem::NumericalMaxwellFluxTM(), Nektar::MMFSWE::RossbyWave(), SessionSummary(), Nektar::IncNavierStokes::SetMRFDomainVelBCs(), Nektar::IncNavierStokes::SetMRFWallBCs(), Nektar::VelocityCorrectionScheme::SetupFlowrate(), Nektar::SolverUtils::MMFSystem::SetUpMovingFrames(), Nektar::IncNavierStokes::SetZeroNormalVelocity(), Nektar::MMFSWE::SteadyZonalFlow(), Nektar::MMFMaxwell::TestMaxwellSphere(), Nektar::MMFSWE::TestSWE2Dproblem(), Nektar::MMFSWE::TestVorticityComputation(), Nektar::MMFSWE::UnstableJetFlow(), Nektar::MMFSWE::UnsteadyZonalFlow(), Nektar::LEE::v_AddLinTerm(), Nektar::NavierStokesImplicitCFE::v_CalcPhysDeriv(), Nektar::SolverUtils::UnsteadySystem::v_DoSolve(), Nektar::SteadyAdvectionDiffusion::v_DoSolve(), Nektar::CompressibleFlowSystem::v_ExtraFldOutput(), Nektar::NavierStokesCFE::v_ExtraFldOutput(), Nektar::NavierStokesImplicitCFE::v_GetDiffusionFluxJacPoint(), Nektar::APE::v_GetFluxVector(), Nektar::LEE::v_GetFluxVector(), Nektar::AcousticSystem::v_GetMaxStdVelocity(), Nektar::CompressibleFlowSystem::v_GetMaxStdVelocity(), Nektar::IncNavierStokes::v_GetVelocity(), Nektar::NavierStokesCFE::v_GetViscousFluxVector(), Nektar::NavierStokesCFEAxisym::v_GetViscousFluxVector(), Nektar::NavierStokesCFE::v_GetViscousFluxVectorDeAlias(), v_InitObject(), Nektar::Bidomain::v_InitObject(), Nektar::BidomainRoth::v_InitObject(), Nektar::Monodomain::v_InitObject(), Nektar::MMFDiffusion::v_InitObject(), Nektar::ImageWarpingSystem::v_InitObject(), Nektar::IncNavierStokes::v_InitObject(), Nektar::AcousticSystem::v_InitObject(), Nektar::CFLtester::v_InitObject(), Nektar::EigenValuesAdvection::v_InitObject(), Nektar::MMFAdvection::v_InitObject(), Nektar::SteadyAdvectionDiffusion::v_InitObject(), Nektar::UnsteadyAdvection::v_InitObject(), Nektar::UnsteadyAdvectionDiffusion::v_InitObject(), Nektar::CompressibleFlowSystem::v_InitObject(), Nektar::NavierStokesImplicitCFE::v_InitObject(), Nektar::MMFMaxwell::v_InitObject(), Nektar::ShallowWaterSystem::v_InitObject(), Nektar::APE::v_RiemannInvariantBC(), Nektar::LEE::v_RiemannInvariantBC(), Nektar::VelocityCorrectionScheme::v_SolveUnsteadyStokesSystem(), Nektar::SolverUtils::MMFSystem::VectorAvgMagnitude(), Nektar::AcousticSystem::WallBC(), Nektar::LinearSWE::WallBoundary(), Nektar::NonlinearPeregrine::WallBoundary(), Nektar::NonlinearSWE::WallBoundary(), and Nektar::AcousticSystem::WhiteNoiseBC().

◆ m_specHP_dealiasing

bool Nektar::SolverUtils::EquationSystem::m_specHP_dealiasing
protected

◆ m_steps

int Nektar::SolverUtils::EquationSystem::m_steps
protected

◆ m_time

NekDouble Nektar::SolverUtils::EquationSystem::m_time
protected

Current time of simulation.

Definition at line 371 of file EquationSystem.h.

Referenced by Nektar::SolverUtils::UnsteadySystem::CheckSteadyState(), Nektar::AcousticSystem::DoOdeRhs(), ErrorExtraPoints(), Nektar::CoupledLinearNS::EvaluateNewtonRHS(), GetFinalTime(), SetTime(), Nektar::IncNavierStokes::SetWomersleyBoundary(), Nektar::SolverUtils::UnsteadySystem::v_DoInitialise(), Nektar::VelocityCorrectionScheme::v_DoInitialise(), Nektar::SolverUtils::UnsteadySystem::v_DoSolve(), Nektar::MMFAdvection::v_DoSolve(), Nektar::IterativeElasticSystem::v_DoSolve(), Nektar::MMFMaxwell::v_DoSolve(), Nektar::PulseWaveSystem::v_DoSolve(), Nektar::MMFSWE::v_DoSolve(), v_InitObject(), Nektar::PulseWaveSystem::v_InitObject(), Nektar::SolverUtils::UnsteadySystem::v_InitObject(), Nektar::IncNavierStokes::v_InitObject(), Nektar::APE::v_InitObject(), Nektar::LEE::v_InitObject(), Nektar::MMFSWE::v_L2Error(), v_L2Error(), Nektar::PulseWaveSystem::v_L2Error(), Nektar::MMFSWE::v_LinfError(), v_LinfError(), Nektar::PulseWaveSystem::v_LinfError(), Nektar::Dummy::v_PostIntegrate(), Nektar::VelocityCorrectionScheme::v_PostIntegrate(), Nektar::AcousticSystem::v_PreIntegrate(), Nektar::UnsteadyAdvectionDiffusion::v_PreIntegrate(), Nektar::Dummy::v_PreIntegrate(), Nektar::IncNavierStokes::v_PreIntegrate(), Nektar::SolverUtils::UnsteadySystem::v_PrintStatusInformation(), v_SetInitialConditions(), Nektar::VCSImplicit::v_SetUpPressureForcing(), Nektar::VCSImplicit::v_SetUpViscousForcing(), Nektar::CompressibleFlowSystem::v_SteadyStateResidual(), Nektar::CFSImplicit::v_UpdateTimeStepCheck(), Nektar::AcousticSystem::WhiteNoiseBC(), WriteFld(), and Nektar::PulseWaveSystem::WriteVessels().

◆ m_TimeIncrementFactor

NekDouble Nektar::SolverUtils::EquationSystem::m_TimeIncrementFactor
protected

◆ m_timestep

NekDouble Nektar::SolverUtils::EquationSystem::m_timestep
protected

◆ m_traceNormals

Array<OneD, Array<OneD, NekDouble> > Nektar::SolverUtils::EquationSystem::m_traceNormals
protected

Array holding trace normals for DG simulations in the forwards direction.

Definition at line 425 of file EquationSystem.h.

Referenced by Nektar::SolverUtils::MMFSystem::AverageMaxwellFlux1D(), Nektar::SolverUtils::MMFSystem::ComputencdotMF(), Nektar::SolverUtils::MMFSystem::ComputeNtimesMF(), Nektar::SolverUtils::MMFSystem::ComputeNtimestimesdFz(), Nektar::NonlinearPeregrine::DoOdeRhs(), Nektar::AcousticSystem::GetNormals(), Nektar::CompressibleFlowSystem::GetNormals(), Nektar::ShallowWaterSystem::GetNormals(), Nektar::UnsteadyAdvectionDiffusion::GetNormalVel(), Nektar::CFLtester::GetNormalVelocity(), Nektar::EigenValuesAdvection::GetNormalVelocity(), Nektar::MMFAdvection::GetNormalVelocity(), Nektar::UnsteadyAdvection::GetNormalVelocity(), Nektar::UnsteadyInviscidBurger::GetNormalVelocity(), Nektar::ImageWarpingSystem::GetNormalVelocity(), Nektar::UnsteadyViscousBurgers::GetNormalVelocity(), GetTraceNormals(), Nektar::SolverUtils::MMFSystem::LaxFriedrichMaxwellFlux1D(), Nektar::SolverUtils::MMFSystem::UpwindMaxwellFlux1D(), v_InitObject(), Nektar::CompressibleFlowSystem::v_InitObject(), Nektar::APE::v_RiemannInvariantBC(), Nektar::LEE::v_RiemannInvariantBC(), Nektar::AcousticSystem::WallBC(), Nektar::LinearSWE::WallBoundary(), Nektar::NonlinearPeregrine::WallBoundary(), Nektar::NonlinearSWE::WallBoundary(), Nektar::LinearSWE::WallBoundary2D(), Nektar::NonlinearPeregrine::WallBoundary2D(), Nektar::NonlinearSWE::WallBoundary2D(), Nektar::NonlinearPeregrine::WallBoundaryForcing(), and Nektar::AcousticSystem::WhiteNoiseBC().

◆ m_useFFT

bool Nektar::SolverUtils::EquationSystem::m_useFFT
protected

Flag to determine if FFT is used for homogeneous transform.

Definition at line 410 of file EquationSystem.h.

Referenced by SessionSummary(), v_InitObject(), and Nektar::CoupledLinearNS::v_InitObject().

◆ m_verbose

bool Nektar::SolverUtils::EquationSystem::m_verbose
protected

Definition at line 354 of file EquationSystem.h.

Referenced by Nektar::CFSImplicit::CalcRefValues(), and v_InitObject().

◆ m_windowPIT

int Nektar::SolverUtils::EquationSystem::m_windowPIT = 0
protected

Index of windows for parallel-in-time time iteration.

Definition at line 398 of file EquationSystem.h.

Referenced by SetWindowNumberPIT(), v_Output(), and Nektar::CoupledLinearNS::v_Output().

◆ projectionTypeLookupIds

std::string Nektar::SolverUtils::EquationSystem::projectionTypeLookupIds
staticprotected