Skip to content

Conversation

YanisZatout
Copy link

Pull request to add Algo_QC TRUST/Trio-1.9.2 compatible.
Also fixed a bug in the calculation of the mass flux in the QUICK scheme.

Hard copy-paste of IJK_Kernel files
Adding compilable Algo_QC with patched items that correspond to
the right calculation of surfaces for the calculation of
the mass flux in the QUICK and Centered order 2 schemes

Correction of the Simd tools used to compute the terms
of the QUICK scheme :

in the J direction (spanwise in a channel), the offset to take
into account in the J direction for each parallel domain was
fixed when it needed to be taken into account.
This had the effect of not computing the flux correctly on
the very first J cell for the mass flux.

This is a very similar bug to commit hash:
ead456d04d72824210683fa612a7885d41a20d1e

which is detailed in the changelogs of Algo_QC.
@YanisZatout
Copy link
Author

Note: the keyword "projection_initiale_demandee_" doesn't work atm, as I don't know what the variable "Shear_DU" corresponds to in TRUST/src/IJK/Framework/IJK_Navier_Stokes_tools.cpp: https://github.com/cea-trust-platform/trust-code/blob/master/src/IJK/Framework/IJK_Navier_Stokes_tools.cpp#L591.

OpDiffTurbIJKScalar.cpp:
  Added method OpDiffVectorialIJKScalar_double::ajouter
  This method is used in the Algo_QC code and
  was missing. Its implementation is not changed from
  previous versions.
OpCentre2IJK.*:
  These files are centered order 2 scheme for velocity
  convection in momentum energy convervation equation.
  They are a copy-paste of the OpCentre4IJK.* files
  with g1 and g4 values put to 0.0, and
  g2 and g3 values put to 0.5.
@YanisZatout
Copy link
Author

In last two commits, added OpDiffVectorialIJKScalar_double::ajouter method.
In second commit, added centered, second order discretization for velocity convection in IJK in files OpCentre2IJK.

Implementation is detailed in both commits.

Statistiques_dns_qc_ijk.*:
  The class Statistiques_dns_qc_ijk is just a
  child class of Statistiques_dns_ijk that
  implements the method `complemer_read' as
  non forcing for process exiting.
  This is essentially like the old version of
  Statistiques_dns_ijk*, where
  Statistiques_dns_ijk was directly used for
  logging statistics in Algo_QC.
OpDiffTurbIJK.tpp, OpDiffTurbIJKScalar.tpp:
  Bug correction relating to the variable
  `dummy_field' that stores the velocity.
  Instead of storing a pointer to the
  velocity, the changed code was actively
  copying the entire velocity field,
  leading to a reduction in performances
  especially in a already costly simulation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant