MAIA bb96820c
Multiphysics at AIA
Loading...
Searching...
No Matches
PostProcessingLb< nDim > Class Template Reference

#include <postprocessinglb.h>

Inheritance diagram for PostProcessingLb< nDim >:
[legend]
Collaboration diagram for PostProcessingLb< nDim >:
[legend]

Public Types

using SolverType = LbSolver< nDim >
 
using Base = PostProcessing< nDim, PostProcessingLb< nDim > >
 
- Public Types inherited from PostProcessing< nDim, PostProcessingLb< nDim > >
using PPGrid = CartesianGrid< nDim >
 
using Cell = typename PPGrid::Cell
 
using GridProxy = typename maia::grid::Proxy< nDim >
 
using Data = PostData< nDim >
 

Public Member Functions

 PostProcessingLb (MInt postprocessingId_, PostData< nDim > *data, SolverType *ppSolver_)
 
virtual ~PostProcessingLb ()
 
SolverTypesolver () const
 
- Public Member Functions inherited from PostProcessing< nDim, PostProcessingLb< nDim > >
 PostProcessing (MInt postprocessingId_, PostData< nDim > *data)
 
 ~PostProcessing ()
 Destructor for the massive paralle postprocessing solver. More...
 
void initPostProcessing () override
 Reads all required properties in and prepares for postprocessing. More...
 
void postprocessPreSolve () override
 
void postprocessPostSolve () override
 
void postprocessInSolve (MBool finalTimeStep) override
 
void postprocessSolution () override
 
SolvermSolver () const override
 
DatapostData () const
 
- Public Member Functions inherited from PostProcessingInterface
 PostProcessingInterface (const MInt postprocessingId_)
 
virtual ~PostProcessingInterface ()=default
 
 PostProcessingInterface (const PostProcessingInterface &)=delete
 
PostProcessingInterfaceoperator= (const PostProcessingInterface &)=delete
 
virtual void initPostProcessing ()=0
 
virtual void postprocessPreSolve ()=0
 
virtual void postprocessPostSolve ()=0
 
virtual void postprocessInSolve (MBool finalTimeStep)=0
 
virtual void postprocessSolution ()=0
 
virtual SolvermSolver () const =0
 
MInt a_postprocessingId () const
 

Protected Member Functions

void initPointSamplingData () override
 
void savePointSamplingData () override
 
void initSurfaceSamplingData () override
 
void saveSurfaceSamplingData () override
 
void initVolumeSamplingData () override
 
void saveVolumeSamplingData () override
 
void initIsoTurbulenceStatistics () override
 init function for Isotropic Turbulence Statistics More...
 
void computeIsoTurbulenceStatistics () override
 write data for isotropic Turbulence (single phase and particle-laden) More...
 
MBool getSampleVarsDerivatives (const MInt cellId, std::vector< MFloat > &vars)
 
- Protected Member Functions inherited from PostProcessing< nDim, PostProcessingLb< nDim > >
MBool isActive () const
 
void transferSensorWeights ()
 
void initReduceToLevelAvg ()
 Initializes properties for grid level reduction. More...
 
void initTimeStepProperties ()
 Initializes timestep properties for postprocessing. More...
 
void initTimeStepPropertiesSlice ()
 
void initTimeStepPropertiesLine ()
 
virtual void initAveragingProperties ()
 Initialize properties relevant for temporal averaging. More...
 
void initProbePoint ()
 Initializes properties for point probing. More...
 
void initProbeLine ()
 Initializes properties and memory for line probing. More...
 
void initProbeSlice ()
 Initializes properties and memory for slice probing. More...
 
void initSpatialAveraging ()
 
void initProbeArbitraryLine ()
 initializes properties and data for arbitrary line probing More...
 
void initProbeArbitrarySlice ()
 initializes properties and data for arbitrary slice probing More...
 
void initProbeLinePeriodic ()
 
virtual void probeLinePeriodic ()
 
virtual void probeLinePeriodicPost ()
 
virtual void initSprayData ()
 
virtual void computeSprayData ()
 
virtual void writeSprayData ()
 
