DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
EulerP.hpp File Reference

Core type definitions and utilities for the EulerP alternative Navier-Stokes evaluator module. More...

#include "DNDS/ArrayDOF.hpp"
#include "DNDS/Defines.hpp"
#include "Eigen/Core"
Include dependency graph for EulerP.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  DNDS::EulerP::EvaluatorArgBase< TDerived >
 CRTP base class for packed kernel argument structs used by the Evaluator. More...
 

Namespaces

namespace  DNDS
 the host side operators are provided as implemented
 
namespace  DNDS::EulerP
 Namespace for the EulerP alternative evaluator module with GPU support.
 

Typedefs

using DNDS::EulerP::TU = Eigen::Vector< real, nVarsFlow >
 Fixed-size 5-component conservative state vector (rho, rhoU, rhoV, rhoW, E).
 
using DNDS::EulerP::TDiffU = Eigen::Matrix< real, 3, nVarsFlow >
 Fixed-size 3x5 spatial gradient of the conservative state (one row per spatial dimension).
 
using DNDS::EulerP::TUFull = Eigen::Vector< real, Eigen::Dynamic >
 Dynamic-size state vector for extended variables (flow + turbulence model variables).
 
using DNDS::EulerP::TDiffUFull = Eigen::Matrix< real, 3, Eigen::Dynamic >
 Dynamic-size 3xN spatial gradient for extended variables.
 
using DNDS::EulerP::TUFullMap = Eigen::Map< TUFull >
 Eigen::Map wrapper for non-owning access to a dynamic-size state vector.
 
using DNDS::EulerP::TDiffUFullMap = Eigen::Map< TDiffUFull >
 Eigen::Map wrapper for non-owning access to a dynamic-size gradient matrix.
 
using DNDS::EulerP::TUDof = ArrayDof< nVarsFlow, 1 >
 Distributed array of 5-component flow state vectors (one per DOF).
 
using DNDS::EulerP::TUGrad = ArrayDof< 3, nVarsFlow >
 Distributed array of 3x5 gradient matrices (one per DOF).
 
using DNDS::EulerP::TUScalar = ArrayDof< 1, 1 >
 Distributed array of scalar values (e.g., pressure, temperature).
 
using DNDS::EulerP::TUScalarGrad = ArrayDof< 3, 1 >
 Distributed array of 3-component scalar gradients.
 
using DNDS::EulerP::TUScalar2 = ArrayDof< 2, 1 >
 Distributed array of 2-component scalar values (e.g., paired quantities).
 
using DNDS::EulerP::TUVec = ArrayDof< 3, 1 >
 Distributed array of 3-component vectors (e.g., velocity, coordinates).
 
using DNDS::EulerP::TUVecGrad = ArrayDof< 3, 3 >
 Distributed array of 3x3 vector gradient tensors.
 

Functions

template<class TU >
DNDS_DEVICE_CALLABLE DNDS_FORCEINLINE auto DNDS::EulerP::U123 (TU &&v)
 Extracts the momentum components (indices 1,2,3) from a state vector as a 3x1 block.
 
template<class TU >
DNDS_DEVICE_CALLABLE DNDS_FORCEINLINE auto DNDS::EulerP::U012 (TU &&v)
 Extracts the first 3 components (indices 0,1,2) from a vector as a 3x1 block.
 

Detailed Description

Core type definitions and utilities for the EulerP alternative Navier-Stokes evaluator module.

The EulerP module is an alternative compressible Navier-Stokes evaluator with CUDA GPU support. Unlike the Euler module (which uses Eigen compile-time nVars and template-heavy dispatch), EulerP uses scalar loops, is device-callable, and supports both Host and CUDA backends via the DeviceBackend template parameter.

This header defines:

  • Fixed flow variable count and index constants
  • Eigen vector/matrix type aliases for state and gradient storage
  • ArrayDof-based distributed array type aliases for MPI-parallel data
  • Helper functions for extracting momentum and coordinate sub-vectors
  • CRTP base class for packed kernel argument structs with MPI ghost exchange

Definition in file EulerP.hpp.