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 SetUpTraceNormals (void)
 
SOLVER_UTILS_EXPORT void InitObject (bool DeclareField=true)
 Initialises the members of this object. More...
 
SOLVER_UTILS_EXPORT void DoInitialise ()
 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 NekDouble LinfError (unsigned int field, const Array< OneD, NekDouble > &exactsoln=NullNekDouble1DArray)
 Linf error computation. 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 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 int GetPararealIterationNumber ()
 
SOLVER_UTILS_EXPORT void SetPararealIterationNumber (int num)
 
SOLVER_UTILS_EXPORT bool GetUseInitialCondition ()
 
SOLVER_UTILS_EXPORT void SetUseInitialCondition (bool 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...
 
virtual SOLVER_UTILS_EXPORT bool v_NegatedOp ()
 Virtual function to 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 ()
 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 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_timestepMax = -1.0
 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_pararealIter
 Number of parareal 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_useInitialCondition
 Flag to determine if IC are used. 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 []
 

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 460 of file EquationSystem.h.

Constructor & Destructor Documentation

◆ ~EquationSystem()

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

Destructor.

Destructor for class EquationSystem.

Definition at line 709 of file EquationSystem.cpp.

710 {
711  LibUtilities::NekManager<LocalRegions::MatrixKey, DNekScalMat,
712  LocalRegions::MatrixKey::opLess>::ClearManager();
713  LibUtilities::NekManager<LocalRegions::MatrixKey, DNekScalBlkMat,
714  LocalRegions::MatrixKey::opLess>::ClearManager();
715 }
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 96 of file EquationSystem.cpp.

99  : m_comm(pSession->GetComm()), m_session(pSession), m_graph(pGraph),
100  m_lambda(0), m_infosteps(10),
102 {
103  // set up session names in fieldMetaDataMap
104  const vector<std::string> filenames = m_session->GetFilenames();
105 
106  for (int i = 0; i < filenames.size(); ++i)
107  {
108  string sessionname = "SessionName";
109  sessionname += boost::lexical_cast<std::string>(i);
110  m_fieldMetaDataMap[sessionname] = filenames[i];
111  m_fieldMetaDataMap["ChkFileNum"] = boost::lexical_cast<std::string>(0);
112  }
113 }
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 114 of file EquationSystem.h.

115  {
116  return std::dynamic_pointer_cast<T>(shared_from_this());
117  }

◆ 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 1218 of file EquationSystem.cpp.

1219 {
1220  std::string outname =
1221  m_sessionName + "_BaseFlow_" + boost::lexical_cast<std::string>(n);
1222 
1223  WriteFld(outname + ".chk");
1224 }
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 1157 of file EquationSystem.cpp.

1158 {
1159  if (!ParallelInTime())
1160  {
1161  // Serial-in-time
1162  std::string outname =
1163  m_sessionName + "_" + boost::lexical_cast<std::string>(n);
1164  WriteFld(outname + ".chk");
1165  }
1166  else
1167  {
1168  // Parallel-in-time
1169  std::string paradir = m_sessionName + "_" +
1170  boost::lexical_cast<std::string>(m_pararealIter) +
1171  ".pit";
1172  if (!fs::is_directory(paradir))
1173  {
1174  fs::create_directory(paradir);
1175  }
1176  std::string outname = paradir + "/" + m_sessionName + "_" +
1177  boost::lexical_cast<std::string>(n);
1178  WriteFld(outname + ".chk");
1179  }
1180 }
SOLVER_UTILS_EXPORT bool ParallelInTime()
Check if solver use Parallel-in-Time.
int m_pararealIter
Number of parareal time iteration.

References m_pararealIter, 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(), Nektar::IsentropicVortex::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 1186 of file EquationSystem.cpp.

1190 {
1191  if (!ParallelInTime())
1192  {
1193  // Serial-in-time
1194  std::string outname =
1195  m_sessionName + "_" + boost::lexical_cast<std::string>(n);
1196  WriteFld(outname, field, fieldcoeffs, variables);
1197  }
1198  else
1199  {
1200  // Parallel-in-time
1201  std::string paradir = m_sessionName + "_" +
1202  boost::lexical_cast<std::string>(m_pararealIter) +
1203  ".pit";
1204  if (!fs::is_directory(paradir))
1205  {
1206  fs::create_directory(paradir);
1207  }
1208  std::string outname = paradir + "/" + m_sessionName + "_" +
1209  boost::lexical_cast<std::string>(n);
1210  WriteFld(outname, field, fieldcoeffs, variables);
1211  }
1212 }

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

◆ CopyFromPhysField()

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

Definition at line 798 of file EquationSystem.h.

800 {
801  Vmath::Vcopy(output.size(), m_fields[i]->GetPhys(), 1, output, 1);
802 }
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:1255

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 804 of file EquationSystem.h.

806 {
807  Vmath::Vcopy(input.size(), input, 1, m_fields[i]->UpdatePhys(), 1);
808 }

References m_fields, and Vmath::Vcopy().

◆ DoInitialise()

void Nektar::SolverUtils::EquationSystem::DoInitialise ( )
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 562 of file EquationSystem.h.

563 {
564  v_DoInitialise();
565 }
virtual SOLVER_UTILS_EXPORT void v_DoInitialise()
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 592 of file EquationSystem.h.

593 {
594  v_DoSolve();
595 }
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 875 of file EquationSystem.cpp.

876 {
877  int NumModes = GetNumExpModes();
878  Array<OneD, NekDouble> L2INF(2);
879 
880  const LibUtilities::PointsKey PkeyT1(m_NumQuadPointsError,
882  const LibUtilities::PointsKey PkeyT2(m_NumQuadPointsError,
883  LibUtilities::eGaussRadauMAlpha1Beta0);
884  const LibUtilities::PointsKey PkeyQ1(m_NumQuadPointsError,
886  const LibUtilities::PointsKey PkeyQ2(m_NumQuadPointsError,
888  const LibUtilities::BasisKey BkeyT1(LibUtilities::eModified_A, NumModes,
889  PkeyT1);
890  const LibUtilities::BasisKey BkeyT2(LibUtilities::eModified_B, NumModes,
891  PkeyT2);
892  const LibUtilities::BasisKey BkeyQ1(LibUtilities::eModified_A, NumModes,
893  PkeyQ1);
894  const LibUtilities::BasisKey BkeyQ2(LibUtilities::eModified_A, NumModes,
895  PkeyQ2);
896 
897  LibUtilities::BasisKeyVector Tkeys, Qkeys;
898 
899  // make a copy of the ExpansionInfoMap
900  SpatialDomains::ExpansionInfoMap NewExpInfo = m_graph->GetExpansionInfo();
903  NewExpInfo);
904 
905  // reset new graph with new keys
906  Tkeys.push_back(BkeyT1);
907  Tkeys.push_back(BkeyT2);
908  m_graph->ResetExpansionInfoToBasisKey(ExpInfo, LibUtilities::eTriangle,
909  Tkeys);
910  Qkeys.push_back(BkeyQ1);
911  Qkeys.push_back(BkeyQ2);
912  m_graph->ResetExpansionInfoToBasisKey(ExpInfo, LibUtilities::eQuadrilateral,
913  Qkeys);
914 
917  NewExpInfo);
918 
919  int ErrorCoordim = ErrorExp->GetCoordim(0);
920  int ErrorNq = ErrorExp->GetTotPoints();
921 
922  Array<OneD, NekDouble> ErrorXc0(ErrorNq, 0.0);
923  Array<OneD, NekDouble> ErrorXc1(ErrorNq, 0.0);
924  Array<OneD, NekDouble> ErrorXc2(ErrorNq, 0.0);
925 
926  switch (ErrorCoordim)
927  {
928  case 1:
929  ErrorExp->GetCoords(ErrorXc0);
930  break;
931  case 2:
932  ErrorExp->GetCoords(ErrorXc0, ErrorXc1);
933  break;
934  case 3:
935  ErrorExp->GetCoords(ErrorXc0, ErrorXc1, ErrorXc2);
936  break;
937  }
939  m_session->GetFunction("ExactSolution", field);
940 
941  // Evaluate the exact solution
942  Array<OneD, NekDouble> ErrorSol(ErrorNq);
943 
944  exSol->Evaluate(ErrorXc0, ErrorXc1, ErrorXc2, m_time, ErrorSol);
945 
946  // Calcualte spectral/hp approximation on the quadrature points
947  // of this new expansion basis
948  ErrorExp->BwdTrans(m_fields[field]->GetCoeffs(), ErrorExp->UpdatePhys());
949 
950  L2INF[0] = ErrorExp->L2(ErrorExp->GetPhys(), ErrorSol);
951  L2INF[1] = ErrorExp->Linf(ErrorExp->GetPhys(), ErrorSol);
952 
953  return L2INF;
954 }
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 692 of file EquationSystem.h.

694 {
695  v_EvaluateExactSolution(field, outfield, time);
696 }
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 641 of file EquationSystem.h.

644 {
645  v_ExtraFldOutput(fieldcoeffs, variables);
646 }
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 1143 of file EquationSystem.cpp.

1144 {
1145  for (int i = 0; i < m_fields.size(); i++)
1146  {
1147  m_fields[i]->FwdTrans(m_fields[i]->GetPhys(),
1148  m_fields[i]->UpdateCoeffs());
1149  m_fields[i]->SetPhysState(false);
1150  }
1151 }

References m_fields.

◆ GetCheckpointNumber()

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

Definition at line 281 of file EquationSystem.h.

282  {
283  return m_nchk;
284  }
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 291 of file EquationSystem.h.

292  {
293  return m_checksteps;
294  }
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 763 of file EquationSystem.h.

764 {
765  return m_fields[0]->GetCoeff_Offset(n);
766 }

References m_fields.

◆ GetExpSize()

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

◆ GetFinalTime()

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

Return final time.

Definition at line 705 of file EquationSystem.h.

706 {
707  return m_time;
708 }

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 717 of file EquationSystem.cpp.

719 {
720  MultiRegions::ExpListSharedPtr vField = field;
721  if (!field)
722  {
723  vField = m_fields[0];
724  }
725 
726  if (cache)
727  {
728  if ((m_sessionFunctions.find(name) == m_sessionFunctions.end()) ||
729  (m_sessionFunctions[name]->GetSession() != m_session) ||
730  (m_sessionFunctions[name]->GetExpansion() != vField))
731  {
734  m_session, vField, name, cache);
735  }
736 
737  return m_sessionFunctions[name];
738  }
739  else
740  {
742  new SessionFunction(m_session, vField, name, cache));
743  }
744 }
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 301 of file EquationSystem.h.