virtual void initLPTSolutionFile ()
 
virtual void writeLPTSolutionFile ()
 
virtual void initParticleStatistics ()
 
virtual void computeParticleStatistics ()
 
virtual void initPLIsoTurbulenceStatistics ()
 
virtual void computePLIsoTurbulenceStatistics ()
 
virtual void initAverageVariables ()
 allocates memory for averageSolutions() and averageSolutionsInSolve() More...
 
void pp_saveCoarseSolution ()
 
void averageSolutions ()
 Averages solutions. More...
 
virtual void averageSolutionsInSolve ()
 
void computeAndSaveDivergence ()
 
void computeAndSaveMean ()
 
void initAverageSolutionsSlice ()
 Initializes properties for slice averaging. More...
 
void averageSolutionsSlice ()
 
void probeLocation ()
 
void findClosestProbePointsGridCells ()
 
virtual void initPointSamplingData ()
 
virtual void savePointSamplingData ()
 
virtual void initSurfaceSamplingData ()
 
virtual void saveSurfaceSamplingData ()
 
virtual void initVolumeSamplingData ()
 
virtual void saveVolumeSamplingData ()
 
virtual void initIsoTurbulenceStatistics ()
 
virtual void computeIsoTurbulenceStatistics ()
 
void initWritePointData ()
 
void writePointData ()
 
void spatialAveraging ()
 
void spatialAveragingPost ()
 
void createCellToMap1D (std::map< MFloat, MInt, coord_comp_1d_ > &coordinates, std::map< MFloat, MFloat, coord_comp_1d_ > &cell_to_map)
 
void createCellToMap2D (std::map< std::pair< MFloat, MFloat >, MInt, coord_comp_2d_ > &coordinates, std::map< std::pair< MFloat, MFloat >, std::pair< MFloat, MFloat >, coord_comp_2d_ > &cell_to_map)
 
void probeLine ()
 
void probeLinePre ()
 
void probeLinePost ()
 
void probeSlice ()
 
void probeSliceIn ()
 
void probeSlicePre ()
 
void probeSlicePost ()
 
void collectMinLvlCells ()
 
void findContainingCell (const MFloat *coord, MInt &cellId)
 
void probeArbitraryLine ()
 
void probeArbitraryLinePost ()
 
void probeArbitrarySlice ()
 
void probeArbitrarySlicePost ()
 
virtual void initMovingAverage ()
 Initializes properties and allocates memory for moving averaging. More...
 
void movingAverage ()
 
void movingAveragePost ()
 
void initCorrelation ()
 
void initPeriodicSliceAverage ()
 Initializes the periodic averaging on a slice. More...
 
void periodicSliceAverage ()
 
MInt findNearestGridCell (const MFloat *coord)
 
void movePointsToGrid (MFloat *in_points, MInt in_noPoints, MInt in_moveType)
 
void getSampleVariables (MInt cellId, const MFloat *&vars, MBool mode)
 
void getSampleVariables (MInt const cellId, std::vector< MFloat > &vars)
 
void calcSamplingVar (const MInt cellId, const MInt sampleVarId, MFloat *const vars)
 
void saveSliceAiaFileFormat (const MInt step, const MInt noVars, MFloatScratchSpace &vars, const MInt sliceId)
 
MFloat calcDivergence (const MInt cellIdSolver)
 
virtual void calcVorticity (const MFloatTensor &deriv, MFloat vorticity[nDim *2 - 3])
 
virtual void getVorticity (MFloat *const vorticity)
 
virtual void getVorticityT (MFloat *const vorticity)
 
virtual void getPrimitiveVariables (MInt, MFloat *, MFloat *, MInt)
 
virtual void computeAcousticSourceTermQe (MFloatScratchSpace &, MFloatScratchSpace &, MFloatScratchSpace &, MFloatScratchSpace &)
 
void getSampleVarsDerivatives (const MInt cellId, const MFloat *&vars)
 
MBool getSampleVarsDerivatives (const MInt, std::vector< MFloat > &)
 
virtual MFloatvorticityAtCell (const MInt cellId, const MInt dir)
 
virtual MFloat getBoundaryHeatFlux (const MInt cellId) const
 
virtual void getPrimitiveVarNames (MString *names) const
 
void neededMeanVarsForSourceTerm (const MInt sourceTerm, std::vector< MInt > &meanVars) const
 
MBool isMeanFile ()
 

Protected Attributes

std::unique_ptr< PointData< nDim, SolverType > > m_pointData
 
std::unique_ptr< SurfaceData< nDim, SolverType > > m_surfaceData
 
std::unique_ptr< VolumeData< nDim, SolverType > > m_volumeData
 
MFloat m_tau_eta
 
- Protected Attributes inherited from PostProcessing< nDim, PostProcessingLb< nDim > >
MInt m_noPostprocessingOps
 
MStringm_postprocessingOps
 
tvecpost m_postprocessingSolution
 
std::vector< tvecpostm_postprocessingMethods
 
std::vector< std::vector< MString > > m_postprocessingMethodsDesc
 
Datam_postData
 
MInt m_noVariables
 
MBool m_square
 
MBool m_skewness
 
MBool m_kurtosis
 
MBool m_computeAndSaveMean
 
MBool m_twoPass
 
MBool m_useKahan
 
MBool m_correlation
 
std::vector< MInt > * m_cell2globalIndex
 
MIntm_noPeriodicSliceCells
 
MFloat ** m_sliceAverage
 
MInt m_globalnoSlicePositions
 
std::multimap< MFloat, MFloatm_sliceGlobalPositions
 
MBool m_averageVorticity
 
MBool m_averageSpeedOfSound
 
MFloat m_gamma
 
MInt m_movingAverageStartTimestep
 
MInt m_movingAverageStopTimestep
 
MInt m_movingAverageInterval
 
MInt m_movingAverageDataPoints
 
MInt m_movingAverageCounter
 
MFloat ** m_movAvgVariables
 
MInt m_movAvgNoVariables
 
MStringm_movAvgVarNames
 
MInt m_spatialDirection1
 
MInt m_spatialDirection2
 
MFloat m_spatialWeightSinglePoint
 
MFloat m_spatialLvlWeight [20]
 
MIntm_spatialDispls
 
MIntm_spatialVarsDispls
 
MIntm_spatialRecvcnts
 
MIntm_spatialVarsRecvcnts
 
MInt m_spatialCoordSum
 
std::map< MFloat, MInt, coord_comp_1d_m_spatialLineCoordinates
 
std::map< MFloat, MFloat, coord_comp_1d_m_spatialLineCellToMap
 
std::map< MFloat, MInt, coord_comp_1d_m_spatialGlobalLineCoordinates
 
std::map< MFloat, MFloat, coord_comp_1d_m_spatialGlobalLineCellToMap
 
MInt m_spatialLineNoCells
 
MFloatm_spatialLineAllVars
 
MFloatm_spatialLineAllCoord
 
std::map< std::pair< MFloat, MFloat >, MInt, coord_comp_2d_m_spatialPlaneCoordinates
 
std::map< std::pair< MFloat, MFloat >, std::pair< MFloat, MFloat >, coord_comp_2d_m_spatialPlaneCellToMap
 
std::map< std::pair< MFloat, MFloat >, MInt, coord_comp_2d_m_spatialGlobalPlaneCoordinates
 
std::map< std::pair< MFloat, MFloat >, std::pair< MFloat, MFloat >, coord_comp_2d_m_spatialGlobalPlaneCellToMap
 
MInt m_spatialPlaneNoCells
 
MFloatm_spatialPlaneAllVars
 
MFloatm_spatialPlaneAllCoord
 
MInt m_noProbeLines
 
MIntm_probeLineDirection
 
MIntm_probeLinePeriodic
 
MFloat ** m_probeLineCoordinates
 
MInt ** m_probeLineIds
 
MIntm_noProbeLineIds
 
MFloat ** m_probeLinePositions
 
MIntm_globalNoProbeLineIds
 
MIntm_probeLineOffsets
 
MInt ** m_noGlobalProbeLineIds
 
MInt m_probeLineInterval
 
MInt m_probeLineStartTimestep
 
MInt m_probeLineStopTimestep
 
MIntm_correlationDirection
 
MIntm_correlationVariableIndex
 
MFloat ** m_correlationCoordinates
 
MInt m_noCorrelationLines
 
MIntm_noCorrelationIds
 
MInt ** m_correlationIds
 
MInt ** m_globalCorrelationIds
 
MFloat ** m_globalCorrelationPositions
 
MIntm_globalNoCorrelationIds
 
MFloat ** m_correlationPositions
 
MInt ** m_correlationIndexMapping
 
MFloat ** m_correlationExchangeVar
 
MFloat ** m_correlationExchangeVarMean
 
MFloat ** m_correlationExchangeVarRMS
 
MFloat ** m_globalCorrelationExchangeVar
 
MFloat ** m_globalCorrelationExchangeVarMean
 
MFloat ** m_globalCorrelationExchangeVarRMS
 
MIntm_probeLineAverageDirection
 
MFloat ** m_probeLineAverageCoordinates
 
MInt ** m_probeLineAverageCoordinatesSign
 
MInt ** m_noProbeLineAverageIds
 
MFloat *** m_globalProbeLineAverageVars
 
MInt m_noProbeLineAverageSteps
 
MInt ** m_globalNoProbeLineAverageIds
 
MInt *** m_probeLineAverageIds
 
MFloat *** m_probeLineAveragePositions
 
MInt m_noProbeSlices
 
MIntm_probeSliceDir
 
MFloatm_probeSliceCoordinate
 
MInt ** m_probeSliceIds
 
MIntm_noProbeSliceIds
 
MFloat ** m_probeSlicePositions
 
MIntm_globalNoProbeSliceIds
 
MIntm_probeSliceOffsets
 
MInt ** m_noGlobalProbeSliceIds
 
MStringm_probeSliceGridNames
 
MStringm_sliceAxis
 
MFloatm_sliceIntercept
 
MBool m_sliceAiaFileFormat
 
MBool m_optimizedSliceIo
 
MIntm_noProbeSliceNoHilbertIds
 
MIntm_noProbeSliceMaxNoHilbertIds
 
MInt ** m_noProbeSliceHilbertInfo
 
MIntm_noProbeSliceNoContHilbertIds
 
MIntm_noProbeSliceMaxNoContHilbertIds
 
MInt ** m_noProbeSliceContHilbertInfo
 
MInt m_probeSliceInterval
 
MInt m_probeSliceStartTimestep
 
MInt m_probeSliceStopTimestep
 
std::vector< MIntm_sliceVarIds
 List of slice variables. More...
 
std::vector< MIntm_noSliceVars
 Number of variables for each slice variable. More...
 
std::vector< std::vector< MString > > m_sliceVarNames
 List of variable names for each slice variable. More...
 
MInt m_noMinLvlIds
 
MIntm_minLvlIds
 
MInt m_movePointsToGrid
 
MBool m_spatialAveraging
 
MFloatm_arbLinePoints
 
MInt m_noArbLines
 
MIntm_noArbLineIds
 
MFloatm_arbLinePointsDistribution
 
MIntm_arbLineHasNewDistribution
 
MIntm_arbLineFull
 
MIntm_moveLinePointsToGrid
 
MIntm_globalNoArbLineIds
 
MInt ** m_arbLineIds
 
MIntm_arbLineOffsets
 
MFloat ** m_arbLineCoordinates
 
MFloatm_arbSlicePoints
 
MInt m_noArbSlices
 
MIntm_noArbSlicePoints
 
MFloatm_arbSlicePointsDistribution
 
MIntm_globalNoArbSlicePoints
 
MInt ** m_arbSliceIds
 
MIntm_arbSliceOffsets
 
MFloat ** m_arbSliceCoordinates
 
MString m_postprocessFileName
 
MFloat ** m_localVars
 
MBool m_averageRestart
 
MInt m_averageInterval
 
MInt m_averageStartTimestep
 
MInt m_averageStopTimestep
 
