Closed sayerhs closed 2 months ago
@overfelt @alanw0 For the conversion of AssembleCourantReynoldsElemAlgorithm
, here is what I had in mind:
Use MdotAlgDriver and its interior algorithm as template for conversion.
An example of an element reduction with MasterElement
ArrayDbl2
max
we might need a custom reducer for Array
types. I am not sure of this.
This issue tracks the non-solver field updates that needs to be converted to run on device for wind-energy relevant simulations.
For a template of edge loop conversion, see conversion of
AssembleNodalGradEdgeAlgorithm
inhttps://github.com/Exawind/nalu-wind/blob/d2d9b58929b9b201b04089dc5a296e8ccb3950ec/include/ngp_algorithms/NodalGradEdgeAlg.h#L20
Similarly the
NodalGradElemAlg
andNodalGradBndryElemAlg
shows examples of element conversion. We will need all the boundary elem algorithms converted as they are common for both edge and elem solver options.https://github.com/Exawind/nalu-wind/blob/d2d9b58929b9b201b04089dc5a296e8ccb3950ec/include/ngp_algorithms/NodalGradElemAlg.h#L23 https://github.com/Exawind/nalu-wind/blob/d2d9b58929b9b201b04089dc5a296e8ccb3950ec/include/ngp_algorithms/NodalGradBndryElemAlg.h#L23
Note, that the template arguments are not necessary for most Edge kernels. It was done for NodalGrad to collapse multiple classes into single class that deals with both vector and scalar fields whose projected nodal gradients are computed.
For node loops, an example is available in #335 and is pending merge. Unit tests for these examples are in the unit_tests/ngp_algorithms directory.
ABL Neutral simulation
Periodic BCs, with wall functions for terrain.
AssembleNodalGradEdgeAlgorithm
AssembleNodalGradElemAlgorithm
AssembleNodalGradUEdgeAlgorithm
AssembleNodalGradUElemAlgorithm
AssembleNodalGradBoundaryAlgorithm
AssembleNodalGradUBoundaryAlgorithm
ComputeMdotEdgeAlgorithm
EffectiveDiffFluxCoeffAlgorithm
EnthalpyEffectiveDiffFluxCoeffAlgorithm
TurbViscKsgsAlgorithm
ComputeABLWallFrictionVelocityAlgorithm
ComputeTurbKineticEnergyWallFunctionAlgorithm
FixPressureAtNodeAlgorithm
Static mesh airfoil/wing simulations
AssembleNodalGradPOpenBoundaryAlgorithm
(#488)ComputeMdotEdgeOpenAlgorithm
(#463)ComputeMdotInflowAlgorithm
(#463)ComputeSSTMaxLengthScaleElemAlgorithm
(jro)EffectiveSSTDiffFluxCoeffAlgorithm
(#380)TurbViscSSTAlgorithm
(#346)AssembleCourantReynoldsElemAlgorithm
(#517)Moving mesh turbine simulations
ComputeGeometryBoundaryAlgorithm
ComputeGeometryInteriorAlgorithm
ComputeTurbKineticEnergyWallFunctionAlgorithm
(#368)ComputeWallFrictionVelocityAlgorithm
(#398)ComputeWallModelSDRWallAlgorithm
(#415)CopyFieldAlgorithm
SurfaceForceAndMomentAlgorithm
SurfaceForceAndMomentWallFunctionAlgorithm
AuxFunctionAlgorithm
ComputeMetricTensorElemAlgorithm
Element algorithms
ComputeMdotElemAlgorithm
ComputeMdotElemOpenAlgorithm
ComputeMdotElemOpenPenaltyAlgorithm
Misc.
TurbViscSmagorinskyAlgorithm
AssembleWallDistNonConformalAlgorithm
AssembleNodalGradNonConformalAlgorithm
AssembleNodalGradUNonConformalAlgorithm
ComputeMdotNonConformalAlgorithm
ComputeHeatTransferEdgeWallAlgorithm
ComputeHeatTransferElemWallAlgorithm
ComputeLowReynoldsSDRWallAlgorithm
LimiterErrorIndicatorElemAlgorithm
PstabErrorIndicatorEdgeAlgorithm
PstabErrorIndicatorElemAlgorithm
SimpleErrorIndicatorElemAlgorithm
SimpleErrorIndicatorScalarElemAlgorithm