302  {
303  return m_infosteps;
304  }

References m_infosteps.

◆ GetNcoeffs() [1/2]

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

Definition at line 710 of file EquationSystem.h.

711 {
712  return m_fields[0]->GetNcoeffs();
713 }

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 715 of file EquationSystem.h.

716 {
717  return m_fields[0]->GetNcoeffs(eid);
718 }

References m_fields.

◆ GetNpoints()

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

Definition at line 778 of file EquationSystem.h.

779 {
780  return m_fields[0]->GetNpoints();
781 }

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 720 of file EquationSystem.h.

721 {
722  return m_graph->GetExpansionInfo()
723  .begin()
724  ->second->m_basisKeyVector[0]
725  .GetNumModes();
726 }

References m_graph.

Referenced by ErrorExtraPoints().

◆ GetNumExpModesPerExp()

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

Definition at line 728 of file EquationSystem.h.

729 {
730  return m_fields[0]->EvalBasisNumModesMaxPerExp();
731 }

References m_fields.

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

◆ GetNvariables()

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

Definition at line 733 of file EquationSystem.h.

734 {
735  return m_session->GetVariables().size();
736 }

References m_session.

Referenced by ImportFldToMultiDomains().

◆ GetPararealIterationNumber()

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

Definition at line 311 of file EquationSystem.h.

312  {
313  return m_pararealIter;
314  }

References m_pararealIter.

◆ GetPhys_Offset()

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

Definition at line 758 of file EquationSystem.h.

759 {
760  return m_fields[0]->GetPhys_Offset(n);
761 }

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 629 of file EquationSystem.h.

630 {
631  return v_GetPressure();
632 }
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 126 of file EquationSystem.h.

127  {
128  return m_session;
129  }

References m_session.

◆ GetSessionName()

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

Get Session name.

Definition at line 109 of file EquationSystem.h.

110  {
111  return m_sessionName;
112  }

References m_sessionName.

◆ GetSteps()

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

Definition at line 783 of file EquationSystem.h.

784 {
785  return m_steps;
786 }
int m_steps
Number of steps to take.

References m_steps.

◆ GetTimeStep()

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

Definition at line 788 of file EquationSystem.h.

789 {
790  return m_timestep;
791 }
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 768 of file EquationSystem.h.

769 {
770  return m_fields[0]->GetNpoints();
771 }

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::CoupledLinearNS::EvaluateNewtonRHS(), Nektar::MMFSWE::EvaluateStandardCoriolis(), Nektar::MMFSWE::EvaluateWaterDepth(), Nektar::RinglebFlow::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::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::IsentropicVortex::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::IsentropicVortex::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 773 of file EquationSystem.h.

774 {
775  return m_fields[0]->GetTotPoints(n);
776 }

References m_fields.

◆ GetTraceNormals()

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

Definition at line 331 of file EquationSystem.h.

332  {
333  return m_traceNormals;
334  }
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 743 of file EquationSystem.h.

744 {
745  return GetTraceNpoints();
746 }
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().

◆ GetUseInitialCondition()

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

Definition at line 321 of file EquationSystem.h.

322  {
323  return m_useInitialCondition;
324  }
bool m_useInitialCondition
Flag to determine if IC are used.

References m_useInitialCondition.

◆ GetVariable()

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

Definition at line 738 of file EquationSystem.h.

739 {
740  return m_session->GetVariable(i);
741 }

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 1327 of file EquationSystem.cpp.

1330 {
1331  std::vector<LibUtilities::FieldDefinitionsSharedPtr> FieldDef;
1332  std::vector<std::vector<NekDouble>> FieldData;
1333  LibUtilities::FieldIOSharedPtr field_fld =
1335  field_fld->Import(infile, FieldDef, FieldData);
1336 
1337  // Copy FieldData into m_fields
1338  for (int j = 0; j < pFields.size(); ++j)
1339  {
1340  Vmath::Zero(pFields[j]->GetNcoeffs(), pFields[j]->UpdateCoeffs(), 1);
1341 
1342  for (int i = 0; i < FieldDef.size(); ++i)
1343  {
1344  ASSERTL1(FieldDef[i]->m_fields[j] == m_session->GetVariable(j),
1345  std::string("Order of ") + infile +
1346  std::string(" data and that defined in "
1347  "m_boundaryconditions differs"));
1348 
1349  pFields[j]->ExtractDataToCoeffs(FieldDef[i], FieldData[i],
1350  FieldDef[i]->m_fields[j],
1351  pFields[j]->UpdateCoeffs());
1352  }
1353  pFields[j]->BwdTrans(pFields[j]->GetCoeffs(), pFields[j]->UpdatePhys());
1354  }
1355 }
#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:492

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 1411 of file EquationSystem.cpp.

1414 {
1415  std::vector<LibUtilities::FieldDefinitionsSharedPtr> FieldDef;
1416  std::vector<std::vector<NekDouble>> FieldData;
1417 
1418  LibUtilities::FieldIOSharedPtr field_fld =
1420  field_fld->Import(infile, FieldDef, FieldData);
1421  int idx = -1;
1422 
1423  Vmath::Zero(pField->GetNcoeffs(), pField->UpdateCoeffs(), 1);
1424 
1425  for (int i = 0; i < FieldDef.size(); ++i)
1426  {
1427  // find the index of the required field in the file.
1428  for (int j = 0; j < FieldData.size(); ++j)
1429  {
1430  if (FieldDef[i]->m_fields[j] == pFieldName)
1431  {
1432  idx = j;
1433  }
1434  }
1435  ASSERTL1(idx >= 0, "Field " + pFieldName + " not found.");
1436 
1437  pField->ExtractDataToCoeffs(FieldDef[i], FieldData[i],
1438  FieldDef[i]->m_fields[idx],
1439  pField->UpdateCoeffs());
1440  }
1441  pField->BwdTrans(pField->GetCoeffs(), pField->UpdatePhys());
1442 }

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 1451 of file EquationSystem.cpp.

1454 {
1455 
1456  ASSERTL0(fieldStr.size() <= coeffs.size(),
1457  "length of fieldstr should be the same as pFields");
1458 
1459  std::vector<LibUtilities::FieldDefinitionsSharedPtr> FieldDef;
1460  std::vector<std::vector<NekDouble>> FieldData;
1461 
1462  LibUtilities::FieldIOSharedPtr field_fld =
1464  field_fld->Import(infile, FieldDef, FieldData);
1465 
1466  // Copy FieldData into m_fields
1467  for (int j = 0; j < fieldStr.size(); ++j)
1468  {
1469  Vmath::Zero(coeffs[j].size(), coeffs[j], 1);
1470  for (int i = 0; i < FieldDef.size(); ++i)
1471  {
1472  m_fields[0]->ExtractDataToCoeffs(FieldDef[i], FieldData[i],
1473  fieldStr[j], coeffs[j]);
1474  }
1475  }
1476 }
#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 1365 of file EquationSystem.cpp.

1368 {
1369  std::vector<LibUtilities::FieldDefinitionsSharedPtr> FieldDef;
1370  std::vector<std::vector<NekDouble>> FieldData;
1371 
1372  LibUtilities::Import(infile, FieldDef, FieldData);
1373 
1374  int nvariables = GetNvariables();
1375 
1376  ASSERTL0(
1377  ndomains * nvariables == pFields.size(),
1378  "Number of fields does not match the number of variables and domains");
1379 
1380  // Copy FieldData into m_fields
1381  for (int j = 0; j < ndomains; ++j)
1382  {
1383  for (int i = 0; i < nvariables; ++i)
1384  {
1385  Vmath::Zero(pFields[j * nvariables + i]->GetNcoeffs(),
1386  pFields[j * nvariables + i]->UpdateCoeffs(), 1);
1387 
1388  for (int n = 0; n < FieldDef.size(); ++n)
1389  {
1390  ASSERTL1(FieldDef[n]->m_fields[i] == m_session->GetVariable(i),
1391  std::string("Order of ") + infile +
1392  std::string(" data and that defined in "
1393  "m_boundaryconditions differs"));
1394 
1395  pFields[j * nvariables + i]->ExtractDataToCoeffs(
1396  FieldDef[n], FieldData[n], FieldDef[n]->m_fields[i],
1397  pFields[j * nvariables + i]->UpdateCoeffs());
1398  }
1399  pFields[j * nvariables + i]->BwdTrans(
1400  pFields[j * nvariables + i]->GetCoeffs(),
1401  pFields[j * nvariables + i]->UpdatePhys());
1402  }
1403  }
1404 }
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 551 of file EquationSystem.h.

552 {
553  v_InitObject(DeclareField);
554 }
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 167 of file EquationSystem.h.

169  {
170  return L2Error(field, NullNekDouble1DArray, Normalised);
171  }
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 619 of file EquationSystem.h.

622 {
623  return v_L2Error(field, exactsoln, Normalised);
624 }
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 609 of file EquationSystem.h.

611 {
612  return v_LinfError(field, exactsoln);
613 }
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().

◆ Output()

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

Perform output operations after solve.

Perform output operations after solve.

Definition at line 600 of file EquationSystem.h.

601 {
602  v_Output();
603 }
virtual SOLVER_UTILS_EXPORT void v_Output(void)

References v_Output().

◆ ParallelInTime()

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

Check if solver use Parallel-in-Time.

Definition at line 358 of file EquationSystem.h.

359  {
360  return m_comm->GetSize() != m_comm->GetSpaceComm()->GetSize();
361  }

References m_comm.

Referenced by Checkpoint_Output(), Nektar::SolverUtils::UnsteadySystem::v_DoSolve(), v_Output(), Nektar::CoupledLinearNS::v_Output(), v_SetInitialConditions(), Nektar::CompressibleFlowSystem::v_SetInitialConditions(), and Nektar::IsentropicVortex::v_SetInitialConditions().

◆ PrintProgressbar()

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

Definition at line 539 of file EquationSystem.h.

541  {
542  LibUtilities::PrintProgressbar(position, goal, "Interpolating");
543  }
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 655 of file EquationSystem.h.

656 {
657  if (m_session->GetComm()->GetRank() == 0)
658  {
659  std::vector<std::pair<std::string, std::string>> vSummary;
660  v_GenerateSummary(vSummary);
661 
662  out << "==============================================================="
663  "========"
664  << std::endl
665  << std::flush;
666  for (auto &x : vSummary)
667  {
668  out << "\t";
669  out.width(20);
670  out << x.first << ": " << x.second << std::endl << std::flush;
671  }
672  out << "==============================================================="
673  "========"
674  << std::endl
675  << std::flush;
676  }
677 }
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 120 of file EquationSystem.h.

121  {
122  m_sessionName = newname;
123  }

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 1482 of file EquationSystem.cpp.

1483 {
1484  AddSummaryItem(s, "EquationType", m_session->GetSolverInfo("EQTYPE"));
1485  AddSummaryItem(s, "Session Name", m_sessionName);
1486  AddSummaryItem(s, "Spatial Dim.", m_spacedim);
1487  AddSummaryItem(s, "Max SEM Exp. Order",
1488  m_fields[0]->EvalBasisNumModesMax());
1489 
1490  if (m_session->GetComm()->GetSize() > 1)
1491  {
1492  AddSummaryItem(s, "Num. Processes", m_session->GetComm()->GetSize());
1493  }
1494 
1496  {
1497  AddSummaryItem(s, "Quasi-3D", "Homogeneous in z-direction");
1498  AddSummaryItem(s, "Expansion Dim.", m_expdim + 1);
1499  AddSummaryItem(s, "Num. Hom. Modes (z)", m_npointsZ);
1500  AddSummaryItem(s, "Hom. length (LZ)", m_LhomZ);
1501  AddSummaryItem(s, "FFT Type", m_useFFT ? "FFTW" : "MVM");
1502  if (m_halfMode)
1503  {
1504  AddSummaryItem(s, "ModeType", "Half Mode");
1505  }
1506  else if (m_singleMode)
1507  {
1508  AddSummaryItem(s, "ModeType", "Single Mode");
1509  }
1510  else if (m_multipleModes)
1511  {
1512  AddSummaryItem(s, "ModeType", "Multiple Modes");
1513  }
1514  }
1515  else if (m_HomogeneousType == eHomogeneous2D)
1516  {
1517  AddSummaryItem(s, "Quasi-3D", "Homogeneous in yz-plane");
1518  AddSummaryItem(s, "Expansion Dim.", m_expdim + 2);
1519  AddSummaryItem(s, "Num. Hom. Modes (y)", m_npointsY);
1520  AddSummaryItem(s, "Num. Hom. Modes (z)", m_npointsZ);
1521  AddSummaryItem(s, "Hom. length (LY)", m_LhomY);
1522  AddSummaryItem(s, "Hom. length (LZ)", m_LhomZ);
1523  AddSummaryItem(s, "FFT Type", m_useFFT ? "FFTW" : "MVM");
1524  }
1525  else
1526  {
1527  AddSummaryItem(s, "Expansion Dim.", m_expdim);
1528  }
1529 
1530  if (m_session->DefinesSolverInfo("UpwindType"))
1531  {
1532  AddSummaryItem(s, "Riemann Solver",
1533  m_session->GetSolverInfo("UpwindType"));
1534  }
1535 
1536  if (m_session->DefinesSolverInfo("AdvectionType"))
1537  {
1538  std::string AdvectionType;
1539  AdvectionType = m_session->GetSolverInfo("AdvectionType");
1541  s, "Advection Type",
1542  GetAdvectionFactory().GetClassDescription(AdvectionType));
1543  }
1544 
1546  {
1547  AddSummaryItem(s, "Projection Type", "Continuous Galerkin");
1548  }
1550  {
1551  AddSummaryItem(s, "Projection Type", "Discontinuous Galerkin");
1552  }
1554  {
1555  AddSummaryItem(s, "Projection Type",
1556  "Mixed Continuous Galerkin and Discontinuous");
1557  }
1558 
1559  if (m_session->DefinesSolverInfo("DiffusionType"))
1560  {
1561  std::string DiffusionType;
1562  DiffusionType = m_session->GetSolverInfo("DiffusionType");
1564  s, "Diffusion Type",
1565  GetDiffusionFactory().GetClassDescription(DiffusionType));
1566  }
1567 }
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 286 of file EquationSystem.h.

287  {
288  m_nchk = num;
289  }

References m_nchk.

◆ SetCheckpointSteps()

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

Definition at line 296 of file EquationSystem.h.

297  {
298  m_checksteps = num;
299  }

References m_checksteps.

◆ SetInfoSteps()

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

Definition at line 306 of file EquationSystem.h.

307  {
308  m_infosteps = num;
309  }

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 684 of file EquationSystem.h.

687 {
688  v_SetInitialConditions(initialtime, dumpInitialConditions, domain);
689 }
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::SolverUtils::UnsteadySystem::v_DoInitialise(), Nektar::PulseWaveSystem::v_DoInitialise(), Nektar::MMFSWE::v_DoInitialise(), and Nektar::CoupledLinearNS::v_DoInitialise().

◆ SetInitialStep()

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

Definition at line 346 of file EquationSystem.h.

347  {
348  m_initialStep = step;
349  }
int m_initialStep
Number of the step where the simulation should begin.

References m_initialStep.

◆ SetLambda()

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

Set parameter m_lambda.

Definition at line 679 of file EquationSystem.h.

680 {
681  m_lambda = lambda;
682 }

References m_lambda.

◆ SetModifiedBasis()

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

◆ SetPararealIterationNumber()

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

Definition at line 316 of file EquationSystem.h.

317  {
318  m_pararealIter = num;
319  }

References m_pararealIter.

◆ SetSteps()

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

Definition at line 793 of file EquationSystem.h.

794 {
795  m_steps = steps;
796 }

References m_steps.

◆ SetTime()

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

Definition at line 336 of file EquationSystem.h.

337  {
338  m_time = time;
339  }

References m_time.

◆ SetTimeStep()

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

Definition at line 341 of file EquationSystem.h.

342  {
343  m_timestep = timestep;
344  }

References m_timestep.

◆ SetUpTraceNormals()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::EquationSystem::SetUpTraceNormals ( void  )

◆ SetUseInitialCondition()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::EquationSystem::SetUseInitialCondition ( bool  num)
inline

Definition at line 326 of file EquationSystem.h.

327  {
328  m_useInitialCondition = num;
329  }

References m_useInitialCondition.

◆ 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 572 of file EquationSystem.h.

573 {
575 }
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 582 of file EquationSystem.h.

583 {
585 }
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 699 of file EquationSystem.h.

700 {
701  return m_fields;
702 }

References m_fields.

◆ v_DoInitialise()

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

Virtual function for initialisation implementation.

By default, nothing needs initialising at the EquationSystem level.

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

Definition at line 1062 of file EquationSystem.cpp.

1063 {
1064 }

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::RinglebFlow, Nektar::IsentropicVortex, Nektar::MMFSWE, Nektar::MMFMaxwell, Nektar::MMFDiffusion, and Nektar::MMFAdvection.

Definition at line 1045 of file EquationSystem.cpp.

1048 {
1049  ASSERTL0(outfield.size() == m_fields[field]->GetNpoints(),
1050  "ExactSolution array size mismatch.");
1051  Vmath::Zero(outfield.size(), outfield, 1);
1052  if (m_session->DefinesFunction("ExactSolution"))
1053  {
1054  GetFunction("ExactSolution")
1055  ->Evaluate(m_session->GetVariable(field), outfield, time);
1056  }
1057 }
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(), and Nektar::MMFDiffusion::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::LinearElasticSystem, Nektar::NavierStokesCFE, Nektar::CompressibleFlowSystem, and Nektar::AcousticSystem.

Definition at line 1581 of file EquationSystem.cpp.

1584 {
1585  boost::ignore_unused(fieldcoeffs, variables);
1586 }

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::IncNavierStokes, and Nektar::CompressibleFlowSystem.

Definition at line 1574 of file EquationSystem.cpp.

1575 {
1576  ASSERTL0(false, "This function is not valid for the Base class");
1578  return null;
1579 }

References ASSERTL0.

Referenced by GetPressure().

◆ v_GetSystemSingularChecks()

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

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

Definition at line 1569 of file EquationSystem.cpp.

1570 {
1571  return Array<OneD, bool>(m_session->GetVariables().size(), false);
1572 }

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

Definition at line 118 of file EquationSystem.cpp.