MInt m_noAveragedVorticities
 
MInt m_noSpeedOfSoundVars
 
MInt m_noSourceVars
 
MBool m_needVorticity
 
MString m_ReStressesAverageFileName
 
MFloat ** m_probeCoordinates
 
MString m_probePath
 
MIntm_probeCellIds
 
std::ofstream * m_probeFileStreams
 
MInt m_noProbePoints
 
MInt m_probeInterval
 
MInt m_probeWriteInterval
 
MString m_pdFileName
 
MInt m_pdStartTimestep
 
MInt m_pdStopTimestep
 
MInt m_pdRestartInterval
 
std::vector< MFloatm_pdPoints
 
std::vector< MIntm_pdCells
 
std::vector< MFloatm_pdVars
 
MInt m_pdNoPoints
 
MInt m_sprayComputeInterval
 
MInt m_sprayWriteInterval
 
MInt m_sprayDataSize
 
MInt m_sprayDataStep
 
MFloat ** m_particleCV
 
MFloat ** m_particlePen
 
MFloat ** m_sprayStat
 
MFloat ** m_sprayTimes
 
MFloat ** m_injectionData
 
MFloat ** m_vapourCV
 
MFloat ** m_vapourPen
 
MInt m_LPTSolutionInterval
 
MBool m_forceOutput
 
std::vector< MIntm_activeSourceTerms
 
std::array< MString, ST::totalNoSourceTermss_sourceTermNames
 
std::set< MIntm_activeMeanVars
 
- Protected Attributes inherited from PostProcessingInterface
MInt m_postprocessingId
 

Private Attributes

SolverTypem_ppSolver
 
std::vector< MStringm_varNames
 
MBool m_needVelocityGradient = false
 

Friends

template<MInt nDim_, class ppType >
class PostProcessing
 

Additional Inherited Members

- Public Attributes inherited from PostProcessing< nDim, PostProcessingLb< nDim > >
MInt m_noLocalVars
 
MInt m_restartTimeStep
 
MBool m_statisticCombustionAnalysis
 
MBool m_acousticAnalysis
 
- Public Attributes inherited from PostProcessingInterface
MBool m_finalTimeStep = false
 
- Protected Types inherited from PostProcessing< nDim, PostProcessingLb< nDim > >
typedef void(PostProcessing::* tpost) ()
 
typedef std::vector< tposttvecpost
 

Detailed Description

template<MInt nDim>
class PostProcessingLb< nDim >

Definition at line 21 of file postprocessinglb.h.

Member Typedef Documentation

◆ Base

template<MInt nDim>
using PostProcessingLb< nDim >::Base = PostProcessing<nDim, PostProcessingLb<nDim> >

Definition at line 28 of file postprocessinglb.h.

◆ SolverType

template<MInt nDim>
using PostProcessingLb< nDim >::SolverType = LbSolver<nDim>

Definition at line 27 of file postprocessinglb.h.

Constructor & Destructor Documentation

◆ PostProcessingLb()

template<MInt nDim>
PostProcessingLb< nDim >::PostProcessingLb ( MInt  postprocessingId_,
PostData< nDim > *  data,
SolverType ppSolver_ 
)

Definition at line 15 of file postprocessinglb.cpp.

16 : PostProcessingInterface(postprocessingId_), PostProcessing<nDim, PostProcessingLb<nDim>>(postprocessingId_, data) {
17 m_ppSolver = ppSolver_;
18}
SolverType * m_ppSolver

◆ ~PostProcessingLb()

template<MInt nDim>
PostProcessingLb< nDim >::~PostProcessingLb
virtual

Definition at line 21 of file postprocessinglb.cpp.

21{}

Member Function Documentation

◆ computeIsoTurbulenceStatistics()

template<MInt nDim>
void PostProcessingLb< nDim >::computeIsoTurbulenceStatistics
overrideprotectedvirtual
Author
Johannes Grafen
Date
28.02.2022 writes the following parameters to std::cout: lambda ReLambda skewness eta (kolomogorovlength) tau_eta (kolomogorov time-scale)

