Skip to content

wimvanrees/2024MeshMotion

 
 

Repository files navigation

2024 Mesh-Motion

This repository is a resource for the Mesh Motion test suite working group in the 2024 High-Fidelity CFD Verification Workshop.

Cloning the repository

Note, the 2022 workshop repository has been added as a submodule. To clone the 2024 repository along with the 2022 repo submodule:

git clone --recurse-submodules https://github.com/HighFidelityCFDVerificationWorkshop/2024MeshMotion 

If you have already cloned the repository, you can retrieve the 2022 repository submodule using:

git submodule update --init --recursive

TODO

  • Finalize test suite motions and test cases (SciTech 2024 paper)
  • Provide mesh motion function implementations and their derivatives in C, Python, and Fortran.
  • Generate family of cylinder meshes (Per)
  • Document appropriate initial conditions for incompressible tests (James)
  • Set up input format + data-processing (Nathan)
  • Preliminary results (All)

Data submission

Data organization

Groups should submit time-histories for each case (Config,Motion,Grid-Index,SolutionOrder-Index,Time-Index) in separate files following the file location and name convention:

<GroupName>/<Case>-M<MotionNumber>-h<GridIndex>-p<OrderIndex>-t<TimeIndex>.txt

In this convention, h0 should correspond to the coarsest spatial discretization submitted and t0 should correspond to the coarsest temporal discretization. p0 corresponds to first-order accurate discretizations, p1 corresponds to second-order accurate discretizations, etc.

An example data file location and name would be

AFRL/Airfoil-M1-h0-p0-t0.txt

The following Motion-Index convention should be used:

  • Cylinder-M1 = 2024 Cylinder, Short-Motion
  • Cylinder-M2 = 2024 Cylinder, Long-Motion
  • Airfoil-C1 = 2024 Airfoil, Mach .2, Motion 1 - Heaving
  • Airfoil-C2 = 2024 Airfoil, Mach .2, Motion 2 - Heaving + Pitching
  • Airfoil-C3 = 2024 Airfoil, Mach .01, Motion 1 - Heaving
  • Airfoil-C4 = 2024 Airfoil, Mach .01, Motion 2 - Heaving + Pitching

Groups should also submit a <motion>.json in their submission folder that describes the number of elements corresponding to each h-index, as well as the number of solution degrees-of-freedom per equation in a spatial element across p-indices. A reference dictionary prescribing h,p,t indices for a reference fine-space dataset for each motion should also be included. Meta-data for time integration scheme, temporal order and number of nonlinear solves per time-step may be included for completeness. For example, a data submission for cylinder results should include a file Cylinder.json with example contents:

{"h0":420, "h1":1680, "h2":6720, "h3":26880, 
 "p1":8, "p2":27, "p3":64,
 "t0":10, "t1":20, "t2":40, "t3":80, "t4":160, 
 "reference":{"M1":{"h":"h3","p":"p1","t":"t4"}, 
              "M2":{"h":"h3","p":"p1","t":"t4"}}, 
 "TimeIntegrator":"DIRK3","TimeOrder":3,"NonlinearSolvesPerTimeStep":3}

Data format

For each contributed Case/Motion/Resolution, we are requesting time-series data for a set of outputs. Time-integrated quantities will be computed in data-processing by the organizers. Time-histories should include the time-history bounds (i.e. data at initial time t=0 and also data at final time t=1,2, or 40 depending on the test case). Time-histories should include the time-value for each time-instance as well as the requested outputs at each time-instance (Outputs are described in Eqns. 14-17 in the test suite document). Each contributed data-file (representative of a particular Case/Motion/Resolution) should be submitted in comma-separated-value format that consists of a single-line header and time-series data on subsequent lines. Optionally, time-integrated quantities may be submitted by participants by adding a data-entry at the end of the file with the time-value set to NaN. Data should be provided with at least 8-digits of precision. If a requested output is not able to be provided the entry should be filled with value NaN.

The data-header should be the following:

Time, Y-Force, Work integrand, Mass, Mass error

An example of data file contents for a submission that does not provide 'Mass error' and additionally provides time-integrated outputs would be:

Time, Y-Force, Work integrand, Mass, Mass error
0.0000000, 1.5438375, 3.4932846, 3.0829579, NaN
0.2000000, 1.5648394, 3.5349762, 3.0830752, NaN
0.4000000, 1.5740924, 3.8028847, 3.0840783, NaN
0.6000000, 1.5638740, 3.4397543, 3.0892051, NaN
0.8000000, 1.5503957, 3.4932846, 3.0913753, NaN
1.0000000, 1.5400933, 3.4932846, 3.0940148, NaN
NaN, 8.2345720, 25.29479238, 28.2984759, NaN

Post-processing

A resplot post-processing script is included in the results directory for the repository. Query options as:

resplot -h

Example plotting results for only UM and UCB data-submissions:

resplot --motions M1 --groups UM UCB --plot

Example plotting results for all data-submissions:

resplot --motions M1 --groups all --plot

Working group notes

2 August, 2023

  • Small group due to meeting conflicts.
  • Notre Dame group running initial testing of their implementation on 2024 motions.
  • MIT group have output processing in-place and have from Cylinder motion 1. Getting ready to push cylinder data.

5 July, 2023

  • Discussion of more complete data-submission conventions. h,p,t resolution indicators. json description file should be included for each submission describing h,p,t levels.

7 June, 2023

  • Cancelled last minute due to connectivity issues.
  • Per noted that second-derivatives of the motion functions are required for some implementations. Maybe our motion implementations need exteneded...
  • Per

3 May, 2023

  • Discussed updates in data-format and submission guidelines.
  • Per detailed his process for scripting cylinder grids. Group decided to move forward with committing the scripted grid generator as well as a particular family of cylinder meshes for participants to use.
  • Next steps are generating initial results.

5 April, 2023

Notes:

  • MIT group showed preliminary results of cylinder motion.
  • James(MIT) discussed appropriate initial conditions for incompressible cylinder case.

Action items:

  • Per generating + providing cylinder meshes in Gmsh format.
  • Nathan working towards adding 2022 data and setting up standardized data-input/processing.
  • James adding write-up substantiating incompressible initial conditions.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 52.3%
  • Fortran 16.1%
  • C++ 11.4%
  • C 11.0%
  • Julia 9.2%