119 {
120  // Save the basename of input file name for output details
121  m_sessionName = m_session->GetSessionName();
122 
123  // Instantiate a field reader/writer
125 
126  // Also read and store the boundary conditions
129  m_session, m_graph);
130 
131  // Set space dimension for use in class
132  m_spacedim = m_graph->GetSpaceDimension();
133 
134  // Setting parameteres for homogenous problems
135  m_HomoDirec = 0;
136  m_useFFT = false;
137  m_homogen_dealiasing = false;
138  m_singleMode = false;
139  m_halfMode = false;
140  m_multipleModes = false;
142 
143  m_verbose = m_session->DefinesCmdLineArgument("verbose");
144 
145  if (m_session->DefinesSolverInfo("HOMOGENEOUS"))
146  {
147  std::string HomoStr = m_session->GetSolverInfo("HOMOGENEOUS");
148  m_spacedim = 3;
149 
150  if ((HomoStr == "HOMOGENEOUS1D") || (HomoStr == "Homogeneous1D") ||
151  (HomoStr == "1D") || (HomoStr == "Homo1D"))
152  {
154  m_session->LoadParameter("LZ", m_LhomZ);
155  m_HomoDirec = 1;
156 
157  if (m_session->DefinesSolverInfo("ModeType"))
158  {
159  m_session->MatchSolverInfo("ModeType", "SingleMode",
160  m_singleMode, false);
161  m_session->MatchSolverInfo("ModeType", "HalfMode", m_halfMode,
162  false);
163  m_session->MatchSolverInfo("ModeType", "MultipleModes",
164  m_multipleModes, false);
165  }
166 
167  // Stability Analysis flags
168  if (m_session->DefinesSolverInfo("ModeType"))
169  {
170  if (m_singleMode)
171  {
172  m_npointsZ = 2;
173  }
174  else if (m_halfMode)
175  {
176  m_npointsZ = 1;
177  }
178  else if (m_multipleModes)
179  {
180  m_npointsZ = m_session->GetParameter("HomModesZ");
181  }
182  else
183  {
184  ASSERTL0(false, "SolverInfo ModeType not valid");
185  }
186  }
187  else
188  {
189  m_npointsZ = m_session->GetParameter("HomModesZ");
190  }
191  }
192 
193  if ((HomoStr == "HOMOGENEOUS2D") || (HomoStr == "Homogeneous2D") ||
194  (HomoStr == "2D") || (HomoStr == "Homo2D"))
195  {
197  m_session->LoadParameter("HomModesY", m_npointsY);
198  m_session->LoadParameter("LY", m_LhomY);
199  m_session->LoadParameter("HomModesZ", m_npointsZ);
200  m_session->LoadParameter("LZ", m_LhomZ);
201  m_HomoDirec = 2;
202  }
203 
204  if ((HomoStr == "HOMOGENEOUS3D") || (HomoStr == "Homogeneous3D") ||
205  (HomoStr == "3D") || (HomoStr == "Homo3D"))
206  {
208  m_session->LoadParameter("HomModesY", m_npointsY);
209  m_session->LoadParameter("LY", m_LhomY);
210  m_session->LoadParameter("HomModesZ", m_npointsZ);
211  m_session->LoadParameter("LZ", m_LhomZ);
212  m_HomoDirec = 2;
213  }
214 
215  m_session->MatchSolverInfo("USEFFT", "FFTW", m_useFFT, false);
216 
217  m_session->MatchSolverInfo("DEALIASING", "True", m_homogen_dealiasing,
218  false);
219  }
220  else
221  {
222  // set to default value so can use to identify 2d or 3D
223  // (homogeneous) expansions
224  m_npointsZ = 1;
225  }
226 
227  m_session->MatchSolverInfo("SPECTRALHPDEALIASING", "True",
228  m_specHP_dealiasing, false);
229  if (m_specHP_dealiasing == false)
230  {
231  m_session->MatchSolverInfo("SPECTRALHPDEALIASING", "On",
232  m_specHP_dealiasing, false);
233  }
234 
235  // Options to determine type of projection from file or directly
236  // from constructor
237  if (m_session->DefinesSolverInfo("PROJECTION"))
238  {
239  std::string ProjectStr = m_session->GetSolverInfo("PROJECTION");
240 
241  if ((ProjectStr == "Continuous") || (ProjectStr == "Galerkin") ||
242  (ProjectStr == "CONTINUOUS") || (ProjectStr == "GALERKIN"))
243  {
245  }
246  else if ((ProjectStr == "MixedCGDG") ||
247  (ProjectStr == "Mixed_CG_Discontinuous"))
248  {
250  }
251  else if (ProjectStr == "DisContinuous")
252  {
254  }
255  else
256  {
257  ASSERTL0(false, "PROJECTION value not recognised");
258  }
259  }
260  else
261  {
262  cerr << "Projection type not specified in SOLVERINFO,"
263  "defaulting to continuous Galerkin"
264  << endl;
266  }
267 
268  // Enforce singularity check for some problems
270 
271  int i;
272  int nvariables = m_session->GetVariables().size();
273  bool DeclareCoeffPhysArrays = true;
274 
275  m_fields = Array<OneD, MultiRegions::ExpListSharedPtr>(nvariables);
276  m_spacedim = m_graph->GetSpaceDimension() + m_HomoDirec;
277  m_expdim = m_graph->GetMeshDimension();
278 
279  if (DeclareFields) // declare field if required
280  {
281  /// Continuous field
284  {
285  switch (m_expdim)
286  {
287  case 1:
288  {
291  {
292  const LibUtilities::PointsKey PkeyY(
294  const LibUtilities::BasisKey BkeyY(
296  const LibUtilities::PointsKey PkeyZ(
298  const LibUtilities::BasisKey BkeyZ(
300 
301  for (i = 0; i < m_fields.size(); i++)
302  {
303  m_fields[i] = MemoryManager<
304  MultiRegions::ContField3DHomogeneous2D>::
305  AllocateSharedPtr(m_session, BkeyY, BkeyZ,
308  m_session->GetVariable(i));
309  }
310  }
311  else
312  {
313  for (i = 0; i < m_fields.size(); i++)
314  {
315  m_fields[i] =
319  m_session->GetVariable(i));
320  }
321  }
322  break;
323  }
324  case 2:
325  {
327  {
328  // Fourier single mode stability analysis
329  if (m_singleMode)
330  {
331  const LibUtilities::PointsKey PkeyZ(
332  m_npointsZ,
334 
335  const LibUtilities::BasisKey BkeyZ(
337  PkeyZ);
338 
339  for (i = 0; i < m_fields.size(); i++)
340  {
341  m_fields[i] = MemoryManager<
342  MultiRegions::ContField3DHomogeneous1D>::
343  AllocateSharedPtr(
344  m_session, BkeyZ, m_LhomZ, m_useFFT,
346  m_session->GetVariable(i),
348  }
349  }
350  // Half mode stability analysis
351  else if (m_halfMode)
352  {
353  const LibUtilities::PointsKey PkeyZ(
354  m_npointsZ,
356 
357  const LibUtilities::BasisKey BkeyZR(
359  PkeyZ);
360 
361  const LibUtilities::BasisKey BkeyZI(
363  PkeyZ);
364 
365  for (i = 0; i < m_fields.size(); i++)
366  {
367  if (m_session->GetVariable(i).compare("w") == 0)
368  {
369  m_fields[i] = MemoryManager<
370  MultiRegions::
371  ContField3DHomogeneous1D>::
372  AllocateSharedPtr(
373  m_session, BkeyZI, m_LhomZ,
375  m_graph, m_session->GetVariable(i),
377  }
378  else
379  {
380  m_fields[i] = MemoryManager<
381  MultiRegions::
382  ContField3DHomogeneous1D>::
383  AllocateSharedPtr(
384  m_session, BkeyZR, m_LhomZ,
386  m_graph, m_session->GetVariable(i),
388  }
389  }
390  }
391  // Normal homogeneous 1D
392  else
393  {
394  const LibUtilities::PointsKey PkeyZ(
396  const LibUtilities::BasisKey BkeyZ(
398 
399  for (i = 0; i < m_fields.size(); i++)
400  {
401  m_fields[i] = MemoryManager<
402  MultiRegions::ContField3DHomogeneous1D>::
403  AllocateSharedPtr(
404  m_session, BkeyZ, m_LhomZ, m_useFFT,
406  m_session->GetVariable(i),
408  }
409  }
410  }
411  else
412  {
413  i = 0;
417  m_session->GetVariable(i),
418  DeclareCoeffPhysArrays,
420  m_fields[0] = firstfield;
421  for (i = 1; i < m_fields.size(); i++)
422  {
423  if (m_graph->SameExpansionInfo(
424  m_session->GetVariable(0),
425  m_session->GetVariable(i)))
426  {
427  m_fields[i] =
430  *firstfield, m_graph,
431  m_session->GetVariable(i),
432  DeclareCoeffPhysArrays,
434  }
435  else
436  {
437  m_fields[i] =
441  m_session->GetVariable(i),
442  DeclareCoeffPhysArrays,
444  }
445  }
446 
447  if (m_projectionType ==
449  {
450  /// Setting up the normals
452  Array<OneD, Array<OneD, NekDouble>>(m_spacedim);
453 
454  for (i = 0; i < m_spacedim; ++i)
455  {
456  m_traceNormals[i] =
457  Array<OneD, NekDouble>(GetTraceNpoints());
458  }
459 
460  m_fields[0]->GetTrace()->GetNormals(m_traceNormals);
461  }
462  }
463 
464  break;
465  }
466  case 3:
467  {
468  i = 0;
472  m_session->GetVariable(i),
473  DeclareCoeffPhysArrays,
475 
476  m_fields[0] = firstfield;
477  for (i = 1; i < m_fields.size(); i++)
478  {
479  if (m_graph->SameExpansionInfo(
480  m_session->GetVariable(0),
481  m_session->GetVariable(i)))
482  {
483  m_fields[i] =
486  *firstfield, m_graph,
487  m_session->GetVariable(i),
488  DeclareCoeffPhysArrays,
490  }
491  else
492  {
493  m_fields[i] =
497  m_session->GetVariable(i),
498  DeclareCoeffPhysArrays,
500  }
501  }
502 
503  if (m_projectionType ==
505  {
506  /// Setting up the normals
508  Array<OneD, Array<OneD, NekDouble>>(m_spacedim);
509  for (i = 0; i < m_spacedim; ++i)
510  {
511  m_traceNormals[i] =
512  Array<OneD, NekDouble>(GetTraceNpoints());
513  }
514 
515  m_fields[0]->GetTrace()->GetNormals(m_traceNormals);
516  // Call the trace on all fields to ensure DG setup.
517  for (i = 1; i < m_fields.size(); ++i)
518  {
519  m_fields[i]->GetTrace();
520  }
521  }
522  break;
523  }
524  default:
525  ASSERTL0(false, "Expansion dimension not recognised");
526  break;
527  }
528  }
529  // Discontinuous field
530  else
531  {
532  switch (m_expdim)
533  {
534  case 1:
535  {
538  {
539  const LibUtilities::PointsKey PkeyY(
541  const LibUtilities::BasisKey BkeyY(
543  const LibUtilities::PointsKey PkeyZ(
545  const LibUtilities::BasisKey BkeyZ(
547 
548  for (i = 0; i < m_fields.size(); i++)
549  {
550  m_fields[i] = MemoryManager<
551  MultiRegions::DisContField3DHomogeneous2D>::
552  AllocateSharedPtr(m_session, BkeyY, BkeyZ,
555  m_session->GetVariable(i));
556  }
557  }
558  else
559  {
560  for (i = 0; i < m_fields.size(); i++)
561  {
562  m_fields[i] =
566  m_session->GetVariable(i));
567  }
568  }
569 
570  break;
571  }
572  case 2:
573  {
575  {
576  const LibUtilities::PointsKey PkeyZ(
578  const LibUtilities::BasisKey BkeyZ(
580 
581  for (i = 0; i < m_fields.size(); i++)
582  {
583  m_fields[i] = MemoryManager<
584  MultiRegions::DisContField3DHomogeneous1D>::
585  AllocateSharedPtr(m_session, BkeyZ, m_LhomZ,
586  m_useFFT,
588  m_session->GetVariable(i));
589  }
590  }
591  else
592  {
593  i = 0;
597  m_session->GetVariable(i));
598  m_fields[0] = firstfield;
599  for (i = 1; i < m_fields.size(); i++)
600  {
601  if (m_graph->SameExpansionInfo(
602  m_session->GetVariable(0),
603  m_session->GetVariable(i)))
604  {
605  m_fields[i] =
608  *firstfield, m_graph,
609  m_session->GetVariable(i));
610  }
611  else
612  {
613  m_fields[i] =
617  m_session->GetVariable(i));
618  }
619  }
620  }
621 
622  break;
623  }
624  case 3:
625  {
627  {
628  ASSERTL0(
629  false,
630  "3D fully periodic problems not implemented yet");
631  }
632  else
633  {
634  i = 0;
638  m_session->GetVariable(i));
639  m_fields[0] = firstfield;
640  for (i = 1; i < m_fields.size(); i++)
641  {
642  if (m_graph->SameExpansionInfo(
643  m_session->GetVariable(0),
644  m_session->GetVariable(i)))
645  {
646  m_fields[i] =
649  *firstfield, m_graph,
650  m_session->GetVariable(i));
651  }
652  else
653  {
654  m_fields[i] =
658  m_session->GetVariable(i));
659  }
660  }
661  }
662  break;
663  }
664  default:
665  ASSERTL0(false, "Expansion dimension not recognised");
666  break;
667  }
668 
669  // Setting up the normals
670  m_traceNormals = Array<OneD, Array<OneD, NekDouble>>(m_spacedim);
671 
672  for (i = 0; i < m_spacedim; ++i)
673  {
674  m_traceNormals[i] =
675  Array<OneD, NekDouble>(GetTraceNpoints(), 0.0);
676  }
677 
678  m_fields[0]->GetTrace()->GetNormals(m_traceNormals);
679  }
680  // Zero all physical fields initially
681  ZeroPhysFields();
682  }
683 
684  // Set Default Parameter
685  m_session->LoadParameter("Time", m_time, 0.0);
686  m_session->LoadParameter("TimeStep", m_timestep, 0.0);
687  m_session->LoadParameter("NumSteps", m_steps, 0);
688  m_session->LoadParameter("IO_CheckSteps", m_checksteps, 0);
689  m_session->LoadParameter("IO_CheckTime", m_checktime, 0.0);
690  m_session->LoadParameter("FinTime", m_fintime, 0);
691  m_session->LoadParameter("NumQuadPointsError", m_NumQuadPointsError, 0);
692 
693  // Check uniqueness of checkpoint output
694  ASSERTL0((m_checktime == 0.0 && m_checksteps == 0) ||
695  (m_checktime > 0.0 && m_checksteps == 0) ||
696  (m_checktime == 0.0 && m_checksteps > 0),
697  "Only one of IO_CheckTime and IO_CheckSteps "
698  "should be set!");
699  m_session->LoadParameter("TimeIncrementFactor", m_TimeIncrementFactor, 1.0);
700 
701  m_nchk = 0;
702  m_pararealIter = 0;
703  m_useInitialCondition = true;
704 }
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:289

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_LhomY, m_LhomZ, m_multipleModes, m_nchk, m_npointsY, m_npointsZ, m_NumQuadPointsError, m_pararealIter, 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_useInitialCondition, 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::PulseWaveSystem, and Nektar::MMFSWE.

Definition at line 769 of file EquationSystem.cpp.

772 {
773  NekDouble L2error = -1.0;
774 
775  if (m_NumQuadPointsError == 0)
776  {
777  if (m_fields[field]->GetPhysState() == false)
778  {
779  m_fields[field]->BwdTrans(m_fields[field]->GetCoeffs(),
780  m_fields[field]->UpdatePhys());
781  }
782 
783  if (exactsoln.size())
784  {
785  L2error =
786  m_fields[field]->L2(m_fields[field]->GetPhys(), exactsoln);
787  }
788  else if (m_session->DefinesFunction("ExactSolution"))
789  {
790  Array<OneD, NekDouble> exactsoln(m_fields[field]->GetNpoints());
791 
792  GetFunction("ExactSolution")
793  ->Evaluate(m_session->GetVariable(field), exactsoln, m_time);
794 
795  L2error =
796  m_fields[field]->L2(m_fields[field]->GetPhys(), exactsoln);
797  }
798  else
799  {
800  L2error = m_fields[field]->L2(m_fields[field]->GetPhys());
801  }
802 
803  if (Normalised == true)
804  {
805  Array<OneD, NekDouble> one(m_fields[field]->GetNpoints(), 1.0);
806 
807  NekDouble Vol = m_fields[field]->Integral(one);
808  L2error = sqrt(L2error * L2error / Vol);
809  }
810  }
811  else
812  {
813  Array<OneD, NekDouble> L2INF(2);
814  L2INF = ErrorExtraPoints(field);
815  L2error = L2INF[0];
816  }
817  return L2error;
818 }
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::PulseWaveSystem, and Nektar::MMFSWE.

Definition at line 826 of file EquationSystem.cpp.

828 {
829  NekDouble Linferror = -1.0;
830 
831  if (m_NumQuadPointsError == 0)
832  {
833  if (m_fields[field]->GetPhysState() == false)
834  {
835  m_fields[field]->BwdTrans(m_fields[field]->GetCoeffs(),
836  m_fields[field]->UpdatePhys());
837  }
838 
839  if (exactsoln.size())
840  {
841  Linferror =
842  m_fields[field]->Linf(m_fields[field]->GetPhys(), exactsoln);
843  }
844  else if (m_session->DefinesFunction("ExactSolution"))
845  {
846  Array<OneD, NekDouble> exactsoln(m_fields[field]->GetNpoints());
847 
848  GetFunction("ExactSolution")
849  ->Evaluate(m_session->GetVariable(field), exactsoln, m_time);
850 
851  Linferror =
852  m_fields[field]->Linf(m_fields[field]->GetPhys(), exactsoln);
853  }
854  else
855  {
856  Linferror = m_fields[field]->Linf(m_fields[field]->GetPhys());
857  }
858  }
859  else
860  {
861  Array<OneD, NekDouble> L2INF(2);
862  L2INF = ErrorExtraPoints(field);
863  Linferror = L2INF[1];
864  }
865 
866  return Linferror;
867 }

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  )
virtual

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 1078 of file EquationSystem.cpp.

1079 {
1080  return false;
1081 }

◆ 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::PulseWaveSystem, Nektar::CoupledLinearNS, Nektar::Dummy, and Nektar::AcousticSystem.

Definition at line 1107 of file EquationSystem.cpp.

1108 {
1109  if (!ParallelInTime())
1110  {
1111  // Serial-in-time
1112  WriteFld(m_sessionName + ".fld");
1113  }
1114  else
1115  {
1116  // Parallel-in-time
1117  std::string newdir = m_sessionName + ".pit";
1118  if (!fs::is_directory(newdir))
1119  {
1120  fs::create_directory(newdir);
1121  }
1122  WriteFld(newdir + "/" + m_sessionName + "_" +
1123  boost::lexical_cast<std::string>(
1124  m_comm->GetTimeComm()->GetRank() + 1) +
1125  ".fld");
1126  }
1127 }

References m_comm, m_sessionName, 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::NonlinearPeregrine, Nektar::IsentropicVortex, Nektar::CompressibleFlowSystem, Nektar::MMFDiffusion, Nektar::Monodomain, Nektar::BidomainRoth, Nektar::Bidomain, Nektar::MMFSWE, Nektar::MMFMaxwell, and Nektar::MMFAdvection.

Definition at line 962 of file EquationSystem.cpp.

965 {
966  boost::ignore_unused(initialtime);
967 
969  {
970  ++m_nchk;
971  return;
972  }
973 
974  if (m_session->GetComm()->GetRank() == 0)
975  {
976  cout << "Initial Conditions:" << endl;
977  }
978 
979  if (m_session->DefinesFunction("InitialConditions"))
980  {
981  GetFunction("InitialConditions")
982  ->Evaluate(m_session->GetVariables(), m_fields, m_time, domain);
983  // Enforce C0 Continutiy of initial condiiton
986  {
987  for (int i = 0; i < m_fields.size(); ++i)
988  {
989  m_fields[i]->LocalToGlobal();
990  m_fields[i]->GlobalToLocal();
991  m_fields[i]->BwdTrans(m_fields[i]->GetCoeffs(),
992  m_fields[i]->UpdatePhys());
993  }
994  }
995 
996  if (m_session->GetComm()->GetRank() == 0)
997  {
998  for (int i = 0; i < m_fields.size(); ++i)
999  {
1000  std::string varName = m_session->GetVariable(i);
1001  cout << " - Field " << varName << ": "
1002  << GetFunction("InitialConditions")
1003  ->Describe(varName, domain)
1004  << endl;
1005  }
1006  }
1007  }
1008  else
1009  {
1010  int nq = m_fields[0]->GetNpoints();
1011  for (int i = 0; i < m_fields.size(); i++)
1012  {
1013  Vmath::Zero(nq, m_fields[i]->UpdatePhys(), 1);
1014  m_fields[i]->SetPhysState(true);
1015  Vmath::Zero(m_fields[i]->GetNcoeffs(), m_fields[i]->UpdateCoeffs(),
1016  1);
1017  if (m_session->GetComm()->GetRank() == 0)
1018  {
1019  cout << " - Field " << m_session->GetVariable(i)
1020  << ": 0 (default)" << endl;
1021  }
1022  }
1023  }
1024 
1025  if (dumpInitialConditions && m_checksteps && m_nchk == 0 &&
1026  !ParallelInTime())
1027  {
1029  }
1030  else if (dumpInitialConditions && m_nchk == 0 && ParallelInTime())
1031  {
1032  std::string newdir = m_sessionName + ".pit";
1033  if (!fs::is_directory(newdir))
1034  {
1035  fs::create_directory(newdir);
1036  }
1037  if (m_comm->GetTimeComm()->GetRank() == 0)
1038  {
1039  WriteFld(newdir + "/" + m_sessionName + "_0.fld");
1040  }
1041  }
1042  ++m_nchk;
1043 }
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, m_useInitialCondition, ParallelInTime(), WriteFld(), and Vmath::Zero().

Referenced by SetInitialConditions(), Nektar::Bidomain::v_SetInitialConditions(), Nektar::BidomainRoth::v_SetInitialConditions(), Nektar::Monodomain::v_SetInitialConditions(), Nektar::MMFDiffusion::v_SetInitialConditions(), Nektar::CompressibleFlowSystem::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::VelocityCorrectionScheme, Nektar::IncNavierStokes, and Nektar::CoupledLinearNS.

Definition at line 1086 of file EquationSystem.cpp.

1087 {
1088 }

Referenced by TransCoeffToPhys().

◆ v_TransPhysToCoeff()

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

Virtual function for transformation to coefficient space.

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

Definition at line 1093 of file EquationSystem.cpp.

1094 {
1095 }

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 1230 of file EquationSystem.cpp.

1231 {
1232  std::vector<Array<OneD, NekDouble>> fieldcoeffs(m_fields.size());
1233  std::vector<std::string> variables(m_fields.size());
1234 
1235  for (int i = 0; i < m_fields.size(); ++i)
1236  {
1237  if (m_fields[i]->GetNcoeffs() == m_fields[0]->GetNcoeffs())
1238  {
1239  fieldcoeffs[i] = m_fields[i]->UpdateCoeffs();
1240  }
1241  else
1242  {
1243  fieldcoeffs[i] = Array<OneD, NekDouble>(m_fields[0]->GetNcoeffs());
1244  m_fields[0]->ExtractCoeffsToCoeffs(
1245  m_fields[i], m_fields[i]->GetCoeffs(), fieldcoeffs[i]);
1246  }
1247  variables[i] = m_boundaryConditions->GetVariable(i);
1248  }
1249 
1250  ExtraFldOutput(fieldcoeffs, variables);
1251 
1252  WriteFld(outname, m_fields[0], fieldcoeffs, variables);
1253 }
SOLVER_UTILS_EXPORT void ExtraFldOutput(std::vector< Array< OneD, NekDouble >> &fieldcoeffs, std::vector< std::string > &variables)

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

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(), Nektar::MMFDiffusion::v_SetInitialConditions(), v_SetInitialConditions(), Nektar::CompressibleFlowSystem::v_SetInitialConditions(), and Nektar::IsentropicVortex::v_SetInitialConditions().

◆ 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 1262 of file EquationSystem.cpp.

1266 {
1267  std::vector<LibUtilities::FieldDefinitionsSharedPtr> FieldDef =
1268  field->GetFieldDefinitions();
1269  std::vector<std::vector<NekDouble>> FieldData(FieldDef.size());
1270 
1271  // Copy Data into FieldData and set variable
1272  for (int j = 0; j < fieldcoeffs.size(); ++j)
1273  {
1274  for (int i = 0; i < FieldDef.size(); ++i)
1275  {
1276  // Could do a search here to find correct variable
1277  FieldDef[i]->m_fields.push_back(variables[j]);
1278  field->AppendFieldData(FieldDef[i], FieldData[i], fieldcoeffs[j]);
1279  }
1280  }
1281 
1282  // Update time in field info if required
1283  if (m_fieldMetaDataMap.find("Time") != m_fieldMetaDataMap.end())
1284  {
1285  m_fieldMetaDataMap["Time"] = boost::lexical_cast<std::string>(m_time);
1286  }
1287 
1288  // Update step in field info if required
1289  if (m_fieldMetaDataMap.find("ChkFileNum") != m_fieldMetaDataMap.end())
1290  {
1291  m_fieldMetaDataMap["ChkFileNum"] =
1292  boost::lexical_cast<std::string>(m_nchk);
1293  }
1294 
1295  // If necessary, add mapping information to metadata
1296  // and output mapping coordinates
1297  Array<OneD, MultiRegions::ExpListSharedPtr> fields(1);
1298  fields[0] = field;
1302  mapping->Output(fieldMetaDataMap, outname);
1303 
1304  // If necessary, add informaton for moving frame reference to metadata
1305  if (m_fieldMetaDataMap.find("Theta_x") != m_fieldMetaDataMap.end())
1306  {
1307  // if one theta exists, add all three thetas
1308  std::vector<std::string> vSuffix = {"_x", "_y", "_z"};
1309  for (int i = 0; i < 3; ++i)
1310  {
1311  std::string sTheta = "Theta" + vSuffix[i];
1312  m_fieldMetaDataMap[sTheta] =
1313  boost::lexical_cast<std::string>(m_movingFrameTheta[i]);
1314  }
1315  }
1316 
1317  m_fld->Write(outname, FieldDef, FieldData, fieldMetaDataMap,
1318  m_session->GetBackups());
1319 }
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:270
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:50
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 1132 of file EquationSystem.cpp.

1133 {
1134  for (int i = 0; i < m_fields.size(); i++)
1135  {
1136  Vmath::Zero(m_fields[i]->GetNpoints(), m_fields[i]->UpdatePhys(), 1);
1137  }
1138 }

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 534 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 441 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 375 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::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::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::RinglebFlow::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::VelocityCorrectionScheme::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::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::IsentropicVortex::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(), Nektar::MMFDiffusion::v_SetInitialConditions(), v_SetInitialConditions(), Nektar::CompressibleFlowSystem::v_SetInitialConditions(), Nektar::IsentropicVortex::v_SetInitialConditions(), Nektar::VelocityCorrectionScheme::v_SetUpPressureForcing(), Nektar::VCSMapping::v_SetUpPressureForcing(), Nektar::VelocityCorrectionScheme::v_SetUpViscousForcing(), Nektar::VCSMapping::v_SetUpViscousForcing(), Nektar::VCSMapping::v_SolvePressure(), Nektar::VelocityCorrectionScheme::v_SolveViscous(), Nektar::VCSMapping::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 373 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 418 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 478 of file EquationSystem.h.

Referenced by v_InitObject().

◆ m_homogen_dealiasing

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

Flag to determine if dealiasing is used for homogeneous simulations.

Definition at line 429 of file EquationSystem.h.

Referenced by Nektar::VelocityCorrectionScheme::v_GenerateSummary(), Nektar::VCSWeakPressure::v_GenerateSummary(), v_InitObject(), and Nektar::CoupledLinearNS::v_InitObject().

◆ 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_lambda

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

Lambda constant in real system if one required.

Definition at line 394 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 470 of file EquationSystem.h.

◆ m_LhomY

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

physical length in Y direction (if homogeneous)

Definition at line 471 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 472 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 450 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 420 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 474 of file EquationSystem.h.

◆ m_npointsY

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

number of points in Y direction (if homogeneous)

Definition at line 475 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 457 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_pararealIter

int Nektar::SolverUtils::EquationSystem::m_pararealIter
protected

Number of parareal time iteration.

Definition at line 410 of file EquationSystem.h.

Referenced by Checkpoint_Output(), GetPararealIterationNumber(), SetPararealIterationNumber(), and v_InitObject().

◆ m_projectionType

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

Type of projection; e.g continuous or discontinuous.

Definition at line 434 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 368 of file EquationSystem.h.

Referenced by Nektar::LinearElasticSystem::BuildMatrixSystem(), 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::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::IsentropicVortex::IsentropicVortex(), 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::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::VelocityCorrectionScheme::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(), 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 371 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 412 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::IsentropicVortex::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::VelocityCorrectionScheme::SolveUnsteadyStokesSystem(), 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::IsentropicVortex::v_EvaluateExactSolution(), 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::IsentropicVortex::v_SetInitialConditions(), 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 383 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(), v_SetInitialConditions(), 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_timestepMax

NekDouble Nektar::SolverUtils::EquationSystem::m_timestepMax = -1.0
protected

Time step size.

Definition at line 391 of file EquationSystem.h.

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

◆ 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 439 of file EquationSystem.h.

Referenced by Nektar::SolverUtils::MMFSystem::AverageMaxwellFlux1D(), Nektar::SolverUtils::MMFSystem::ComputencdotMF(), Nektar::SolverUtils::MMFSystem::ComputeNtimesMF(), Nektar::SolverUtils::MMFSystem::ComputeNtimestimesdFz(), 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 422 of file EquationSystem.h.

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

◆ m_useInitialCondition

bool Nektar::SolverUtils::EquationSystem::m_useInitialCondition
protected

◆ m_verbose

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

Definition at line 366 of file EquationSystem.h.

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