Reimplemented from PostProcessing< nDim, PostProcessingLb< nDim > >.

Definition at line 97 of file postprocessinglb.cpp.

97 {
98 TRACE();
99
100 if((solver().m_fftInterval > 0 && globalTimeStep % solver().m_fftInterval == 0) || m_finalTimeStep) {
101 const MInt fftLevel = solver().grid().maxUniformRefinementLevel();
102 const MFloat DX = solver().c_cellLengthAtLevel(fftLevel);
103
104 MFloat urms[6] = {F0, F0, F0, F0, F0, F0};
105 MFloat dudx[3] = {F0, F0, F0};
106 MFloat skew[4] = {F0, F0, F0, F0};
107 MFloat lambda[3] = {F0, F0, F0};
108 MFloat cnt = F0;
109
110 MFloat lambdaAvg = F0;
111 MFloat ReLambda = F0;
112 MFloat skewness = F0;
113 MFloat eta = F0;
114
115 for(MInt cellId = 0; cellId < solver().a_noCells(); cellId++) {
116 if(solver().a_isHalo(cellId)) continue;
117 if(solver().a_isBndryGhostCell(cellId)) continue;
118 if(solver().a_level(cellId) != fftLevel) continue;
119 MFloat u = solver().a_variable(cellId, solver().PV->U);
120 MFloat v = solver().a_variable(cellId, solver().PV->V);
121 MFloat w = solver().a_variable(cellId, solver().PV->W);
122 for(MInt i = 0; i < nDim; i++) {
123 MInt n0 = (solver().a_hasNeighbor(cellId, 2 * i) > 0) ? solver().c_neighborId(cellId, 2 * i) : cellId;
124 MInt n1 = (solver().a_hasNeighbor(cellId, 2 * i + 1) > 0) ? solver().c_neighborId(cellId, 2 * i + 1) : cellId;
125 if(n0 == n1) continue;
126 dudx[i] += POW2((solver().a_variable(n1, solver().PV->VV[i]) - solver().a_variable(n0, solver().PV->VV[i]))
127 / ((solver().a_coordinate(n1, i) - solver().a_coordinate(n0, i)) / DX));
128 skew[i] += POW3((solver().a_variable(n1, solver().PV->VV[i]) - solver().a_variable(n0, solver().PV->VV[i]))
129 / ((solver().a_coordinate(n1, i) - solver().a_coordinate(n0, i)) / DX));
130 }
131 urms[0] += POW2(u);
132 urms[1] += POW2(v);
133 urms[2] += POW2(w);
134 urms[3] += u * v;
135 urms[4] += u * w;
136 urms[5] += v * w;
137 cnt++;
138 }
139
140 MPI_Allreduce(MPI_IN_PLACE, &cnt, 1, MPI_DOUBLE, MPI_SUM, solver().mpiComm(), AT_, "MPI_IN_PLACE", "cnt");
141 MPI_Allreduce(MPI_IN_PLACE, &urms[0], 6, MPI_DOUBLE, MPI_SUM, solver().mpiComm(), AT_, "MPI_IN_PLACE", "urms[0]");
142 MPI_Allreduce(MPI_IN_PLACE, &dudx[0], 3, MPI_DOUBLE, MPI_SUM, solver().mpiComm(), AT_, "MPI_IN_PLACE", "dudx[0]");
143 MPI_Allreduce(MPI_IN_PLACE, &skew[0], 3, MPI_DOUBLE, MPI_SUM, solver().mpiComm(), AT_, "MPI_IN_PLACE", "skew[0]");
144 skew[3] = ((skew[0] + skew[1] + skew[2]) / (F3 * cnt)) / pow((dudx[0] + dudx[1] + dudx[2]) / (F3 * cnt), 1.5);
145 for(MInt i = 0; i < 3; i++)
146 skew[i] = (skew[i] / cnt) / pow(dudx[i] / cnt, 1.5);
147 for(MInt i = 0; i < 6; i++)
148 urms[i] = sqrt(fabs(urms[i]) / cnt);
149 for(MInt i = 0; i < 3; i++)
150 dudx[i] /= cnt;
151 for(MInt i = 0; i < 3; i++)
152 lambda[i] = urms[i] / sqrt(dudx[i]); // Eq. 6.56 Turbulent Flows Pope two-point correlation
153
154 lambdaAvg = F1B3 * (lambda[0] + lambda[1] + lambda[2]);
155 ReLambda = F1B3 * (urms[0] + urms[1] + urms[2]) * lambdaAvg / solver().m_nu;
156 skewness = skew[3];
157
158 MFloat eps[3];
159 for(MInt i = 0; i < 3; i++) {
160 eps[i] = 15.0 * solver().m_nu * POW2(urms[i] / lambda[i]); // Eq. 6.58 Turbulent Flows Pope two-point correlation
161 }
162 eta = pow(solver().m_nu, 0.75)
163 / pow(F1B3 * (eps[0] + eps[1] + eps[2]), 0.25); // Eq. 6.1 Turbulent Flows Pope two-point correlation
164 m_tau_eta = pow(solver().m_nu / (F1B3 * (eps[0] + eps[1] + eps[2])), 0.5);
165
166 if(solver().domainId() == 0) {
167 std::ofstream ofl;
168 ofl.open("IsoTurbulenceStatistics.log", ios::app);
169 ofl << std::setw(5) << globalTimeStep << "\t" << std::setw(8) << ReLambda << "\t" << std::setw(8) << lambdaAvg
170 << "\t" << std::setw(8) << eta << "\t" << std::setw(8) << m_tau_eta << "\t" << std::setw(8) << skewness
171 << endl;
172 ofl.close();
173 }
174 }
175}
MBool m_finalTimeStep
MFloat m_tau_eta
SolverType & solver() const
constexpr Real POW3(const Real x)
Definition: functions.h:123
constexpr Real POW2(const Real x)
Definition: functions.h:119
MInt globalTimeStep
int32_t MInt
Definition: maiatypes.h:62
double MFloat
Definition: maiatypes.h:52
int MPI_Allreduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, const MString &name, const MString &sndvarname, const MString &rcvvarname)
same as MPI_Allreduce
void const MInt cellId
Definition: collector.h:239

◆ getSampleVarsDerivatives()

template<MInt nDim>
MBool PostProcessingLb< nDim >::getSampleVarsDerivatives ( const MInt  cellId,
std::vector< MFloat > &  vars 
)
inlineprotected

Definition at line 78 of file postprocessinglb.h.

78 {
79 return solver().getSampleVarsDerivatives(cellId, vars);
80 };

◆ initIsoTurbulenceStatistics()

template<MInt nDim>
void PostProcessingLb< nDim >::initIsoTurbulenceStatistics
overrideprotectedvirtual
Author
Johannes Grafen
Date
Jul 2022

Reimplemented from PostProcessing< nDim, PostProcessingLb< nDim > >.

Definition at line 68 of file postprocessinglb.cpp.

68 {
69 TRACE();
70
71 if(solver().domainId() == 0) {
72 std::ofstream ofl;
73 ofl.open("IsoTurbulenceStatistics.log", ios::app);
74 ofl << std::setw(5) << "t"
75 << "\t" << std::setw(8) << "ReLambda"
76 << "\t" << std::setw(8) << "lambda"
77 << "\t" << std::setw(8) << "Eta"
78 << "\t" << std::setw(8) << "tau_eta"
79 << "\t" << std::setw(8) << "skewness" << endl;
80 ofl.close();
81 }
82}

◆ initPointSamplingData()

template<MInt nDim>
void PostProcessingLb< nDim >::initPointSamplingData
overrideprotectedvirtual

Reimplemented from PostProcessing< nDim, PostProcessingLb< nDim > >.

Definition at line 24 of file postprocessinglb.cpp.

24 {
25 TRACE();
26
28 m_pointData->setInputOutputProperties();
29 m_pointData->init();
30}
This class is responsible for the point data feature. It records the state of all sampling variables ...
Definition: samplingdata.h:164
std::unique_ptr< PointData< nDim, SolverType > > m_pointData

◆ initSurfaceSamplingData()

template<MInt nDim>
void PostProcessingLb< nDim >::initSurfaceSamplingData
overrideprotectedvirtual

Reimplemented from PostProcessing< nDim, PostProcessingLb< nDim > >.

Definition at line 38 of file postprocessinglb.cpp.

38 {
39 TRACE();
41 m_surfaceData->setInputOutputProperties();
42 m_surfaceData->init();
43}
std::unique_ptr< SurfaceData< nDim, SolverType > > m_surfaceData
Surface data sampling class. Records all sampling variables on all surface elements and outputs addit...
Definition: samplingdata.h:190

◆ initVolumeSamplingData()

template<MInt nDim>
void PostProcessingLb< nDim >::initVolumeSamplingData
overrideprotectedvirtual

Reimplemented from PostProcessing< nDim, PostProcessingLb< nDim > >.

Definition at line 51 of file postprocessinglb.cpp.

51 {
52 TRACE();
54 m_volumeData->setInputOutputProperties();
55 m_volumeData->init();
56}
std::unique_ptr< VolumeData< nDim, SolverType > > m_volumeData
Class to handle sampling of volume data.
Definition: samplingdata.h:220

◆ savePointSamplingData()

template<MInt nDim>
void PostProcessingLb< nDim >::savePointSamplingData
overrideprotectedvirtual

Reimplemented from PostProcessing< nDim, PostProcessingLb< nDim > >.

Definition at line 33 of file postprocessinglb.cpp.

33 {
35}

◆ saveSurfaceSamplingData()

template<MInt nDim>
void PostProcessingLb< nDim >::saveSurfaceSamplingData
overrideprotectedvirtual

Reimplemented from PostProcessing< nDim, PostProcessingLb< nDim > >.

Definition at line 46 of file postprocessinglb.cpp.

46 {
48}

◆ saveVolumeSamplingData()

template<MInt nDim>
void PostProcessingLb< nDim >::saveVolumeSamplingData
overrideprotectedvirtual

Reimplemented from PostProcessing< nDim, PostProcessingLb< nDim > >.

Definition at line 59 of file postprocessinglb.cpp.

59 {
61}

◆ solver()

template<MInt nDim>
SolverType & PostProcessingLb< nDim >::solver ( ) const
inline

Definition at line 35 of file postprocessinglb.h.

35{ return *m_ppSolver; }

Friends And Related Function Documentation

◆ PostProcessing

template<MInt nDim>
template<MInt nDim_, class ppType >
friend class PostProcessing
friend

Definition at line 24 of file postprocessinglb.h.

Member Data Documentation

◆ m_needVelocityGradient

template<MInt nDim>
MBool PostProcessingLb< nDim >::m_needVelocityGradient = false
private

Definition at line 57 of file postprocessinglb.h.

◆ m_pointData

template<MInt nDim>
std::unique_ptr<PointData<nDim, SolverType> > PostProcessingLb< nDim >::m_pointData
protected

Definition at line 72 of file postprocessinglb.h.

◆ m_ppSolver

template<MInt nDim>
SolverType* PostProcessingLb< nDim >::m_ppSolver
private

Definition at line 53 of file postprocessinglb.h.

◆ m_surfaceData

template<MInt nDim>
std::unique_ptr<SurfaceData<nDim, SolverType> > PostProcessingLb< nDim >::m_surfaceData
protected

Definition at line 73 of file postprocessinglb.h.

◆ m_tau_eta

template<MInt nDim>
MFloat PostProcessingLb< nDim >::m_tau_eta
protected

Definition at line 76 of file postprocessinglb.h.

◆ m_varNames

template<MInt nDim>
std::vector<MString> PostProcessingLb< nDim >::m_varNames
private

Definition at line 56 of file postprocessinglb.h.

◆ m_volumeData

template<MInt nDim>
std::unique_ptr<VolumeData<nDim, SolverType> > PostProcessingLb< nDim >::m_volumeData
protected

Definition at line 74 of file postprocessinglb.h.


The documentation for this class was generated from the following files: