From 5a818d3f4abb7da06aca29b01b6d66fbcf5d641f Mon Sep 17 00:00:00 2001 From: Walter Dal'Maz Silva Date: Mon, 13 May 2024 12:39:46 +0200 Subject: [PATCH] Added OpenFOAM --- apps/OpenFOAM/.gitignore | 118 + apps/OpenFOAM/LICENSE | 674 + apps/OpenFOAM/README.md | 21 + .../applications/jmakLaplacianFoam/Make/files | 3 + .../jmakLaplacianFoam/Make/options | 12 + .../applications/jmakLaplacianFoam/README.md | 14 + .../jmakLaplacianFoam/jmakLaplacianFoam.C | 252 + .../jmakLaplacianFoam/legacy/Make/files | 3 + .../jmakLaplacianFoam/legacy/Make/options | 12 + .../jmakLaplacianFoam/legacy/createFields.H | 111 + .../jmakLaplacianFoam/legacy/equations.H | 69 + .../legacy/jmakLaplacianFoam.C | 81 + .../dustCollector/manager.jl | 2473 ++ .../dustCollector/runtime-3d/geometry-3d.stl | 10054 ++++++++ .../dustCollector/runtime-mass/.gitignore | 15 + .../dustCollector/runtime-mass/make-flap.geo | 73 + .../dustCollector/runtime-mass/post.sh | 7 + .../runtime-mass/reference/Allrun.sh | 42 + .../reference/constant/cloudProperties | 189 + .../runtime-mass/reference/constant/g | 20 + .../reference/constant/momentumTransport.air | 25 + .../reference/constant/physicalProperties | 23 + .../runtime-mass/reference/system/controlDict | 78 + .../reference/system/decomposeParDict | 38 + .../runtime-mass/reference/system/fvSchemes | 57 + .../runtime-mass/reference/system/fvSolution | 96 + .../dustCollector/runtime-mass/run.sh | 4 + .../dustCollector/runtime-mass/track.sh | 15 + .../dustCollector/runtime-mole/.gitignore | 14 + .../dustCollector/runtime-mole/make-flap.geo | 73 + .../dustCollector/runtime-mole/post.sh | 7 + .../runtime-mole/reference/Allrun.sh | 42 + .../reference/constant/cloudProperties | 189 + .../runtime-mole/reference/constant/g | 20 + .../reference/constant/momentumTransport.air | 25 + .../reference/constant/physicalProperties | 23 + .../runtime-mole/reference/system/controlDict | 78 + .../reference/system/decomposeParDict | 38 + .../runtime-mole/reference/system/fvSchemes | 57 + .../runtime-mole/reference/system/fvSolution | 96 + .../dustCollector/runtime-mole/run.sh | 4 + .../dustCollector/runtime-mole/track.sh | 15 + .../horizontalMixer/.gitignore | 20 + .../horizontalMixer/case/Allclean | 11 + .../horizontalMixer/case/Allpost | 11 + .../horizontalMixer/case/Allrun | 26 + .../horizontalMixer/case/constant/g | 20 + .../case/constant/momentumTransport.air | 38 + .../case/constant/physicalProperties | 25 + .../horizontalMixer/case/system/controlDict | 67 + .../case/system/decomposeParDict | 26 + .../horizontalMixer/case/system/fvSchemes | 67 + .../horizontalMixer/case/system/fvSolution | 89 + .../horizontalMixer/case/system/residuals | 26 + .../horizontalMixer/case/zero/U.air | 45 + .../horizontalMixer/case/zero/epsilon.air | 48 + .../horizontalMixer/case/zero/k.air | 45 + .../horizontalMixer/case/zero/nut.air | 43 + .../horizontalMixer/case/zero/omega.air | 45 + .../horizontalMixer/case/zero/p | 46 + .../horizontalMixer/geometry.geo | 145 + .../horizontalMixer/notebook.jl | 529 + .../horizontalMixer/orig/Allclean | 11 + .../horizontalMixer/orig/Allpost | 10 + .../horizontalMixer/orig/Allrun | 22 + .../orig/constant/cloudProperties | 240 + .../horizontalMixer/orig/constant/g | 20 + .../orig/constant/momentumTransport.air | 41 + .../orig/constant/physicalProperties | 25 + .../horizontalMixer/orig/system/controlDict | 68 + .../orig/system/decomposeParDict | 26 + .../horizontalMixer/orig/system/fvSchemes | 67 + .../horizontalMixer/orig/system/fvSolution | 84 + .../horizontalMixer/orig/system/residuals | 20 + .../orig/system/snappyHexMeshDict | 268 + .../horizontalMixer/orig/zero/U.air | 45 + .../horizontalMixer/orig/zero/epsilon.air | 48 + .../horizontalMixer/orig/zero/k.air | 45 + .../horizontalMixer/orig/zero/nut.air | 43 + .../horizontalMixer/orig/zero/omega.air | 45 + .../horizontalMixer/orig/zero/p | 46 + .../horizontalMixer/procstate.jl | 100 + .../particleDistribution/manager.jl | 2667 ++ .../particleDistribution/reference/Allclean | 11 + .../particleDistribution/reference/Allrun | 57 + .../reference/constant/cloudPositions | 20 + .../constant/cloudProperties.template | 155 + .../particleDistribution/reference/constant/g | 20 + .../reference/constant/momentumTransport.air | 26 + .../constant/physicalProperties.template | 18 + .../reference/system/controlDict | 65 + .../reference/system/decomposeParDict | 26 + .../reference/system/fvSchemes | 67 + .../reference/system/fvSolution | 84 + .../reference/system/residuals | 26 + .../particleDistribution/reference/zero/U.air | 34 + .../particleDistribution/reference/zero/k.air | 33 + .../reference/zero/nut.air | 33 + .../reference/zero/omega.air | 33 + .../particleDistribution/reference/zero/p | 35 + .../particleDistribution/runtime/.gitignore | 2 + .../particleDistribution/runtime/geometry.geo | 41 + .../sedimentationBox/.gitignore | 1 + .../sedimentationBox/geometry.geo | 41 + .../sedimentationBox/manager.jl | 548 + .../sedimentationBox/post/dragModels.pvsm | 19698 +++++++++++++++ .../sedimentationBox/post/gasDensity.pvsm | 14509 +++++++++++ .../sedimentationBox/post/gravity.pvsm | 14533 +++++++++++ .../sedimentationBox/post/particleSize.pvsm | 20158 ++++++++++++++++ .../sedimentationBox/reference/Allclean | 14 + .../sedimentationBox/reference/Allrun | 52 + .../reference/constant/cloudPositions | 20 + .../constant/cloudProperties.template | 155 + .../sedimentationBox/reference/constant/g | 20 + .../reference/constant/momentumTransport.air | 26 + .../constant/physicalProperties.template | 18 + .../sedimentationBox/reference/positions.py | 42 + .../reference/system/controlDict | 65 + .../reference/system/decomposeParDict | 26 + .../reference/system/fvSchemes | 67 + .../reference/system/fvSolution | 84 + .../reference/system/residuals | 26 + .../sedimentationBox/reference/zero/U.air | 34 + .../sedimentationBox/reference/zero/k.air | 33 + .../sedimentationBox/reference/zero/nut.air | 33 + .../sedimentationBox/reference/zero/omega.air | 33 + .../sedimentationBox/reference/zero/p | 35 + .../run/jmakLaplacianFoam/cylinder/Allclean | 11 + .../run/jmakLaplacianFoam/cylinder/Allrun | 41 + .../cylinder/constant/physicalProperties | 37 + .../cylinder/constant/wedge.geo | 52 + .../cylinder/system/controlDict | 54 + .../cylinder/system/fvSchemes | 48 + .../cylinder/system/fvSolution | 48 + .../run/jmakLaplacianFoam/cylinder/zero/T | 51 + .../run/jmakLaplacianFoam/cylinder/zero/beta1 | 32 + .../run/jmakLaplacianFoam/cylinder/zero/beta2 | 32 + .../run/jmakLaplacianFoam/cylinder/zero/beta3 | 32 + .../run/thermophysicalProps/.gitignore | 2 + .../OpenFOAM/run/thermophysicalProps/Allclean | 13 + apps/OpenFOAM/run/thermophysicalProps/Allrun | 51 + .../constant/air/prepare.py | 68 + .../constant/air/thermophysicalProperties-1 | 46 + .../constant/air/thermophysicalProperties-2 | 74 + .../constant/turbulenceProperties | 28 + .../constant/water/thermophysicalProperties-1 | 30 + .../constant/water/thermophysicalProperties-2 | 51 + .../constant/water/thermophysicalProperties-3 | 88 + .../thermophysicalProps/constant/wedge.geo | 88 + .../thermophysicalProps/system/controlDict | 85 + .../thermophysicalProps/system/fvConstraints | 24 + .../run/thermophysicalProps/system/fvSchemes | 61 + .../run/thermophysicalProps/system/fvSolution | 93 + apps/OpenFOAM/run/thermophysicalProps/zero/T | 43 + apps/OpenFOAM/run/thermophysicalProps/zero/U | 42 + .../run/thermophysicalProps/zero/alphat | 45 + .../run/thermophysicalProps/zero/epsilon | 49 + apps/OpenFOAM/run/thermophysicalProps/zero/k | 46 + .../OpenFOAM/run/thermophysicalProps/zero/nut | 46 + apps/OpenFOAM/run/thermophysicalProps/zero/p | 41 + .../multicomponentFluid/mod/.gitignore | 5 + .../mod/aachenBomb/.gitignore | 15 + .../mod/aachenBomb/Allclean | 11 + .../multicomponentFluid/mod/aachenBomb/Allrun | 22 + .../mod/aachenBomb/chemkin/chem.inp | 11 + .../mod/aachenBomb/chemkin/therm.dat | 23 + .../aachenBomb/chemkin/transportProperties | 26 + .../aachenBomb/constant/chemistryProperties | 34 + .../mod/aachenBomb/constant/cloudProperties | 231 + .../aachenBomb/constant/combustionProperties | 25 + .../mod/aachenBomb/constant/fvModels | 28 + .../mod/aachenBomb/constant/g | 21 + .../mod/aachenBomb/constant/momentumTransport | 29 + .../aachenBomb/constant/physicalProperties | 42 + .../mod/aachenBomb/results/cores-001.txt | 41 + .../mod/aachenBomb/results/cores-002.txt | 41 + .../mod/aachenBomb/results/cores-004.txt | 41 + .../mod/aachenBomb/results/cores-008.txt | 41 + .../mod/aachenBomb/results/cores-016.txt | 41 + .../mod/aachenBomb/results/cores-032.txt | 41 + .../mod/aachenBomb/results/efficiency.dat | 6 + .../mod/aachenBomb/results/plot.jl | 20 + .../mod/aachenBomb/results/results.png | Bin 0 -> 22897 bytes .../mod/aachenBomb/system/blockMeshDict | 53 + .../mod/aachenBomb/system/controlDict | 63 + .../mod/aachenBomb/system/decomposeParDict | 33 + .../mod/aachenBomb/system/fvSchemes | 57 + .../mod/aachenBomb/system/fvSolution | 95 + .../mod/aachenBomb/viewer.pvsm | 14398 +++++++++++ .../mod/aachenBomb/zero/N2 | 28 + .../mod/aachenBomb/zero/O2 | 28 + .../mod/aachenBomb/zero/Qdot | 31 + .../multicomponentFluid/mod/aachenBomb/zero/T | 28 + .../multicomponentFluid/mod/aachenBomb/zero/U | 29 + .../mod/aachenBomb/zero/Ydefault | 28 + .../mod/aachenBomb/zero/alphat | 31 + .../mod/aachenBomb/zero/epsilon | 31 + .../multicomponentFluid/mod/aachenBomb/zero/k | 31 + .../mod/aachenBomb/zero/nut | 31 + .../multicomponentFluid/mod/aachenBomb/zero/p | 28 + .../mod/aachenBomb/zero/uniform/time | 30 + .../mod/aachenBombSteady/.gitignore | 2 + .../breakdown/components/Allclean | 11 + .../breakdown/components/blockMeshDict | 69 + .../breakdown/components/chemistryProperties | 41 + .../breakdown/components/combustionProperties | 47 + .../breakdown/components/decomposeParDict | 28 + .../breakdown/components/fvConstraints | 24 + .../breakdown/components/fvSchemes | 64 + .../breakdown/components/fvSolution | 78 + .../components/steadyParticleTracksDict | 22 + .../functions/massAvgOutletFuelVapor | 14 + .../breakdown/functions/massAvgOutletOxidant | 14 + .../functions/massAvgOutletPressureVelocity | 14 + .../functions/massAvgOutletTemperature | 14 + .../mod/aachenBombSteady/breakdown/parallel | 4 + .../aachenBombSteady/breakdown/parameters.jl | 90 + .../breakdown/step-00/.gitignore | 12 + .../aachenBombSteady/breakdown/step-00/Allrun | 25 + .../breakdown/step-00/residuals.ref | 122 + .../breakdown/step-00/zero/0/U | 46 + .../breakdown/step-00/zero/0/p | 44 + .../step-00/zero/constant/momentumTransport | 19 + .../step-00/zero/constant/physicalProperties | 21 + .../breakdown/step-00/zero/system/controlDict | 60 + .../breakdown/step-01/.gitignore | 12 + .../aachenBombSteady/breakdown/step-01/Allrun | 25 + .../breakdown/step-01/residuals.ref | 224 + .../breakdown/step-01/zero/0/U | 46 + .../breakdown/step-01/zero/0/epsilon | 49 + .../breakdown/step-01/zero/0/k | 47 + .../breakdown/step-01/zero/0/nut | 45 + .../breakdown/step-01/zero/0/p | 44 + .../step-01/zero/constant/momentumTransport | 28 + .../step-01/zero/constant/physicalProperties | 21 + .../breakdown/step-01/zero/system/controlDict | 60 + .../breakdown/step-02/.gitignore | 12 + .../aachenBombSteady/breakdown/step-02/Allrun | 25 + .../breakdown/step-02/residuals.ref | 328 + .../breakdown/step-02/zero/0/T | 42 + .../breakdown/step-02/zero/0/U | 46 + .../breakdown/step-02/zero/0/Ydefault | 41 + .../breakdown/step-02/zero/0/air | 45 + .../breakdown/step-02/zero/0/alphat | 46 + .../breakdown/step-02/zero/0/epsilon | 49 + .../breakdown/step-02/zero/0/k | 47 + .../breakdown/step-02/zero/0/nut | 45 + .../breakdown/step-02/zero/0/p | 42 + .../breakdown/step-02/zero/constant/fvModels | 22 + .../breakdown/step-02/zero/constant/g | 21 + .../step-02/zero/constant/momentumTransport | 28 + .../step-02/zero/constant/physicalProperties | 38 + .../step-02/zero/constant/speciesThermo | 36 + .../breakdown/step-02/zero/system/controlDict | 61 + .../breakdown/step-03/.gitignore | 12 + .../aachenBombSteady/breakdown/step-03/Allrun | 25 + .../breakdown/step-03/residuals.ref | 555 + .../breakdown/step-03/zero/0/C7H16 | 45 + .../breakdown/step-03/zero/0/T | 42 + .../breakdown/step-03/zero/0/U | 46 + .../breakdown/step-03/zero/0/Ydefault | 41 + .../breakdown/step-03/zero/0/air | 45 + .../breakdown/step-03/zero/0/alphat | 46 + .../breakdown/step-03/zero/0/epsilon | 49 + .../breakdown/step-03/zero/0/k | 47 + .../breakdown/step-03/zero/0/nut | 45 + .../breakdown/step-03/zero/0/p | 42 + .../zero/constant/cloudModels/psdFixedValue | 5 + .../zero/constant/cloudModels/psdRosinRammler | 9 + .../zero/constant/cloudModels/sprayCloud | 52 + .../step-03/zero/constant/cloudProperties | 132 + .../breakdown/step-03/zero/constant/fvModels | 28 + .../breakdown/step-03/zero/constant/g | 21 + .../step-03/zero/constant/momentumTransport | 28 + .../step-03/zero/constant/physicalProperties | 40 + .../step-03/zero/constant/speciesThermo | 63 + .../breakdown/step-03/zero/system/controlDict | 62 + .../breakdown/step-04/.gitignore | 12 + .../aachenBombSteady/breakdown/step-04/Allrun | 45 + .../breakdown/step-04/chemkin/chem.inp | 11 + .../breakdown/step-04/chemkin/therm.dat | 23 + .../step-04/chemkin/transportProperties | 26 + .../breakdown/step-04/zero/0/C7H16 | 45 + .../breakdown/step-04/zero/0/N2 | 45 + .../breakdown/step-04/zero/0/O2 | 45 + .../breakdown/step-04/zero/0/T | 42 + .../breakdown/step-04/zero/0/U | 46 + .../breakdown/step-04/zero/0/Ydefault | 41 + .../breakdown/step-04/zero/0/alphat | 46 + .../breakdown/step-04/zero/0/epsilon | 49 + .../breakdown/step-04/zero/0/k | 47 + .../breakdown/step-04/zero/0/nut | 45 + .../breakdown/step-04/zero/0/p | 42 + .../zero/constant/cloudModels/psdFixedValue | 5 + .../zero/constant/cloudModels/psdRosinRammler | 9 + .../zero/constant/cloudModels/sprayCloud | 52 + .../step-04/zero/constant/cloudProperties | 132 + .../breakdown/step-04/zero/constant/fvModels | 28 + .../breakdown/step-04/zero/constant/g | 21 + .../step-04/zero/constant/momentumTransport | 28 + .../step-04/zero/constant/physicalProperties | 44 + .../breakdown/step-04/zero/system/controlDict | 63 + .../aachenBombSteady/results/efficiency.dat | 6 + 303 files changed, 113968 insertions(+) create mode 100644 apps/OpenFOAM/.gitignore create mode 100644 apps/OpenFOAM/LICENSE create mode 100644 apps/OpenFOAM/README.md create mode 100644 apps/OpenFOAM/applications/jmakLaplacianFoam/Make/files create mode 100644 apps/OpenFOAM/applications/jmakLaplacianFoam/Make/options create mode 100644 apps/OpenFOAM/applications/jmakLaplacianFoam/README.md create mode 100644 apps/OpenFOAM/applications/jmakLaplacianFoam/jmakLaplacianFoam.C create mode 100644 apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/Make/files create mode 100644 apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/Make/options create mode 100644 apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/createFields.H create mode 100644 apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/equations.H create mode 100644 apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/jmakLaplacianFoam.C create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/manager.jl create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-3d/geometry-3d.stl create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/.gitignore create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/make-flap.geo create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/post.sh create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/Allrun.sh create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/cloudProperties create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/g create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/momentumTransport.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/physicalProperties create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/controlDict create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/decomposeParDict create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/fvSchemes create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/fvSolution create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/run.sh create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/track.sh create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/.gitignore create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/make-flap.geo create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/post.sh create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/Allrun.sh create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/cloudProperties create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/g create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/momentumTransport.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/physicalProperties create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/controlDict create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/decomposeParDict create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/fvSchemes create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/fvSolution create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/run.sh create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/track.sh create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/.gitignore create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/Allclean create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/Allpost create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/Allrun create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/constant/g create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/constant/momentumTransport.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/constant/physicalProperties create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/controlDict create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/decomposeParDict create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/fvSchemes create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/fvSolution create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/residuals create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/U.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/epsilon.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/k.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/nut.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/omega.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/p create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/geometry.geo create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/notebook.jl create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/Allclean create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/Allpost create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/Allrun create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/cloudProperties create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/g create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/momentumTransport.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/physicalProperties create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/controlDict create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/decomposeParDict create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/fvSchemes create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/fvSolution create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/residuals create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/snappyHexMeshDict create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/U.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/epsilon.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/k.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/nut.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/omega.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/p create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/procstate.jl create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/manager.jl create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/Allclean create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/Allrun create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/cloudPositions create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/cloudProperties.template create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/g create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/momentumTransport.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/physicalProperties.template create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/controlDict create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/decomposeParDict create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/fvSchemes create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/fvSolution create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/residuals create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/U.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/k.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/nut.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/omega.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/p create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/runtime/.gitignore create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/runtime/geometry.geo create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/.gitignore create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/geometry.geo create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/manager.jl create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/dragModels.pvsm create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/gasDensity.pvsm create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/gravity.pvsm create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/particleSize.pvsm create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/Allclean create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/Allrun create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/cloudPositions create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/cloudProperties.template create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/g create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/momentumTransport.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/physicalProperties.template create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/positions.py create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/controlDict create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/decomposeParDict create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/fvSchemes create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/fvSolution create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/residuals create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/U.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/k.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/nut.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/omega.air create mode 100644 apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/p create mode 100644 apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/Allclean create mode 100644 apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/Allrun create mode 100644 apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/constant/physicalProperties create mode 100644 apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/constant/wedge.geo create mode 100644 apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/system/controlDict create mode 100644 apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/system/fvSchemes create mode 100644 apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/system/fvSolution create mode 100644 apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/T create mode 100644 apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/beta1 create mode 100644 apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/beta2 create mode 100644 apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/beta3 create mode 100644 apps/OpenFOAM/run/thermophysicalProps/.gitignore create mode 100644 apps/OpenFOAM/run/thermophysicalProps/Allclean create mode 100644 apps/OpenFOAM/run/thermophysicalProps/Allrun create mode 100644 apps/OpenFOAM/run/thermophysicalProps/constant/air/prepare.py create mode 100644 apps/OpenFOAM/run/thermophysicalProps/constant/air/thermophysicalProperties-1 create mode 100644 apps/OpenFOAM/run/thermophysicalProps/constant/air/thermophysicalProperties-2 create mode 100644 apps/OpenFOAM/run/thermophysicalProps/constant/turbulenceProperties create mode 100644 apps/OpenFOAM/run/thermophysicalProps/constant/water/thermophysicalProperties-1 create mode 100644 apps/OpenFOAM/run/thermophysicalProps/constant/water/thermophysicalProperties-2 create mode 100644 apps/OpenFOAM/run/thermophysicalProps/constant/water/thermophysicalProperties-3 create mode 100644 apps/OpenFOAM/run/thermophysicalProps/constant/wedge.geo create mode 100644 apps/OpenFOAM/run/thermophysicalProps/system/controlDict create mode 100644 apps/OpenFOAM/run/thermophysicalProps/system/fvConstraints create mode 100644 apps/OpenFOAM/run/thermophysicalProps/system/fvSchemes create mode 100644 apps/OpenFOAM/run/thermophysicalProps/system/fvSolution create mode 100644 apps/OpenFOAM/run/thermophysicalProps/zero/T create mode 100644 apps/OpenFOAM/run/thermophysicalProps/zero/U create mode 100644 apps/OpenFOAM/run/thermophysicalProps/zero/alphat create mode 100644 apps/OpenFOAM/run/thermophysicalProps/zero/epsilon create mode 100644 apps/OpenFOAM/run/thermophysicalProps/zero/k create mode 100644 apps/OpenFOAM/run/thermophysicalProps/zero/nut create mode 100644 apps/OpenFOAM/run/thermophysicalProps/zero/p create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/.gitignore create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/.gitignore create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/Allclean create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/Allrun create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/chemkin/chem.inp create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/chemkin/therm.dat create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/chemkin/transportProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/chemistryProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/cloudProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/combustionProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/fvModels create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/g create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/momentumTransport create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/physicalProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-001.txt create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-002.txt create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-004.txt create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-008.txt create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-016.txt create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-032.txt create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/efficiency.dat create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/plot.jl create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/results.png create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/blockMeshDict create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/controlDict create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/decomposeParDict create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/fvSchemes create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/fvSolution create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/viewer.pvsm create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/N2 create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/O2 create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/Qdot create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/T create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/U create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/Ydefault create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/alphat create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/epsilon create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/k create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/nut create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/p create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/uniform/time create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/.gitignore create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/Allclean create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/blockMeshDict create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/chemistryProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/combustionProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/decomposeParDict create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/fvConstraints create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/fvSchemes create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/fvSolution create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/steadyParticleTracksDict create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletFuelVapor create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletOxidant create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletPressureVelocity create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletTemperature create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/parallel create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/parameters.jl create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/.gitignore create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/Allrun create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/residuals.ref create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/0/U create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/0/p create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/constant/momentumTransport create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/constant/physicalProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/system/controlDict create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/.gitignore create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/Allrun create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/residuals.ref create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/U create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/epsilon create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/k create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/nut create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/p create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/constant/momentumTransport create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/constant/physicalProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/system/controlDict create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/.gitignore create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/Allrun create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/residuals.ref create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/T create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/U create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/Ydefault create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/air create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/alphat create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/epsilon create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/k create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/nut create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/p create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/fvModels create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/g create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/momentumTransport create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/physicalProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/speciesThermo create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/system/controlDict create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/.gitignore create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/Allrun create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/residuals.ref create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/C7H16 create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/T create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/U create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/Ydefault create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/air create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/alphat create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/epsilon create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/k create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/nut create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/p create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudModels/psdFixedValue create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudModels/psdRosinRammler create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudModels/sprayCloud create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/fvModels create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/g create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/momentumTransport create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/physicalProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/speciesThermo create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/system/controlDict create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/.gitignore create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/Allrun create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/chemkin/chem.inp create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/chemkin/therm.dat create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/chemkin/transportProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/C7H16 create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/N2 create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/O2 create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/T create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/U create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/Ydefault create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/alphat create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/epsilon create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/k create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/nut create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/p create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudModels/psdFixedValue create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudModels/psdRosinRammler create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudModels/sprayCloud create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/fvModels create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/g create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/momentumTransport create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/physicalProperties create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/system/controlDict create mode 100644 apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/results/efficiency.dat diff --git a/apps/OpenFOAM/.gitignore b/apps/OpenFOAM/.gitignore new file mode 100644 index 000000000..3e26ab8b8 --- /dev/null +++ b/apps/OpenFOAM/.gitignore @@ -0,0 +1,118 @@ +############################################################################### +# General +############################################################################### + +.vscode/ + +# Ignore all tutorials +tutorials/* + +# Unignore tutorials that where studied +!tutorials/multicomponentFluid/ +tutorials/multicomponentFluid/* +!tutorials/multicomponentFluid/mod/ + +# Any sandbox +sandbox* + +# Compiled code. +platforms/ + +############################################################################### +# OpenFOAM +############################################################################### + +# Time/iteration directories. +[0-9]* +[0-9]*.[0-9]* + +# For legacy reasons keep 0.orig, but don't use it in new cases! +!0.orig + +# Generated mesh files. Also ignore meshes unless stated otherwise. +**/constant/polyMesh/ +*.msh + +# Runtime processors and dynamic code. +processor* +dynamicCode/ + +# Solution logs +logs/ +log.* + +# Common post-processing +*.foam +postProcessing/ +*.gif +*.mp4 + +# WMake generated for applications. +**/Make/linux*/* + +############################################################################### +# Julia +############################################################################### + +# Files generated by invoking Julia with --code-coverage +*.jl.cov +*.jl.*.cov + +# Files generated by invoking Julia with --track-allocation +*.jl.mem + +# System-specific files and directories generated by the BinaryProvider and +# BinDeps packages. They contain absolute paths specific to the host computer, +# and so should not be committed +deps/deps.jl +deps/build.log +deps/downloads/ +deps/usr/ +deps/src/ + +# Build artifacts for creating documentation generated by the Documenter package +docs/build/ +docs/site/ + +# File generated by Pkg, the package manager, based on a corresponding +# Project.toml. It records a fixed state of all packages used by the project. +# As such, it should not be committed for packages, but should be committed for +# applications that require a static environment. +!Manifest.toml + +############################################################################### +# C +############################################################################### + +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app diff --git a/apps/OpenFOAM/LICENSE b/apps/OpenFOAM/LICENSE new file mode 100644 index 000000000..f288702d2 --- /dev/null +++ b/apps/OpenFOAM/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/apps/OpenFOAM/README.md b/apps/OpenFOAM/README.md new file mode 100644 index 000000000..af0e11ec5 --- /dev/null +++ b/apps/OpenFOAM/README.md @@ -0,0 +1,21 @@ +# OpenFOAM 11 + +Working repository for OpenFOAM v11. + +## Applications + +- [jmakLaplacianFoam](applications/jmakLaplacianFoam/): solver for time-temperature reactive heat release in solids. + +## Simulation cases + +### jmakLaplacianFoam + +- [cylinder](run/jmakLaplacianFoam/cylinder/): solve temperature evolution in a self heating cylinder under JMAK kinetics. + +### incompressibleDenseParticleFluid + +- [sedimentationBox](run/incompressibleDenseParticleFluid/sedimentationBox/): study the role of some drag models over falling particle dynamics. + +### Other or multi-solver + +- [thermophysicalProps](run/thermophysicalProps/): reference case for setting up thermophysical properties. This case illustrates how to use constant and functional forms of thermophysical properties. It might also be useful in conjunction with other solvers using the thermophysical library. One must keep in mind that solution with temperature dependent properties is quite expensive and tabulation of data is also available in OpenFOAM (to be added to this case in the future). diff --git a/apps/OpenFOAM/applications/jmakLaplacianFoam/Make/files b/apps/OpenFOAM/applications/jmakLaplacianFoam/Make/files new file mode 100644 index 000000000..2ce1f0c05 --- /dev/null +++ b/apps/OpenFOAM/applications/jmakLaplacianFoam/Make/files @@ -0,0 +1,3 @@ +jmakLaplacianFoam.C + +EXE = $(FOAM_USER_APPBIN)/jmakLaplacianFoam diff --git a/apps/OpenFOAM/applications/jmakLaplacianFoam/Make/options b/apps/OpenFOAM/applications/jmakLaplacianFoam/Make/options new file mode 100644 index 000000000..c01733b13 --- /dev/null +++ b/apps/OpenFOAM/applications/jmakLaplacianFoam/Make/options @@ -0,0 +1,12 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude + +EXE_LIBS = \ + -lfiniteVolume \ + -lfvModels \ + -lfvConstraints \ + -lmeshTools \ + -lsampling \ + -lsolidThermo diff --git a/apps/OpenFOAM/applications/jmakLaplacianFoam/README.md b/apps/OpenFOAM/applications/jmakLaplacianFoam/README.md new file mode 100644 index 000000000..c0feb30ea --- /dev/null +++ b/apps/OpenFOAM/applications/jmakLaplacianFoam/README.md @@ -0,0 +1,14 @@ +# jmakLaplacianFoam + +Solver for time-temperature reactive heat release in solids. + +Implements differential Johnson–Mehl–Avrami–Kolmogorov (JMAK) reaction progress kinetics for non-isothermal process as proposed by [Mittemeijer et al.](https://doi.org/10.1007/BF02628377). + +This solver was initially implemented and tested with OpenFOAM v2212 and later migrated to OpenFOAM 11. The original implementation is made available under [legacy](legacy/) directory and is no longer maintained. + +A [sample case](../../run/jmakLaplacianFoam/cylinder/) simulating the temperature evolution of a cylinder immersed in coded external convective boundary conditions is provided for illustration of usage. + +In the future, it would be desirable to have the following features implemented: + +- [ ] Generalization for an arbitrary number of reactions. +- [ ] Implement `solidThermo` to use `externalWallHeatFluxTemperature`. diff --git a/apps/OpenFOAM/applications/jmakLaplacianFoam/jmakLaplacianFoam.C b/apps/OpenFOAM/applications/jmakLaplacianFoam/jmakLaplacianFoam.C new file mode 100644 index 000000000..ad289bbb2 --- /dev/null +++ b/apps/OpenFOAM/applications/jmakLaplacianFoam/jmakLaplacianFoam.C @@ -0,0 +1,252 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Application + jmakLaplacianFoam + +Description + Solves a simple Laplace equation for thermal diffusion in a solid coupled + to a JMAK generalized states kinetics. This is a simple adaptation of old + laplacianFoam solver, care must be taken when using it. + +\*---------------------------------------------------------------------------*/ + +#include "argList.H" +#include "fvModels.H" +#include "fvConstraints.H" +#include "pimpleControl.H" + +#include "fvmLaplacian.H" + +using namespace Foam; + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ + argList::addNote + ( + "Temperature equation solver for a JMAK kinetics in solids." + ); + + #include "setRootCase.H" + + #include "createTime.H" + #include "createMesh.H" + + pimpleControl pimple(mesh); + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info<< "Reading field T\n" << endl; + volScalarField T + ( + IOobject + ( + "T", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh + ); + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info << "Reading field beta1\n" << endl; + volScalarField beta1 + ( + IOobject + ( + "beta1", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh + ); + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info << "Reading field beta2\n" << endl; + volScalarField beta2 + ( + IOobject + ( + "beta2", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh + ); + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info << "Reading field beta3\n" << endl; + volScalarField beta3 + ( + IOobject + ( + "beta3", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh + ); + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info<< "Reading physicalProperties\n" << endl; + IOdictionary physicalProperties + ( + IOobject + ( + "physicalProperties", + runTime.constant(), + mesh, + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ) + ); + + const dimensionSet dimR = dimensionSet( 1, 2, -2, -1, -1, 0, 0); + const dimensionSet dimRho = dimensionSet( 1, -3, 0, 0, 0, 0, 0); + const dimensionSet dimCp = dimensionSet( 0, 2, -2, -1, 0, 0, 0); + const dimensionSet dimKr = dimensionSet( 1, 1, -3, -1, 0, 0, 0); + const dimensionSet dimHm = dimensionSet( 1, -1, -2, 0, 0, 0, 0); + const dimensionSet dimNm = dimensionSet( 0, 0, 0, 0, 0, 0, 0); + const dimensionSet dimKm = dimensionSet( 0, 0, -1, 0, 0, 0, 0); + const dimensionSet dimEm = dimensionSet( 1, 2, -2, 0, -1, 0, 0); + + const dimensionedScalar R ("R", dimR, physicalProperties); + const dimensionedScalar rho ("rho", dimRho, physicalProperties); + const dimensionedScalar cp ("cp", dimCp, physicalProperties); + const dimensionedScalar kr ("kr", dimKr, physicalProperties); + + const dimensionedScalar H1 ("H1", dimHm, physicalProperties); + const dimensionedScalar n1 ("n1", dimNm, physicalProperties); + const dimensionedScalar k1 ("k1", dimKm, physicalProperties); + const dimensionedScalar E1 ("E1", dimEm, physicalProperties); + + const dimensionedScalar H2 ("H2", dimHm, physicalProperties); + const dimensionedScalar n2 ("n2", dimNm, physicalProperties); + const dimensionedScalar k2 ("k2", dimKm, physicalProperties); + const dimensionedScalar E2 ("E2", dimEm, physicalProperties); + + const dimensionedScalar H3 ("H3", dimHm, physicalProperties); + const dimensionedScalar n3 ("n3", dimNm, physicalProperties); + const dimensionedScalar k3 ("k3", dimKm, physicalProperties); + const dimensionedScalar E3 ("E3", dimEm, physicalProperties); + + #include "createFvModels.H" + #include "createFvConstraints.H" + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info << "\nEvolving transport equations\n" << endl; + + while (runTime.run()) + { + ++runTime; + + Info<< "Time = " << runTime.timeName() << nl << endl; + + fvModels.correct(); + + while (pimple.correctNonOrthogonal()) + { + volScalarField dbeta1 = k1 * Foam::exp(-E1 / (R * T)); + volScalarField dbeta2 = k2 * Foam::exp(-E2 / (R * T)); + volScalarField dbeta3 = k3 * Foam::exp(-E3 / (R * T)); + + volScalarField q1 = dbeta1 * H1 * n1 * Foam::pow(beta1, n1-1); + volScalarField q2 = dbeta2 * H2 * n2 * Foam::pow(beta2, n2-1); + volScalarField q3 = dbeta3 * H3 * n3 * Foam::pow(beta3, n3-1); + + q1 *= Foam::exp(-Foam::pow(beta1, n1)); + q2 *= Foam::exp(-Foam::pow(beta2, n2)); + q3 *= Foam::exp(-Foam::pow(beta3, n3)); + + volScalarField qdot = q1 + q2 + q3; + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + fvScalarMatrix TEqn + ( + fvm::ddt(rho * cp, T) + == + fvm::laplacian(kr, T, "laplacian(k,T)") + qdot + ); + + fvScalarMatrix beta1Eqn + ( + fvm::ddt(beta1) == dbeta1 + ); + + fvScalarMatrix beta2Eqn + ( + fvm::ddt(beta2) == dbeta2 + ); + + fvScalarMatrix beta3Eqn + ( + fvm::ddt(beta3) == dbeta3 + ); + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + TEqn.relax(); + beta1Eqn.relax(); + beta2Eqn.relax(); + beta3Eqn.relax(); + + fvConstraints.constrain(TEqn); + fvConstraints.constrain(beta1Eqn); + fvConstraints.constrain(beta2Eqn); + fvConstraints.constrain(beta3Eqn); + + TEqn.solve(); + beta1Eqn.solve(); + beta2Eqn.solve(); + beta3Eqn.solve(); + } + + runTime.write(); + + Info << "ExecutionTime = " << runTime.elapsedCpuTime() << " s" + << " ClockTime = " << runTime.elapsedClockTime() << " s" + << nl << endl; + } + + Info << "End\n" << endl; + + return 0; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/Make/files b/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/Make/files new file mode 100644 index 000000000..2ce1f0c05 --- /dev/null +++ b/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/Make/files @@ -0,0 +1,3 @@ +jmakLaplacianFoam.C + +EXE = $(FOAM_USER_APPBIN)/jmakLaplacianFoam diff --git a/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/Make/options b/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/Make/options new file mode 100644 index 000000000..932c7b21f --- /dev/null +++ b/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/Make/options @@ -0,0 +1,12 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude + +EXE_LIBS = \ + -lfiniteVolume \ + -lfvOptions \ + -lmeshTools \ + -lsampling \ + -lsolidThermo \ + -lthermoTools diff --git a/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/createFields.H b/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/createFields.H new file mode 100644 index 000000000..6e0cd5602 --- /dev/null +++ b/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/createFields.H @@ -0,0 +1,111 @@ +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +Info<< "Reading field T\n" << endl; +volScalarField T +( + IOobject + ( + "T", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +Info << "Reading field beta1\n" << endl; +volScalarField beta1 +( + IOobject + ( + "beta1", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +Info << "Reading field beta2\n" << endl; +volScalarField beta2 +( + IOobject + ( + "beta2", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +Info << "Reading field beta3\n" << endl; +volScalarField beta3 +( + IOobject + ( + "beta3", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +Info<< "Reading physicalProperties\n" << endl; +IOdictionary physicalProperties +( + IOobject + ( + "physicalProperties", + runTime.constant(), + mesh, + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ) +); + +const dimensionSet dimR = dimensionSet( 1, 2, -2, -1, -1, 0, 0); +const dimensionSet dimRho = dimensionSet( 1, -3, 0, 0, 0, 0, 0); +const dimensionSet dimCp = dimensionSet( 0, 2, -2, -1, 0, 0, 0); +const dimensionSet dimKr = dimensionSet( 1, 1, -3, -1, 0, 0, 0); +const dimensionSet dimHm = dimensionSet( 1, -1, -2, 0, 0, 0, 0); +const dimensionSet dimNm = dimensionSet( 0, 0, 0, 0, 0, 0, 0); +const dimensionSet dimKm = dimensionSet( 0, 0, -1, 0, 0, 0, 0); +const dimensionSet dimEm = dimensionSet( 1, 2, -2, 0, -1, 0, 0); + +const dimensionedScalar R ("R", dimR, physicalProperties); +const dimensionedScalar rho ("rho", dimRho, physicalProperties); +const dimensionedScalar cp ("cp", dimCp, physicalProperties); +const dimensionedScalar kr ("kr", dimKr, physicalProperties); + +const dimensionedScalar H1 ("H1", dimHm, physicalProperties); +const dimensionedScalar n1 ("n1", dimNm, physicalProperties); +const dimensionedScalar k1 ("k1", dimKm, physicalProperties); +const dimensionedScalar E1 ("E1", dimEm, physicalProperties); + +const dimensionedScalar H2 ("H2", dimHm, physicalProperties); +const dimensionedScalar n2 ("n2", dimNm, physicalProperties); +const dimensionedScalar k2 ("k2", dimKm, physicalProperties); +const dimensionedScalar E2 ("E2", dimEm, physicalProperties); + +const dimensionedScalar H3 ("H3", dimHm, physicalProperties); +const dimensionedScalar n3 ("n3", dimNm, physicalProperties); +const dimensionedScalar k3 ("k3", dimKm, physicalProperties); +const dimensionedScalar E3 ("E3", dimEm, physicalProperties); + +#include "createFvOptions.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/equations.H b/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/equations.H new file mode 100644 index 000000000..bab6b0477 --- /dev/null +++ b/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/equations.H @@ -0,0 +1,69 @@ +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +volScalarField dbeta1 = k1 * Foam::exp(-E1 / (R * T)); +volScalarField dbeta2 = k2 * Foam::exp(-E2 / (R * T)); +volScalarField dbeta3 = k3 * Foam::exp(-E3 / (R * T)); + +volScalarField q1 = dbeta1 * H1 * n1 * Foam::pow(beta1, n1-1); +volScalarField q2 = dbeta2 * H2 * n2 * Foam::pow(beta2, n2-1); +volScalarField q3 = dbeta3 * H3 * n3 * Foam::pow(beta3, n3-1); + +q1 *= Foam::exp(-Foam::pow(beta1, n1)); +q2 *= Foam::exp(-Foam::pow(beta2, n2)); +q3 *= Foam::exp(-Foam::pow(beta3, n3)); + +volScalarField qdot = q1 + q2 + q3; + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +fvScalarMatrix TEqn +( + fvm::ddt(rho * cp, T) + == + fvm::laplacian(kr, T, "laplacian(k,T)") + qdot +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +fvScalarMatrix beta1Eqn +( + fvm::ddt(beta1) == dbeta1 +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +fvScalarMatrix beta2Eqn +( + fvm::ddt(beta2) == dbeta2 +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +fvScalarMatrix beta3Eqn +( + fvm::ddt(beta3) == dbeta3 +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +TEqn.relax(); +beta1Eqn.relax(); +beta2Eqn.relax(); +beta3Eqn.relax(); + +fvOptions.constrain(TEqn); +fvOptions.constrain(beta1Eqn); +fvOptions.constrain(beta2Eqn); +fvOptions.constrain(beta3Eqn); + +TEqn.solve(); +beta1Eqn.solve(); +beta2Eqn.solve(); +beta3Eqn.solve(); + +fvOptions.correct(T); +fvOptions.correct(beta1); +fvOptions.correct(beta2); +fvOptions.correct(beta3); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/jmakLaplacianFoam.C b/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/jmakLaplacianFoam.C new file mode 100644 index 000000000..d75a10b39 --- /dev/null +++ b/apps/OpenFOAM/applications/jmakLaplacianFoam/legacy/jmakLaplacianFoam.C @@ -0,0 +1,81 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Application + cementHydrationFoam + +Description + Solves a simple Laplace equation for thermal diffusion in a solid coupled + to a JMAK generalized states kinetics. + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "fvOptions.H" +#include "pimpleControl.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ + argList::addNote + ( + "Temperature equation solver for a JMAK kinetics in solids." + ); + + #include "postProcess.H" + + #include "addCheckCaseOptions.H" + #include "setRootCaseLists.H" + #include "createTime.H" + #include "createMesh.H" + #include "createFields.H" + + pimpleControl pimple(mesh); + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info << "\nEvolving transport\n" << endl; + + while (runTime.run()) + { + ++runTime; + + Info<< "Time = " << runTime.timeName() << nl << endl; + + while (pimple.correctNonOrthogonal()) + { + #include "equations.H" + } + + runTime.write(); + + runTime.printExecutionTime(Info); + } + + Info << "End\n" << endl; + + return 0; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/manager.jl b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/manager.jl new file mode 100644 index 000000000..fe9987035 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/manager.jl @@ -0,0 +1,2473 @@ +### A Pluto.jl notebook ### +# v0.19.32 + +using Markdown +using InteractiveUtils + +# ╔═╡ 0e22936e-bf49-11ee-3ce1-d1dfb33e1dfa +begin + @info "Loading required external tools" + + # Install locally parent OpenFOAM.jl and local modules. + push!(LOAD_PATH, joinpath(@__DIR__, "../../..")) + + using NaturalSort + using SumTypes + + using CairoMakie + using CSV + using DataFrames + using DelimitedFiles + using PlutoUI + using PrettyTables + using Printf + using Statistics + using Trapz + using OpenFOAM +end + +# ╔═╡ e7ca5c7e-4fe4-40b7-b31e-7e30faeae03a +md""" +# Study manager + +$(TableOfContents()) +""" + +# ╔═╡ 30b3340e-31cd-4471-805f-72fafe3225ee +begin + @info "Evaluation of PSD" + + "Particle material specific mass [kg/m³]." + const RHOP::Float64 = 2450.0 + + "Total mass flow of solids [kg/s]." + const ṀSOL::Float64 = 807.0 / 3600 + + "Mass flow of solids leaving by traps [kg/s]." + const ṀBOT::Float64 = 592.0 / 3600 + + "Mass flow of solids leaving by top [kg/s]." + const ṀTOP = ṀSOL - ṀBOT + + "Table with sizes and PSD for top/bottom." + const DATA = [ + 150.0e-06 0.0030 0.3843; + 260.0e-06 0.0790 0.4731; + 410.0e-06 0.2182 0.1295; + 750.0e-06 0.3921 0.0130; + 125.0e-05 0.1987 0.0000; + 175.0e-05 0.0659 0.0000; + 300.0e-05 0.0363 0.0000; + 400.0e-05 0.0067 0.0000; + ] + + "Particle size distribution assuming mass fractions." + const PSDY = (DATA[:, 2] * ṀBOT + DATA[:, 3] * ṀTOP) / ṀSOL + + "Particle size distribution assuming mole fractions." + const PSDX = let + x = PSDY ./ (0.5DATA[:, 1]).^3 + x ./ sum(x) + end + + d = [ + 150, + 260, + 410, + 750, + 1250, + 1750, + 3000, + 4000, + ] + + # Values for display only. + Y = map(u->@sprintf("%.4f", 100u), PSDY) + X = map(u->@sprintf("%.4f", 100u), PSDX) + + # @info """ + # Mass fraction PSD: + # + # $(tabulate(DATA[:, 1], PSDY)) + # + # Mole fraction PSD: + # + # $(tabulate(DATA[:, 1], PSDX)) + # """ +end; + +# ╔═╡ 0a0a672e-5645-4a07-9f1a-c3dfb6c03c01 +md""" +### Particle size distribution + +A mass flow of solids of $(round(3600ṀSOL)) kg/h is reported, out of which $(round(3600ṀTOP)) kg/h is expected to leave through the cyclone and the remaining $(round(3600ṀBOT)) kg/h through the screw. + +Measurements were performed at three locations, (1) the exit fo the box through the screw, (2) at a sampling point nead the cyclone, and (3) at the storage silo. + +Since the silo accumulates materials from both exits, it would be expected that it represents the *box* and *cyclone* measurements, but that clearly is not the case in the following table. + +| Sieve [mm] | d [μm] | Box | Cyclone | Silo | Tested | Y% | X% | +|:----------:|:------:|------:|--------:|------:|-------:|:-------:|:-------:| + 0.1 | 150 | 0.30 | 38.43 | 1.80 | 10.46 | $(Y[1]) | $(X[1]) | + 0.2 | 260 | 7.90 | 47.31 | 12.15 | 18.40 | $(Y[2]) | $(X[2]) | + 0.315 | 410 | 21.82 | 12.95 | 19.82 | 19.46 | $(Y[3]) | $(X[3]) | + 0.5 | 750 | 39.21 | 1.30 | 35.88 | 29.11 | $(Y[4]) | $(X[4]) | + 1 | 1250 | 19.87 | 0.00 | 21.48 | 14.58 | $(Y[5]) | $(X[5]) | + 1.5 | 1750 | 6.59 | 0.00 | 6.78 | 4.83 | $(Y[6]) | $(X[6]) | + 2 | 3000 | 3.63 | 0.00 | 2.09 | 2.66 | $(Y[7]) | $(X[7]) | + 4 | 4000 | 0.67 | 0.00 | 0.00 | 0.49 | $(Y[8]) | $(X[8]) | + +Assume a particle material specific mass of $(round(RHOP)) kg/m³. +""" + +# ╔═╡ 7451a2ca-e2d9-42e7-a1ed-405d47c3e70e +let + with_theme() do + f(x, k, λ) = (k/λ) * (x/λ)^(k-1) * exp(-(x/λ)^k) + + x = 0:10:4000 + y = @. 180 * (f(x, 2.8, 850) + f(x, 1.8, 1800)) + # Y = trapz(x, y) + + f = Figure() + ax = Axis(f[1, 1]) + scatter!(ax, d, PSDY; color = :red) + lines!(ax, x, y; color = :black) + f + end +end + +# ╔═╡ 4cc41098-40f5-4cdf-bcdf-ed40a72d01f7 +md""" +It is unclear how [`tabulatedDensity`](https://cpp.openfoam.org/v11/classFoam_1_1distributions_1_1tabulatedDensity.html#details) works and what factor `Q` represents. For physical reasons we understand that PSD must be supplied on particle number basis, not mass fraction. +""" + +# ╔═╡ c63b6b4b-40d1-4e4f-8e9c-a5aea5375d14 +md""" +### Particle flow rate +""" + +# ╔═╡ 3d616562-a598-429f-9ceb-22b07346a749 +begin + @info "Flow rate calculations" + + "Original system width [m]." + const BOXWIDTH = 2.0 + + "System simplified geometry width [m]." + const MESHWIDTH = 0.1 + + "Scaled solids flow rate [kg/s]." + const ṀSCALED = (ṀSOL / BOXWIDTH) * MESHWIDTH + + "Mean particle diameter with mass fraction PSD [m]." + const DIAMY = sum(DATA[:, 1] .* PSDY) + + "Mean particle diameter with mole fraction PSD [m]." + const DIAMX = sum(DATA[:, 1] .* PSDX) + + npx = 10 + npy = 1 + + ppsy = parcels_per_second(; mdot = ṀSCALED, rhop = RHOP, + diam = DIAMY, nParticle = npy) + ppsx = parcels_per_second(; mdot = ṀSCALED, rhop = RHOP, + diam = DIAMX, nParticle = npx) + + taby = TabulatedDensity(DATA[:, 1], PSDY; Q = 0) + tabx = TabulatedDensity(DATA[:, 1], PSDX; Q = 0) +end; + +# ╔═╡ c98b4ec6-3c3f-4d87-bc91-fdc4063e61dc +@info """ +Using mass fractions PSD: + +Scaled mass flow rate .... $(ṀSCALED) kg/s +Mean particle diameter ... $(1000DIAMY) mm +Parcels per second ....... $(ppsy) +Number of particles ...... $(npy) + + $(string(taby)) +""" + +# ╔═╡ 232fa660-d767-47fe-b327-2968e59d3533 +@info """ +Using mole fractions PSD: + +Scaled mass flow rate .... $(ṀSCALED) kg/s +Mean particle diameter ... $(1000DIAMX) mm +Parcels per second ....... $(ppsx) +Number of particles ...... $(npx) + + $(string(tabx)) +""" + +# ╔═╡ c1327449-fd54-4a9a-88e3-5224d6d6f320 +md""" +## Post-processing +""" + +# ╔═╡ 5266f4b8-a0f7-401d-adae-68954b479710 +md""" +### Case 001 - PSD(Y) +""" + +# ╔═╡ 1ab5892e-fc6a-4458-846e-b50443d654d3 +md""" +### Case 002 - PSD(Y) +""" + +# ╔═╡ 2653fbf8-6cca-4c0d-8217-f91c2d61566e +md""" +### Case 003 - PSD(Y) +""" + +# ╔═╡ 0594dbbc-d9db-4f4c-b615-c6032c746af4 +md""" +### Case 004 - PSD(Y) +""" + +# ╔═╡ 6060bad5-ed88-4429-97fa-45a9d132fe70 +md""" +## Appendix + +### Constants +""" + +# ╔═╡ 58940ce6-9854-447f-bbc2-988de21c748a +"Ideal gas constant [J/(mol.K)]" +const R_GAS::Float64 = 8.31446261815324 + +# ╔═╡ 9c9a1525-8129-4b7b-8969-6d34b1976f25 +"Reference normal temperature [K]" +const T_NORM::Float64 = 273.15 + +# ╔═╡ 6a3c3cc4-d405-4718-b0ea-dbeb3a242a6b +"Reference normal pressure [Pa]" +const P_NORM::Float64 = 101325.0 + +# ╔═╡ d56de3ff-e1aa-4508-81c8-e0d0b9d665cd +"Air mean molecular mass [kg/mol]" +const M_AIR::Float64 = 0.028966 + +# ╔═╡ 89398583-a1c2-4080-813b-16894a7825a5 +"Air viscosity at 273.15 K [Pa.s]." +const ν_AIR::Float64 = 1.715e-05 + +# ╔═╡ c95958b2-78d1-41c1-b77a-f464e5bb8e6a +"Sutherland parameter for air viscosity [K]." +const S_AIR::Float64 = 110.4 + +# ╔═╡ 8d69545d-3ff8-452f-b058-1d3a8430a5fc +"Conversion from water column height to pressure [mmH2O/Pa]" +const MMH2O::Float64 = 9.80665 + +# ╔═╡ 1a8a8225-fba6-447e-9c4e-00237d8c8adc +md""" +### Functions (physical) +""" + +# ╔═╡ a024486d-d7d1-4620-bb28-5ffc4963cb8c +"Specific mass of gas at operating conditions [kgm/m³]" +specificmass(T, P, M) = (P * M) / (R_GAS * T) + +# ╔═╡ a6d683cf-81b1-4462-9efd-d79680ac77d2 +"Convert normal flow in [Nm³/h] to mass flow rate [kg/s]" +normaltomassflow(q; M = M_AIR) = specificmass(T_NORM, P_NORM, M) * (q / 3600) + +# ╔═╡ 0dff8a11-a931-4fb4-b3cb-1950a5eb78e9 +"Sutherland law for dynamic viscosity approaximation [Pa.s]." +viscosity(T, T₀, ν₀, S) = ν₀ * (T / T₀)^(3//2) * (T₀ + S) / (T + S) + +# ╔═╡ 7a603476-c251-43c6-b354-5652ff9c8fa7 +begin + "Cross-sectional area of inlet [m²]." + const AREA_INLET::Float64 = π * (0.71/2)^2 + + "Angle between inlet and horizontal plane [rad]." + const θ::Float64 = -0.54115570 + + "Inlet air temperature [K]." + const T_INLET::Float64 = T_NORM + 465.0 + + "Inlet normal flow rate of air [Nm³/h]." + const Q_NORM::Float64 = 19_395 - 900 + + "Inlet mass flow rate of air [kg/s]." + const ṀAIR::Float64 = normaltomassflow(Q_NORM) + + "Inlet volume flow of air at operating conditions [m³/s]." + const Q̇AIR::Float64 = ṀAIR / specificmass(T_INLET, P_NORM, M_AIR) + + "Inlet air injection velocity magnitude [m/s]." + const UAIR::Float64 = Q̇AIR / AREA_INLET + + "Inlet air injection horizontal velocity [m/s]." + const UAIRX::Float64 = UAIR * cos(θ) + + "Inlet air injection vertical velocity [m/s]." + const UAIRY::Float64 = UAIR * sin(θ) + + "Air specific mass at operating conditions [kg/m³]." + const ρAIR::Float64 = specificmass(T_INLET, P_NORM, M_AIR) + + "Air dynamic viscosity at operating conditions [Pa.s]." + const νAIR::Float64 = viscosity(T_INLET, T_NORM, ν_AIR, S_AIR) + + "Air kinematic viscosity at operating conditions [m²/s]." + const ηAIR = νAIR / ρAIR + + "Pressure at screw 1 trap [Pa]." + const P1::Float64 = -19.0 * MMH2O + + "Pressure at screw 2 trap [Pa]." + const P2::Float64 = -21.0 * MMH2O + + "Pressure at cyclone exchaust [Pa]." + const P3::Float64 = -39.8 * MMH2O + + const BACK1 = 3600normaltomassflow(60) + const BACK2 = 3600normaltomassflow(840) + const PURGE = 3600normaltomassflow(Q_NORM+900) + + @info """ + Details of air flow calculations: + + - Trap 1 pressure .... $(round(P1; digits = 1)) Pa + - Trap 2 pressure .... $(round(P2; digits = 1)) Pa + - Cyclone pressure ... $(round(P3; digits = 1)) Pa + + - Trap 1 kinematic pressure .... $(round(P1 / ρAIR; digits = 1)) m²/s² + - Trap 2 kinematic pressure .... $(round(P2 / ρAIR; digits = 1)) m²/s² + - Cyclone kinematic pressure ... $(round(P3 / ρAIR; digits = 1)) m²/s² + + - Inlet mass flow rate ......... $(@sprintf("%.10e", ṀAIR)) kg/s + - Volume flow rate ............. $(@sprintf("%.10e", Q̇AIR)) m³/s + - Fluid specific mass .......... $(@sprintf("%.10e", ρAIR)) kg/m³ + - Fluid dynamic viscosity ...... $(@sprintf("%.10e", νAIR)) Pa.s + - Fluid kinematic viscosity .... $(@sprintf("%.10e", ηAIR)) m²/s + + - Injection speed .............. $(UAIR) m/s + - x-component ............... $(UAIRX) m/s + - y-component ............... $(UAIRY) m/s + + - Back flow at trap 1 .......... $(@sprintf("%.10e", BACK1)) kg/h + - Back flow at trap 2 .......... $(@sprintf("%.10e", BACK2)) kg/h + - Extraction flow .............. $(@sprintf("%.10e", PURGE)) kg/h + """ +end; + +# ╔═╡ 6d7b5e7d-a6e6-4dfa-85ee-30529c73afed +md""" +## Setup + +### Operating conditions + +Inlet operates at a nominal volume flow rate of $(Q_NORM) Nm³/h at $(T_INLET) K. With these values and air properties, the mass flow rate is evaluated at $(round(ṀAIR, digits = 2)) kg/s and estimated inlet velocity of $(round(UAIR, digits = 1)) m/s given the inlet cross-section of $(round(AREA_INLET, digits = 3)) m². Pressure boundary conditions are given below. +""" + +# ╔═╡ 23924b14-2db2-476d-bca3-900bfa1f8606 +md""" +### Functions (processing) +""" + +# ╔═╡ 385aa2a9-22d2-4978-ac26-c27f1896fe25 +"Helper for retrieving file header from a given line." +function getheaders(fname; line_no = 2, comment_char = '#') + # XXX: make this in Julia instead. + open(`awk NR==$(line_no) $(fname)`) do io + return filter(h->!startswith(h, comment_char), readdlm(io)) + end +end + +# ╔═╡ 0dc1811d-655f-4440-a0c0-d05675134656 +"Manage parsing of OpenFOAM post-processing data." +function joinpostprocdata(rootdir; head_line_no = 2) + # Array for storing partial data frames. + data = [] + + # There might be several sub-directories if the calculation has been + # restarted, each named after the starting time. + for timedir in readdir(rootdir; join = true) + + # To my knowledge there is always a single file in the directories + # but maybe some functionality I never used dump several files. + for file in readdir(timedir; join = true) + + # Headers are stored as a comment `#` after some metadata. + # For flow it is generally row 4 and residuals on row 2. + headers = getheaders(file; line_no = head_line_no) + + # Read the remaining of data as usual, ignoring comments. + thisdata = readdlm(file; comments=true, comment_char='#') + thisdata = DataFrame(thisdata, headers) + + # Accumulate in `data` to perform a single join in the end. + push!(data, thisdata) + end + end + + # Join accumulated data. + return vcat(data...) +end + +# ╔═╡ d6f99f5c-064a-463b-82a8-f150f291f98f +"Clean cloud file data for postprocessing." +function cleancloudpost(src, dst; verbose = false) + # TODO: much to improve here! + + # All substitutions to make in file. + subs = ["(" => "", ")" => "", " " => "\t"] + + # Array to store processed rows. + rows = [] + + # Read raw OpenFOAM post-processing file. + open(src, "r") do fp + for line in readlines(fp) + for (k, v) in subs + line = replace(line, k => v) + end + push!(rows, line) + end + end + + # File contains only header. + if length(rows) == 1 + verbose && @warn "Nothing to process here in $(src)" + return false + end + + # Dump results for processing. + open(dst, "w") do fp + write(fp, join(rows, "\n")) + end + + return true +end + +# ╔═╡ bc299a88-c402-4f5d-899d-80b159360137 +"Specialized workflow for handling lagrangian patches." +function postlagrangianpatch(clouds, bc) + table = [] + + for timedir in readdir(clouds; join = true) + # File names have extension .post. + file = joinpath(timedir, "$(bc).post") + + # Intermediate files are temporary. + tmp = tempname() + + # Clean file from its vector/group format. + if !cleancloudpost(file, tmp) + continue + end + + # XXX: understand missing labels! + headers = [getheaders(tmp; line_no = 1)..., "1?", "2?"] + + # Read the remaining of data as usual, ignoring comments. + thisdata = readdlm(tmp; comments=true, comment_char='#') + thisdata = DataFrame(thisdata, headers) + + # Accumulate in `data` to perform a single join in the end. + push!(table, thisdata) + end + + # Join accumulated data. + return vcat(table...) +end + +# ╔═╡ 7a45fa84-5b18-418f-8e8c-118e4aad1717 +"Dump data frame in tab-separated values format." +function toTSV(df, fname) + writedlm(fname, Iterators.flatten(([names(df)], eachrow(df))), '\t') +end + +# ╔═╡ c12e88f7-2eb3-4368-9df6-613768a8d17b +# TODO add reload/force in the `postworkflow` to avoid reprocessing. + +# ╔═╡ ed961c9c-19ca-4b1c-b3a8-62935c3a1a83 +function plotpressure(df) + t = df[!, "Time"] + P = df[!, "areaAverage(p)"] + + fig = Figure() + ax = Axis(fig[1, 1]) + + lines!(ax, t, P) + + ax.xlabel = "Time [s]" + ax.ylabel = "Kinematic pressure [m²/s²]" + + return fig +end + +# ╔═╡ 0e20758d-89ea-475d-b729-d72179e8f8a3 +"Full post-processing workflow." +function postworkflow(case) + base = joinpath(@__DIR__, "runtime/$(case)") + post = joinpath(base, "case/postProcessing/") + + datadir = joinpath(base, "post") + !isdir(datadir) && mkdir(datadir) + + # Backup data for saving results. + cp(post, joinpath(datadir, "data"); force = true) + + clouds = joinpath(post, "lagrangian/cloud/patchPostProcessing1") + + "Local function for getting mass flow data." + function getdumpmassflow(src; dst = nothing) + df = joinpostprocdata(src; head_line_no = 4) + !isnothing(dst) && toTSV(df, joinpath(datadir, dst)) + return df + end + + "Local function for processing lagrangian clouds." + function getclouddata(bc) + df = postlagrangianpatch(clouds, bc) + toTSV(df, joinpath(datadir, "cloud-$(bc).tsv")) + return df + end + + residuals = joinpath(post, + "residuals(p,U.air,omega.air,k.air,cloud:alpha)") + + inlet_pressure = joinpath(post, + "patchAverage(patch=inlet,fields=(p))") + + flow_inlet = joinpath(post, + "patchFlowRate(patch=inlet,phi.air,cloud:massFlux)") + + flow_cyclone = joinpath(post, + "patchFlowRate(patch=outlet-cyclone,phi.air,cloud:massFlux)") + + flow_screw_1 = joinpath(post, + "patchFlowRate(patch=outlet-screw-1,phi.air,cloud:massFlux)") + + flow_screw_2 = joinpath(post, + "patchFlowRate(patch=outlet-screw-2,phi.air,cloud:massFlux)") + + df_residuals = joinpostprocdata(residuals; head_line_no = 2) + toTSV(df_residuals, joinpath(datadir, "residuals-initial.tsv")) + + df_pressure = joinpostprocdata(inlet_pressure; head_line_no = 4) + toTSV(df_pressure, joinpath(datadir, "pressure-inlet.tsv")) + + df_mdot_inlet = getdumpmassflow(flow_inlet) + df_mdot_cyclone = getdumpmassflow(flow_cyclone; dst = "mdot-cyclone.tsv") + df_mdot_screw_1 = getdumpmassflow(flow_screw_1; dst = "mdot-screw-1.tsv") + df_mdot_screw_2 = getdumpmassflow(flow_screw_2; dst = "mdot-screw-2.tsv") + + cloud_cyclone = getclouddata("outlet-cyclone") + cloud_screw_1 = getclouddata("outlet-screw-1") + cloud_screw_2 = getclouddata("outlet-screw-2") + + # TODO check this! Something is wrong! + mdot_inlet = -1mean(df_mdot_inlet[!, "sum(phi.air)"]) + mdot_cyclone = -1mean(df_mdot_cyclone[!, "sum(phi.air)"]) + mdot_screw_1 = -1mean(df_mdot_screw_1[!, "sum(phi.air)"]) + mdot_screw_2 = -1mean(df_mdot_screw_2[!, "sum(phi.air)"]) + mdot_bal = mdot_inlet + mdot_cyclone + mdot_screw_1 + mdot_screw_2 + + df_cloud = DataFrame( + "cyclone" => 1000mean(cloud_cyclone[!, :d]), + "screw_1" => 1000mean(cloud_screw_1[!, :d]), + "screw_2" => 1000mean(cloud_screw_2[!, :d]) + ) + + io = IOBuffer() + pretty_table(io, df_cloud) + + @info """ + Post-processing report for case $(case) + + Inlet air mass flow rate ..... $(round(10*3600mdot_inlet)) kg/h + Screw 1 air mass flow rate ... $(round(10*3600mdot_screw_1)) kg/h + Screw 2 air mass flow rate ... $(round(10*3600mdot_screw_2)) kg/h + Cyclone air mass flow rate ... $(round(10*3600mdot_cyclone)) kg/h + Balance air mass flow rate ... $(round(10*3600mdot_bal)) kg/h + + Particle sizes summary: + + $(String(take!(io))) + """ + + figs = [ + plotpressure(df_pressure), + ] + + return figs +end + +# ╔═╡ 659e5a35-e78a-4b27-ba3c-29409f00ea5d +begin + fig001 = postworkflow("001") +end; + +# ╔═╡ 935a3a0e-53c8-450f-a45c-009fb518b27e +fig001[1] + +# ╔═╡ d2b09b74-b7fb-4c4d-b327-78c84035b22d +begin + fig002 = postworkflow("002") +end; + +# ╔═╡ c651c6b1-fab1-4c9d-8899-a3c681264c00 +fig002[1] + +# ╔═╡ c963b6a6-ce81-4071-aca4-82ea616acb99 +begin + fig003 = postworkflow("003") +end; + +# ╔═╡ 9ad85222-9cb8-4df1-a2d5-a212ddec55f9 +fig003[1] + +# ╔═╡ 34c31668-6b32-43e3-b4e5-74132d214020 +begin + fig004 = postworkflow("004") +end; + +# ╔═╡ bc9fa419-fb64-48aa-8148-e11fc91b46f5 +fig004[1] + +# ╔═╡ 92a70e7b-f034-43ae-94e5-b153efc769a0 +md""" +### Draft work +""" + +# ╔═╡ 3540c91d-c1e5-4bec-b7cb-4c03d32353f9 +begin + patchInjection = PatchInjection(; + name = "psdx", + patchName = "inlet", + sizeDistribution = tabx, + massFlowRate = ṀSCALED, + massTotal = 1.0e+304, + SOI = 0, + duration = 1.0e+304, + nParticle = npx, + uniformParcelSize = UniformParcelSize'.nParticle, + flowRateProfile = ConstantFlowRateProfile(1), + U0 = Velocity(UAIRX, UAIRY, 0), + parcelsPerSecond = ppsx + ) + + + @info string(patchInjection) +end + +# ╔═╡ 00000000-0000-0000-0000-000000000001 +PLUTO_PROJECT_TOML_CONTENTS = """ +[deps] +CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" +NaturalSort = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" +PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" +PrettyTables = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" +Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" +Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +SumTypes = "8e1ec7a9-0e02-4297-b0fe-6433085c89f2" +Trapz = "592b5752-818d-11e9-1e9a-2b8ca4a44cd1" + +[compat] +CSV = "~0.10.12" +CairoMakie = "~0.11.5" +DataFrames = "~1.6.1" +DelimitedFiles = "~1.9.1" +NaturalSort = "~1.0.0" +PlutoUI = "~0.7.54" +PrettyTables = "~2.3.1" +SumTypes = "~0.5.1" +Trapz = "~2.0.3" +""" + +# ╔═╡ 00000000-0000-0000-0000-000000000002 +PLUTO_MANIFEST_TOML_CONTENTS = """ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.9.3" +manifest_format = "2.0" +project_hash = "11bf0cf1691f6726eda216ef000a935dc4cfa788" + +[[deps.AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.5.0" +weakdeps = ["ChainRulesCore", "Test"] + + [deps.AbstractFFTs.extensions] + AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + AbstractFFTsTestExt = "Test" + +[[deps.AbstractLattices]] +git-tree-sha1 = "222ee9e50b98f51b5d78feb93dd928880df35f06" +uuid = "398f06c4-4d28-53ec-89ca-5b2656b7603d" +version = "0.3.0" + +[[deps.AbstractPlutoDingetjes]] +deps = ["Pkg"] +git-tree-sha1 = "c278dfab760520b8bb7e9511b968bf4ba38b7acc" +uuid = "6e696c72-6542-2067-7265-42206c756150" +version = "1.2.3" + +[[deps.AbstractTrees]] +git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.4" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "0fb305e0253fd4e833d486914367a2ee2c2e78d0" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "4.0.1" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[deps.Animations]] +deps = ["Colors"] +git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d" +uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" +version = "0.4.1" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.ArrayInterface]] +deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "c5aeb516a84459e0318a02507d2261edad97eb75" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "7.7.1" + + [deps.ArrayInterface.extensions] + ArrayInterfaceBandedMatricesExt = "BandedMatrices" + ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" + ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" + ArrayInterfaceTrackerExt = "Tracker" + + [deps.ArrayInterface.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Automa]] +deps = ["PrecompileTools", "TranscodingStreams"] +git-tree-sha1 = "588e0d680ad1d7201d4c6a804dcb1cd9cba79fbb" +uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" +version = "1.0.3" + +[[deps.AxisAlgorithms]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] +git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712" +uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" +version = "1.1.0" + +[[deps.AxisArrays]] +deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] +git-tree-sha1 = "16351be62963a67ac4083f748fdb3cca58bfd52f" +uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" +version = "0.4.7" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.BenchmarkTools]] +deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "f1f03a9fa24271160ed7e73051fba3c1a759b53f" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.4.0" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+1" + +[[deps.CEnum]] +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.5.0" + +[[deps.CRC32c]] +uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc" + +[[deps.CRlibm]] +deps = ["CRlibm_jll"] +git-tree-sha1 = "32abd86e3c2025db5172aa182b982debed519834" +uuid = "96374032-68de-5a5b-8d9e-752f78720389" +version = "1.0.1" + +[[deps.CRlibm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e329286945d0cfc04456972ea732551869af1cfc" +uuid = "4e9b3aee-d8a1-5a3d-ad8b-7d824db253f0" +version = "1.0.1+0" + +[[deps.CSV]] +deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] +git-tree-sha1 = "679e69c611fff422038e9e21e270c4197d49d918" +uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +version = "0.10.12" + +[[deps.Cairo]] +deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] +git-tree-sha1 = "d0b3f8b4ad16cb0a2988c6788646a5e6a17b6b1b" +uuid = "159f3aea-2a34-519c-b102-8c37f9878175" +version = "1.0.5" + +[[deps.CairoMakie]] +deps = ["CRC32c", "Cairo", "Colors", "FFTW", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"] +git-tree-sha1 = "a80d49ed3333f5f78df8ffe76d07e88cc35e9172" +uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +version = "0.11.8" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "ad25e7d21ce10e01de973cdc68ad0f850a953c52" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.21.1" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CodecBzip2]] +deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] +git-tree-sha1 = "9b1ca1aa6ce3f71b3d1840c538a8210a043625eb" +uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" +version = "0.8.2" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.4" + +[[deps.ColorBrewer]] +deps = ["Colors", "JSON", "Test"] +git-tree-sha1 = "61c5334f33d91e570e1d0c3eb5465835242582c4" +uuid = "a2cac450-b92f-5266-8821-25eda20663c8" +version = "0.4.0" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.Combinatorics]] +git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" +uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" +version = "1.0.2" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.0" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "d2c021fbdde94f6cdaa799639adfeeaa17fd67f5" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.13.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+0" + +[[deps.ConstructionBase]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.4" +weakdeps = ["IntervalSets", "StaticArrays"] + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseStaticArraysExt = "StaticArrays" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.Crayons]] +git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" +uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +version = "4.1.1" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataFrames]] +deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] +git-tree-sha1 = "04c738083f29f86e62c8afc341f0967d8717bdb8" +uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +version = "1.6.1" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "ac67408d9ddf207de5cfa9a97e114352430f01ed" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.16" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DelaunayTriangulation]] +deps = ["DataStructures", "EnumX", "ExactPredicates", "Random", "SimpleGraphs"] +git-tree-sha1 = "d4e9dc4c6106b8d44e40cd4faf8261a678552c7c" +uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" +version = "0.8.12" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.15.1" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "7c302d7a5fec5214eb8a5a4c466dcf7a51fcf169" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.107" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[deps.EarCut_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e3290f2d49e661fbd94046d7e3726ffcb2d41053" +uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" +version = "2.2.4+0" + +[[deps.EnumX]] +git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.4" + +[[deps.ExactPredicates]] +deps = ["IntervalArithmetic", "Random", "StaticArrays"] +git-tree-sha1 = "b3f2ff58735b5f024c392fde763f29b057e4b025" +uuid = "429591f6-91af-11e9-00e2-59fbe8cec110" +version = "2.2.8" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.Extents]] +git-tree-sha1 = "2140cd04483da90b2da7f99b2add0750504fc39c" +uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" +version = "0.1.2" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "ab3f7e1819dba9434a3a5126510c8fda3a4e7000" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "6.1.1+0" + +[[deps.FFTW]] +deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] +git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "1.8.0" + +[[deps.FFTW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" +uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" +version = "3.3.10+0" + +[[deps.FileIO]] +deps = ["Pkg", "Requires", "UUIDs"] +git-tree-sha1 = "c5c28c245101bd59154f649e19b038d15901b5dc" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.16.2" + +[[deps.FilePaths]] +deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"] +git-tree-sha1 = "919d9412dbf53a2e6fe74af62a73ceed0bce0629" +uuid = "8fc22ac5-c921-52a6-82fd-178b2807b824" +version = "0.8.3" + +[[deps.FilePathsBase]] +deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] +git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa" +uuid = "48062228-2e41-5def-b9a4-89aafe57970f" +version = "0.9.21" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.9.3" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FiniteDiff]] +deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] +git-tree-sha1 = "73d1214fec245096717847c62d389a5d2ac86504" +uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" +version = "2.22.0" + + [deps.FiniteDiff.extensions] + FiniteDiffBandedMatricesExt = "BandedMatrices" + FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffStaticArraysExt = "StaticArrays" + + [deps.FiniteDiff.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.36" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FreeType]] +deps = ["CEnum", "FreeType2_jll"] +git-tree-sha1 = "907369da0f8e80728ab49c1c7e09327bf0d6d999" +uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" +version = "4.1.1" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FreeTypeAbstraction]] +deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] +git-tree-sha1 = "055626e1a35f6771fe99060e835b72ca61a52621" +uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" +version = "0.10.1" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "ec632f177c0d990e64d955ccc1b8c04c485a0950" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.6" + +[[deps.GeoInterface]] +deps = ["Extents"] +git-tree-sha1 = "d4f85701f569584f2cff7ba67a137d03f0cfb7d0" +uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" +version = "1.3.3" + +[[deps.GeometryBasics]] +deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "5694b56ccf9d15addedc35e9a4ba9c317721b788" +uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +version = "0.4.10" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.5+0" + +[[deps.Graphics]] +deps = ["Colors", "LinearAlgebra", "NaNMath"] +git-tree-sha1 = "d61890399bc535850c4bf08e4e0d3a7ad0f21cbd" +uuid = "a2bd30eb-e257-5431-a919-1863eab51364" +version = "1.1.2" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.GridLayoutBase]] +deps = ["GeometryBasics", "InteractiveUtils", "Observables"] +git-tree-sha1 = "af13a277efd8a6e716d79ef635d5342ccb75be61" +uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" +version = "0.10.0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[deps.Hyperscript]] +deps = ["Test"] +git-tree-sha1 = "179267cfa5e712760cd43dcae385d7ea90cc25a4" +uuid = "47d2ed2b-36de-50cf-bf87-49c2cf4b8b91" +version = "0.0.5" + +[[deps.HypertextLiteral]] +deps = ["Tricks"] +git-tree-sha1 = "7134810b1afce04bbc1045ca1985fbe81ce17653" +uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" +version = "0.9.5" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "8b72179abc660bfab5e28472e019392b97d0985c" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.4" + +[[deps.ImageAxes]] +deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"] +git-tree-sha1 = "2e4520d67b0cef90865b3ef727594d2a58e0e1f8" +uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" +version = "0.6.11" + +[[deps.ImageBase]] +deps = ["ImageCore", "Reexport"] +git-tree-sha1 = "eb49b82c172811fd2c86759fa0553a2221feb909" +uuid = "c817782e-172a-44cc-b673-b171935fbb9e" +version = "0.1.7" + +[[deps.ImageCore]] +deps = ["ColorVectorSpace", "Colors", "FixedPointNumbers", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "PrecompileTools", "Reexport"] +git-tree-sha1 = "b2a7eaa169c13f5bcae8131a83bc30eff8f71be0" +uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" +version = "0.10.2" + +[[deps.ImageIO]] +deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] +git-tree-sha1 = "bca20b2f5d00c4fbc192c3212da8fa79f4688009" +uuid = "82e4d734-157c-48bb-816b-45c225c6df19" +version = "0.6.7" + +[[deps.ImageMetadata]] +deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"] +git-tree-sha1 = "355e2b974f2e3212a75dfb60519de21361ad3cb7" +uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" +version = "0.9.9" + +[[deps.Imath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "3d09a9f60edf77f8a4d99f9e015e8fbf9989605d" +uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" +version = "3.1.7+0" + +[[deps.IndirectArrays]] +git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" +uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" +version = "1.0.0" + +[[deps.Inflate]] +git-tree-sha1 = "ea8031dea4aff6bd41f1df8f2fdfb25b33626381" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.4" + +[[deps.InlineStrings]] +deps = ["Parsers"] +git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" +uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" +version = "1.4.0" + +[[deps.IntegerMathUtils]] +git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" +uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" +version = "0.1.2" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5fdf2fe6724d8caabf43b557b84ce53f3b7e2f6b" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2024.0.2+0" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.Interpolations]] +deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "88a101217d7cb38a7b481ccd50d21876e1d1b0e0" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.15.1" + + [deps.Interpolations.extensions] + InterpolationsUnitfulExt = "Unitful" + + [deps.Interpolations.weakdeps] + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.IntervalArithmetic]] +deps = ["CRlibm", "RoundingEmulator"] +git-tree-sha1 = "c274ec586ea58eb7b42afd0c5d67e50ff50229b5" +uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" +version = "0.22.5" +weakdeps = ["DiffRules", "RecipesBase"] + + [deps.IntervalArithmetic.extensions] + IntervalArithmeticDiffRulesExt = "DiffRules" + IntervalArithmeticRecipesBaseExt = "RecipesBase" + +[[deps.IntervalSets]] +git-tree-sha1 = "dba9ddf07f77f60450fe5d2e2beb9854d9a49bd0" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.7.10" +weakdeps = ["Random", "RecipesBase", "Statistics"] + + [deps.IntervalSets.extensions] + IntervalSetsRandomExt = "Random" + IntervalSetsRecipesBaseExt = "RecipesBase" + IntervalSetsStatisticsExt = "Statistics" + +[[deps.InvertedIndices]] +git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" +uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" +version = "1.3.0" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.Isoband]] +deps = ["isoband_jll"] +git-tree-sha1 = "f9b6d97355599074dc867318950adaa6f9946137" +uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4" +version = "0.1.1" + +[[deps.IterTools]] +git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.10.0" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo]] +deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] +git-tree-sha1 = "fa6d0bcff8583bac20f1ffa708c3913ca605c611" +uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" +version = "0.1.5" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60b1194df0a3298f460063de985eae7b01bc011a" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.1+0" + +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] +git-tree-sha1 = "fee018a29b60733876eb557804b5b109dd3dd8a7" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.8" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d986ce2d884d49126836ea94ed5bfb0f12679713" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.7+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[deps.LazyModules]] +git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" +uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e" +version = "0.3.1" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.3" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "7.84.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.10.2+0" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LightXML]] +deps = ["Libdl", "XML2_jll"] +git-tree-sha1 = "3a994404d3f6709610701c7dabfc03fed87a81f8" +uuid = "9c8b4983-aa76-5018-a973-4c85ecc9e179" +version = "0.9.1" + +[[deps.LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] +git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.2.0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.LinearAlgebraX]] +deps = ["LinearAlgebra", "Mods", "Primes", "SimplePolynomials"] +git-tree-sha1 = "d76cec8007ec123c2b681269d40f94b053473fcf" +uuid = "9b3f67b0-2d00-526e-9884-9e4938f8fb88" +version = "0.2.7" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.27" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.MIMEs]] +git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" +uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" +version = "0.1.4" + +[[deps.MKL_jll]] +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2024.0.0+0" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.13" + +[[deps.Makie]] +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Formatting", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalArithmetic", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "StableHashTraits", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun"] +git-tree-sha1 = "40c5dfbb99c91835171536cd571fe6f1ba18ff97" +uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +version = "0.20.7" + +[[deps.MakieCore]] +deps = ["Observables", "REPL"] +git-tree-sha1 = "248b7a4be0f92b497f7a331aed02c1e9a878f46b" +uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" +version = "0.7.3" + +[[deps.MappedArrays]] +git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e" +uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" +version = "0.4.2" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MathOptInterface]] +deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] +git-tree-sha1 = "569a003f93d7c64068d3afaab908d21f67a22cd5" +uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" +version = "1.25.3" + +[[deps.MathTeXEngine]] +deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "UnicodeFun"] +git-tree-sha1 = "96ca8a313eb6437db5ffe946c457a401bbb8ce1d" +uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" +version = "0.5.7" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+0" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.Mods]] +git-tree-sha1 = "924f962b524a71eef7a21dae1e6853817f9b658f" +uuid = "7475f97c-0381-53b1-977b-4c60186c8d62" +version = "2.2.4" + +[[deps.MosaicViews]] +deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] +git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe" +uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389" +version = "0.3.4" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2022.10.11" + +[[deps.Multisets]] +git-tree-sha1 = "8d852646862c96e226367ad10c8af56099b4047e" +uuid = "3b2b4ff1-bcff-5658-a3ee-dbcf1ce5ac09" +version = "0.4.4" + +[[deps.MutableArithmetics]] +deps = ["LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "302fd161eb1c439e4115b51ae456da4e9984f130" +uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" +version = "1.4.1" + +[[deps.NLSolversBase]] +deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] +git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.8.3" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NaturalSort]] +git-tree-sha1 = "eda490d06b9f7c00752ee81cfa451efe55521e21" +uuid = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" +version = "1.0.0" + +[[deps.Netpbm]] +deps = ["FileIO", "ImageCore", "ImageMetadata"] +git-tree-sha1 = "d92b107dbb887293622df7697a2223f9f8176fcd" +uuid = "f09324ee-3d7c-5217-9330-fc30815ba969" +version = "1.1.1" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.Observables]] +git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225" +uuid = "510215fc-4207-5dde-b226-833fc4488ee2" +version = "0.5.5" + +[[deps.OffsetArrays]] +git-tree-sha1 = "6a731f2b5c03157418a20c12195eb4b74c8f8621" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.13.0" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.21+4" + +[[deps.OpenEXR]] +deps = ["Colors", "FileIO", "OpenEXR_jll"] +git-tree-sha1 = "327f53360fdb54df7ecd01e96ef1983536d1e633" +uuid = "52e1d378-f018-4a11-a4be-720524705ac7" +version = "0.3.2" + +[[deps.OpenEXR_jll]] +deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "a4ca623df1ae99d09bc9868b008262d0c0ac1e4f" +uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" +version = "3.1.4+0" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+0" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.13+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Optim]] +deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "MathOptInterface", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] +git-tree-sha1 = "d024bfb56144d947d4fafcd9cb5cafbe3410b133" +uuid = "429524aa-4258-5aef-a3af-852621145aeb" +version = "1.9.2" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+0" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.PNGFiles]] +deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] +git-tree-sha1 = "67186a2bc9a90f9f85ff3cc8277868961fb57cbd" +uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" +version = "0.4.3" + +[[deps.Packing]] +deps = ["GeometryBasics"] +git-tree-sha1 = "ec3edfe723df33528e085e632414499f26650501" +uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" +version = "0.5.0" + +[[deps.PaddedViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "0fac6313486baae819364c52b4f483450a9d793f" +uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" +version = "0.5.12" + +[[deps.Pango_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4745216e94f71cb768d58330b059c9b76f32cb66" +uuid = "36c8627f-9965-5494-a995-c6b170f724f3" +version = "1.50.14+0" + +[[deps.Parameters]] +deps = ["OrderedCollections", "UnPack"] +git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" +uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" +version = "0.12.3" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.Permutations]] +deps = ["Combinatorics", "LinearAlgebra", "Random"] +git-tree-sha1 = "eb3f9df2457819bf0a9019bd93cc451697a0751e" +uuid = "2ae35dd2-176d-5d53-8349-f30d82d94d4f" +version = "0.4.20" + +[[deps.PikaParser]] +deps = ["DocStringExtensions"] +git-tree-sha1 = "d6ff87de27ff3082131f31a714d25ab6d0a88abf" +uuid = "3bbf5609-3e7b-44cd-8549-7c69f321e792" +version = "0.6.1" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.9.2" + +[[deps.PkgVersion]] +deps = ["Pkg"] +git-tree-sha1 = "f9501cc0430a26bc3d156ae1b5b0c1b47af4d6da" +uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" +version = "0.3.3" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "862942baf5663da528f66d24996eb6da85218e76" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.0" + +[[deps.PlutoUI]] +deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "FixedPointNumbers", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "JSON", "Logging", "MIMEs", "Markdown", "Random", "Reexport", "URIs", "UUIDs"] +git-tree-sha1 = "a6783c887ca59ce7e97ed630b74ca1f10aefb74d" +uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8" +version = "0.7.57" + +[[deps.PolygonOps]] +git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" +uuid = "647866c9-e3ac-4575-94e7-e3d426903924" +version = "0.1.2" + +[[deps.Polynomials]] +deps = ["LinearAlgebra", "RecipesBase", "Setfield", "SparseArrays"] +git-tree-sha1 = "a9c7a523d5ed375be3983db190f6a5874ae9286d" +uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" +version = "4.0.6" +weakdeps = ["ChainRulesCore", "FFTW", "MakieCore", "MutableArithmetics"] + + [deps.Polynomials.extensions] + PolynomialsChainRulesCoreExt = "ChainRulesCore" + PolynomialsFFTWExt = "FFTW" + PolynomialsMakieCoreExt = "MakieCore" + PolynomialsMutableArithmeticsExt = "MutableArithmetics" + +[[deps.PooledArrays]] +deps = ["DataAPI", "Future"] +git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" +uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" +version = "1.4.3" + +[[deps.PositiveFactorizations]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" +uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" +version = "0.2.4" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.PrettyTables]] +deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660" +uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" +version = "2.3.1" + +[[deps.Primes]] +deps = ["IntegerMathUtils"] +git-tree-sha1 = "1d05623b5952aed1307bf8b43bec8b8d1ef94b6e" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.5.5" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Profile]] +deps = ["Printf"] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" + +[[deps.ProgressMeter]] +deps = ["Distributed", "Printf"] +git-tree-sha1 = "00099623ffee15972c16111bcf84c58a0051257c" +uuid = "92933f4c-e287-5a05-a399-4b506db050ca" +version = "1.9.0" + +[[deps.QOI]] +deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] +git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" +uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" +version = "1.0.0" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.4" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA", "Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.RangeArrays]] +git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" +uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" +version = "0.3.2" + +[[deps.Ratios]] +deps = ["Requires"] +git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" +uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" +version = "0.4.5" +weakdeps = ["FixedPointNumbers"] + + [deps.Ratios.extensions] + RatiosFixedPointNumbersExt = "FixedPointNumbers" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.RingLists]] +deps = ["Random"] +git-tree-sha1 = "f39da63aa6d2d88e0c1bd20ed6a3ff9ea7171ada" +uuid = "286e9d63-9694-5540-9e3c-4e6708fa07b2" +version = "0.2.8" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + +[[deps.RoundingEmulator]] +git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" +uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" +version = "0.2.1" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.SentinelArrays]] +deps = ["Dates", "Random"] +git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" +uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" +version = "1.4.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + +[[deps.ShaderAbstractions]] +deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "79123bc60c5507f035e6d1d9e563bb2971954ec8" +uuid = "65257c39-d410-5151-9873-9b3e5be5013e" +version = "0.4.1" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SignedDistanceFields]] +deps = ["Random", "Statistics", "Test"] +git-tree-sha1 = "d263a08ec505853a5ff1c1ebde2070419e3f28e9" +uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" +version = "0.4.0" + +[[deps.SimpleGraphs]] +deps = ["AbstractLattices", "Combinatorics", "DataStructures", "IterTools", "LightXML", "LinearAlgebra", "LinearAlgebraX", "Optim", "Primes", "Random", "RingLists", "SimplePartitions", "SimplePolynomials", "SimpleRandom", "SparseArrays", "Statistics"] +git-tree-sha1 = "f65caa24a622f985cc341de81d3f9744435d0d0f" +uuid = "55797a34-41de-5266-9ec1-32ac4eb504d3" +version = "0.8.6" + +[[deps.SimplePartitions]] +deps = ["AbstractLattices", "DataStructures", "Permutations"] +git-tree-sha1 = "e9330391d04241eafdc358713b48396619c83bcb" +uuid = "ec83eff0-a5b5-5643-ae32-5cbf6eedec9d" +version = "0.3.1" + +[[deps.SimplePolynomials]] +deps = ["Mods", "Multisets", "Polynomials", "Primes"] +git-tree-sha1 = "7063828369cafa93f3187b3d0159f05582011405" +uuid = "cc47b68c-3164-5771-a705-2bc0097375a0" +version = "0.2.17" + +[[deps.SimpleRandom]] +deps = ["Distributions", "LinearAlgebra", "Random"] +git-tree-sha1 = "3a6fb395e37afab81aeea85bae48a4db5cd7244a" +uuid = "a6525b86-64cd-54fa-8f65-62fc48bdc0e8" +version = "0.3.1" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.Sixel]] +deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"] +git-tree-sha1 = "2da10356e31327c7096832eb9cd86307a50b1eb6" +uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" +version = "0.1.3" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.StableHashTraits]] +deps = ["Compat", "PikaParser", "SHA", "Tables", "TupleTools"] +git-tree-sha1 = "10dc702932fe05a0e09b8e5955f00794ea1e8b12" +uuid = "c5dd0088-6c3f-4803-b00e-f31a60c170fa" +version = "1.1.8" + +[[deps.StackViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" +uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" +version = "0.1.1" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "7b0e9c14c624e435076d19aea1e5cbdec2b9ca37" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.9.2" +weakdeps = ["ChainRulesCore", "Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.2" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.9.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "cef0472124fab0695b58ca35a77c6fb942fdab8a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.1" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.StringManipulation]] +deps = ["PrecompileTools"] +git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" +uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" +version = "0.3.4" + +[[deps.StructArrays]] +deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] +git-tree-sha1 = "1b0b1205a56dc288b71b1961d48e351520702e24" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.17" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "5.10.1+6" + +[[deps.SumTypes]] +deps = ["MacroTools", "PrecompileTools"] +git-tree-sha1 = "73dbf987e33aeae99a488348780693b758367dd6" +uuid = "8e1ec7a9-0e02-4297-b0fe-6433085c89f2" +version = "0.5.6" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.11.1" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.TiffImages]] +deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] +git-tree-sha1 = "34cc045dd0aaa59b8bbe86c644679bc57f1d5bd0" +uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" +version = "0.6.8" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.3" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.Trapz]] +git-tree-sha1 = "79eb0ed763084a3e7de81fe1838379ac6a23b6a0" +uuid = "592b5752-818d-11e9-1e9a-2b8ca4a44cd1" +version = "2.0.3" + +[[deps.Tricks]] +git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f" +uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" +version = "0.1.8" + +[[deps.TriplotBase]] +git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" +uuid = "981d1d27-644d-49a2-9326-4793e63143c3" +version = "0.1.0" + +[[deps.TupleTools]] +git-tree-sha1 = "41d61b1c545b06279871ef1a4b5fcb2cac2191cd" +uuid = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6" +version = "1.5.0" + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.UnPack]] +git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" +uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" +version = "1.0.2" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.WeakRefStrings]] +deps = ["DataAPI", "InlineStrings", "Parsers"] +git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" +uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" +version = "1.4.2" + +[[deps.WoodburyMatrices]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "1.0.0" + +[[deps.WorkerUtilities]] +git-tree-sha1 = "cd1659ba0d57b71a464a29e64dbc67cfe83d54e7" +uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" +version = "1.6.1" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.12.2+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+0" + +[[deps.isoband_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" +uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4" +version = "0.2.3+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "873b4f805771d3e4bafe63af759a26ea8ca84d14" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.42+0" + +[[deps.libsixel_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] +git-tree-sha1 = "d4f63314c8aa1e48cd22aa0c17ed76cd1ae48c3c" +uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" +version = "1.10.3+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.48.0+0" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+0" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" +""" + +# ╔═╡ Cell order: +# ╟─e7ca5c7e-4fe4-40b7-b31e-7e30faeae03a +# ╟─0e22936e-bf49-11ee-3ce1-d1dfb33e1dfa +# ╟─6d7b5e7d-a6e6-4dfa-85ee-30529c73afed +# ╟─7a603476-c251-43c6-b354-5652ff9c8fa7 +# ╟─0a0a672e-5645-4a07-9f1a-c3dfb6c03c01 +# ╠═7451a2ca-e2d9-42e7-a1ed-405d47c3e70e +# ╟─30b3340e-31cd-4471-805f-72fafe3225ee +# ╟─4cc41098-40f5-4cdf-bcdf-ed40a72d01f7 +# ╟─c63b6b4b-40d1-4e4f-8e9c-a5aea5375d14 +# ╟─3d616562-a598-429f-9ceb-22b07346a749 +# ╟─c98b4ec6-3c3f-4d87-bc91-fdc4063e61dc +# ╟─232fa660-d767-47fe-b327-2968e59d3533 +# ╟─c1327449-fd54-4a9a-88e3-5224d6d6f320 +# ╟─5266f4b8-a0f7-401d-adae-68954b479710 +# ╟─659e5a35-e78a-4b27-ba3c-29409f00ea5d +# ╟─935a3a0e-53c8-450f-a45c-009fb518b27e +# ╟─1ab5892e-fc6a-4458-846e-b50443d654d3 +# ╟─d2b09b74-b7fb-4c4d-b327-78c84035b22d +# ╟─c651c6b1-fab1-4c9d-8899-a3c681264c00 +# ╟─2653fbf8-6cca-4c0d-8217-f91c2d61566e +# ╟─c963b6a6-ce81-4071-aca4-82ea616acb99 +# ╟─9ad85222-9cb8-4df1-a2d5-a212ddec55f9 +# ╟─0594dbbc-d9db-4f4c-b615-c6032c746af4 +# ╟─34c31668-6b32-43e3-b4e5-74132d214020 +# ╠═bc9fa419-fb64-48aa-8148-e11fc91b46f5 +# ╟─6060bad5-ed88-4429-97fa-45a9d132fe70 +# ╟─58940ce6-9854-447f-bbc2-988de21c748a +# ╟─9c9a1525-8129-4b7b-8969-6d34b1976f25 +# ╟─6a3c3cc4-d405-4718-b0ea-dbeb3a242a6b +# ╟─d56de3ff-e1aa-4508-81c8-e0d0b9d665cd +# ╟─89398583-a1c2-4080-813b-16894a7825a5 +# ╟─c95958b2-78d1-41c1-b77a-f464e5bb8e6a +# ╟─8d69545d-3ff8-452f-b058-1d3a8430a5fc +# ╟─1a8a8225-fba6-447e-9c4e-00237d8c8adc +# ╟─a024486d-d7d1-4620-bb28-5ffc4963cb8c +# ╟─a6d683cf-81b1-4462-9efd-d79680ac77d2 +# ╟─0dff8a11-a931-4fb4-b3cb-1950a5eb78e9 +# ╟─23924b14-2db2-476d-bca3-900bfa1f8606 +# ╟─385aa2a9-22d2-4978-ac26-c27f1896fe25 +# ╟─0dc1811d-655f-4440-a0c0-d05675134656 +# ╟─d6f99f5c-064a-463b-82a8-f150f291f98f +# ╟─bc299a88-c402-4f5d-899d-80b159360137 +# ╟─7a45fa84-5b18-418f-8e8c-118e4aad1717 +# ╠═c12e88f7-2eb3-4368-9df6-613768a8d17b +# ╟─0e20758d-89ea-475d-b729-d72179e8f8a3 +# ╟─ed961c9c-19ca-4b1c-b3a8-62935c3a1a83 +# ╟─92a70e7b-f034-43ae-94e5-b153efc769a0 +# ╟─3540c91d-c1e5-4bec-b7cb-4c03d32353f9 +# ╟─00000000-0000-0000-0000-000000000001 +# ╟─00000000-0000-0000-0000-000000000002 diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-3d/geometry-3d.stl b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-3d/geometry-3d.stl new file mode 100644 index 000000000..c88f2457c --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-3d/geometry-3d.stl @@ -0,0 +1,10054 @@ +solid "Fluid" + facet normal -0.857113923559826 0.515126898967508 -2.28530962269993E-14 + outer loop + vertex 700.460971767701 1764.07022785912 1320 + vertex 697.211468181837 1758.6634149482 1315 + vertex 108.065037955067 778.389215765321 1320 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.52128561499446E-14 + outer loop + vertex 108.065037955067 778.389215765321 1320 + vertex 697.211468181837 1758.6634149482 1315 + vertex 110.640672449904 782.67478538312 1315 + endloop + endfacet + facet normal -0.857113923559839 0.515126898967487 0 + outer loop + vertex 108.065037955067 778.389215765321 1320 + vertex 110.640672449904 782.67478538312 1315 + vertex 108.065037955067 778.389215765321 570 + endloop + endfacet + facet normal -0.857113923559839 0.515126898967487 0 + outer loop + vertex 108.065037955067 778.389215765321 570 + vertex 110.640672449904 782.67478538312 1315 + vertex 110.640672449904 782.67478538312 575 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -2.52128561499441E-14 + outer loop + vertex 108.065037955067 778.389215765321 570 + vertex 110.640672449904 782.67478538312 575 + vertex 697.211468181837 1758.6634149482 575 + endloop + endfacet + facet normal -0.857113923559835 0.515126898967493 0 + outer loop + vertex 700.460971767701 1764.07022785912 1320 + vertex 700.460971767701 1764.07022785912 570 + vertex 697.211468181837 1758.6634149482 1315 + endloop + endfacet + facet normal -0.857113923559835 0.515126898967493 0 + outer loop + vertex 697.211468181837 1758.6634149482 1315 + vertex 700.460971767701 1764.07022785912 570 + vertex 697.211468181837 1758.6634149482 575 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.28530962269988E-14 + outer loop + vertex 700.460971767701 1764.07022785912 570 + vertex 108.065037955067 778.389215765321 570 + vertex 697.211468181837 1758.6634149482 575 + endloop + endfacet + facet normal 0.515126898967509 0.857113923559825 -1.87881627697722E-15 + outer loop + vertex 41.2101519174009 818.569113884786 1320 + vertex 108.065037955067 778.389215765321 1320 + vertex 41.2101519174 818.569113884785 570.000000000001 + endloop + endfacet + facet normal 0.515126898967493 0.857113923559835 0 + outer loop + vertex 41.2101519174 818.569113884785 570.000000000001 + vertex 108.065037955067 778.389215765321 1320 + vertex 108.065037955067 778.389215765321 570 + endloop + endfacet + facet normal -2.75477873879219E-15 9.42615289154866E-16 -1 + outer loop + vertex 41.2101519174009 818.569113884786 1320 + vertex 602.698471791984 1752.823290565 1320 + vertex 108.065037955067 778.389215765321 1320 + endloop + endfacet + facet normal 4.87993647519447E-15 -2.93284996839734E-15 -1 + outer loop + vertex 108.065037955067 778.389215765321 1320 + vertex 602.698471791984 1752.823290565 1320 + vertex 700.460971767701 1764.07022785912 1320 + endloop + endfacet + facet normal 9.16950983398021E-15 -4.08486805460773E-15 1 + outer loop + vertex 41.2101519174 818.569113884785 570.000000000001 + vertex 108.065037955067 778.389215765321 570 + vertex 602.698471791984 1752.823290565 569.999999999999 + endloop + endfacet + facet normal -6.0999205939931E-15 3.66606246049669E-15 1 + outer loop + vertex 602.698471791984 1752.823290565 569.999999999999 + vertex 108.065037955067 778.389215765321 570 + vertex 700.460971767701 1764.07022785912 570 + endloop + endfacet + facet normal 0.114289644913824 -0.993447470712706 1.40292461018273E-15 + outer loop + vertex 602.698471791984 1752.823290565 569.999999999999 + vertex 700.460971767701 1764.07022785912 570 + vertex 602.698471791984 1752.823290565 1320 + endloop + endfacet + facet normal 0.114289644913814 -0.993447470712707 0 + outer loop + vertex 602.698471791984 1752.823290565 1320 + vertex 700.460971767701 1764.07022785912 570 + vertex 700.460971767701 1764.07022785912 1320 + endloop + endfacet + facet normal -0.529998940003181 0.847998304005087 0 + outer loop + vertex 720 1948 2000 + vertex 2000 2748 2000 + vertex 720 1948 0 + endloop + endfacet + facet normal -0.529998940003181 0.847998304005087 0 + outer loop + vertex 720 1948 0 + vertex 2000 2748 2000 + vertex 2000 2748 0 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 3.50432441076889E-16 + outer loop + vertex 720 1948 2000 + vertex 602.698471791984 1752.823290565 1320 + vertex 0 750 2000 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -2.24680860353175E-16 + outer loop + vertex 0 750 2000 + vertex 602.698471791984 1752.823290565 1320 + vertex 41.2101519174009 818.569113884786 1320 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 0 + outer loop + vertex 0 750 2000 + vertex 41.2101519174009 818.569113884786 1320 + vertex 0 750 0 + endloop + endfacet + facet normal -0.857113923559827 0.515126898967506 2.52980506913292E-16 + outer loop + vertex 0 750 0 + vertex 41.2101519174009 818.569113884786 1320 + vertex 41.2101519174 818.569113884785 570.000000000001 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -1.11683468596607E-16 + outer loop + vertex 0 750 0 + vertex 41.2101519174 818.569113884785 570.000000000001 + vertex 602.698471791984 1752.823290565 569.999999999999 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 0 + outer loop + vertex 720 1948 2000 + vertex 720 1948 0 + vertex 602.698471791984 1752.823290565 1320 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -2.55027598363085E-16 + outer loop + vertex 602.698471791984 1752.823290565 1320 + vertex 720 1948 0 + vertex 602.698471791984 1752.823290565 569.999999999999 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -1.04514938566792E-16 + outer loop + vertex 720 1948 0 + vertex 0 750 0 + vertex 602.698471791984 1752.823290565 569.999999999999 + endloop + endfacet + facet normal 0.961261695938318 0 -0.275637355817003 + outer loop + vertex 4000 4050 8.88178419700125E-13 + vertex 3276.25464634476 4050 -2524 + vertex 4000 5050 8.88178419700125E-13 + endloop + endfacet + facet normal 0.961261695938318 0 -0.275637355817003 + outer loop + vertex 4000 5050 8.88178419700125E-13 + vertex 3276.25464634476 4050 -2524 + vertex 3276.25464634476 5050 -2524 + endloop + endfacet + facet normal -0.275637355817003 0 -0.961261695938318 + outer loop + vertex 3276.25464634476 4050 -2524 + vertex 2507.2452895941 4050 -2303.4901153464 + vertex 3276.25464634476 5050 -2524 + endloop + endfacet + facet normal -0.275637355817003 0 -0.961261695938318 + outer loop + vertex 3276.25464634476 5050 -2524 + vertex 2507.2452895941 4050 -2303.4901153464 + vertex 2507.2452895941 5050 -2303.4901153464 + endloop + endfacet + facet normal -0.961261695938319 0 0.275637355817 + outer loop + vertex 2507.2452895941 4050 -2303.4901153464 + vertex 2520.84944271526 4050 -2256.04679525547 + vertex 2507.2452895941 5050 -2303.4901153464 + endloop + endfacet + facet normal -0.961261695938319 -1.20820193314108E-16 0.275637355816998 + outer loop + vertex 2507.2452895941 5050 -2303.4901153464 + vertex 2520.84944271526 4050 -2256.04679525547 + vertex 2520.84944271526 5050 -2256.04679525547 + endloop + endfacet + facet normal -0.974370064785235 9.98983359785056E-17 -0.224951054343865 + outer loop + vertex 2520.84944271526 4050 -2256.04679525547 + vertex 2000 4050 8.88178419700125E-13 + vertex 2520.84944271526 5050 -2256.04679525547 + endloop + endfacet + facet normal -0.974370064785235 0 -0.224951054343865 + outer loop + vertex 2520.84944271526 5050 -2256.04679525547 + vertex 2000 4050 8.88178419700125E-13 + vertex 2000 5050 8.88178419700125E-13 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2507.2452895941 4050 -2303.4901153464 + vertex 3276.25464634476 4050 -2524 + vertex 2520.84944271526 4050 -2256.04679525547 + endloop + endfacet + facet normal -1.13297798693837E-16 -1 -3.19405572233001E-16 + outer loop + vertex 2520.84944271526 4050 -2256.04679525547 + vertex 3276.25464634476 4050 -2524 + vertex 4000 4050 8.88178419700125E-13 + endloop + endfacet + facet normal 0 -1 -3.93687941920349E-16 + outer loop + vertex 2520.84944271526 4050 -2256.04679525547 + vertex 4000 4050 8.88178419700125E-13 + vertex 2000 4050 8.88178419700125E-13 + endloop + endfacet + facet normal 0 6.82164684869528E-16 -1 + outer loop + vertex 2000 4050 8.88178419700125E-13 + vertex 4000 4050 8.88178419700125E-13 + vertex 2000 2748 0 + endloop + endfacet + facet normal 2.68875830691038E-16 2.69144975666705E-16 -1 + outer loop + vertex 2000 2748 0 + vertex 4000 4050 8.88178419700125E-13 + vertex 4000 750.000000000002 0 + endloop + endfacet + facet normal -6.28177909530359E-17 -6.28806716246606E-17 -1 + outer loop + vertex 2000 2748 0 + vertex 4000 750.000000000002 0 + vertex 2603 380 1.11022302462516E-13 + endloop + endfacet + facet normal -1.12590306051288E-16 1.2504420294901E-16 -1 + outer loop + vertex 2603 380 1.11022302462516E-13 + vertex 4000 750.000000000002 0 + vertex 3167.0406138781 0 0 + endloop + endfacet + facet normal 5.22048104213007E-17 3.69652462578779E-16 -1 + outer loop + vertex 2603 380 1.11022302462516E-13 + vertex 3167.0406138781 0 0 + vertex 2813 50.0000000000225 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2813 50.0000000000225 0 + vertex 3167.0406138781 0 0 + vertex 2813 2.22044604925031E-11 0 + endloop + endfacet + facet normal 0 3.36431219583404E-16 -1 + outer loop + vertex 2813 50.0000000000225 0 + vertex 2807 50.0000000000225 0 + vertex 2603 380 1.11022302462516E-13 + endloop + endfacet + facet normal 6.08174760133836E-17 3.74027477482589E-16 -1 + outer loop + vertex 2603 380 1.11022302462516E-13 + vertex 2807 50.0000000000225 0 + vertex 2622.5 80.0000000000001 0 + endloop + endfacet + facet normal 0 3.70074341541719E-16 -1 + outer loop + vertex 2603 380 1.11022302462516E-13 + vertex 2622.5 80.0000000000001 0 + vertex 2603 80.0000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2807 2.22044604925031E-11 0 + vertex 2622.5 8.00000000000001 0 + vertex 2807 50.0000000000225 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2807 50.0000000000225 0 + vertex 2622.5 8.00000000000001 0 + vertex 2622.5 72.0000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2807 50.0000000000225 0 + vertex 2622.5 72.0000000000001 0 + vertex 2622.5 80.0000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2807 2.22044604925031E-11 0 + vertex 2622.5 0 0 + vertex 2622.5 8.00000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2622.5 8.00000000000001 0 + vertex 2583.5 8.00000000000001 0 + vertex 2622.5 72.0000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2622.5 72.0000000000001 0 + vertex 2583.5 8.00000000000001 0 + vertex 2583.5 72.0000000000001 0 + endloop + endfacet + facet normal 0 -4.68844182696434E-17 -1 + outer loop + vertex 2603 380 1.11022302462516E-13 + vertex 2597 380 1.11022302462516E-13 + vertex 2000 2748 0 + endloop + endfacet + facet normal 0 -4.68844182696434E-17 -1 + outer loop + vertex 2000 2748 0 + vertex 2597 380 1.11022302462516E-13 + vertex 1803 380 1.11022302462516E-13 + endloop + endfacet + facet normal 3.09099344235525E-17 -4.94558950776839E-17 -1 + outer loop + vertex 2000 2748 0 + vertex 1803 380 1.11022302462516E-13 + vertex 720 1948 0 + endloop + endfacet + facet normal 0 -7.08050398357875E-17 -1 + outer loop + vertex 720 1948 0 + vertex 1803 380 1.11022302462516E-13 + vertex 1797 380 1.11022302462516E-13 + endloop + endfacet + facet normal 0 -7.0805039835788E-17 -1 + outer loop + vertex 720 1948 0 + vertex 1797 380 1.11022302462516E-13 + vertex 603 380 1.11022302462516E-13 + endloop + endfacet + facet normal 0 3.36431219583388E-16 -1 + outer loop + vertex 603 380 1.11022302462516E-13 + vertex 1797 380 1.11022302462516E-13 + vertex 1207 50.0000000000074 0 + endloop + endfacet + facet normal -3.033613694897E-30 3.36431219583383E-16 -1 + outer loop + vertex 603 380 1.11022302462516E-13 + vertex 1207 50.0000000000074 0 + vertex 813 50.0000000000038 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 813 50.0000000000038 0 + vertex 1207 50.0000000000074 0 + vertex 813 3.5527136788005E-12 0 + endloop + endfacet + facet normal 0 3.70074341541719E-16 -1 + outer loop + vertex 2597 80.0000000000001 0 + vertex 2577.5 80.0000000000001 0 + vertex 2597 380 1.11022302462516E-13 + endloop + endfacet + facet normal -6.83004013918468E-17 3.74513867632189E-16 -1 + outer loop + vertex 2597 380 1.11022302462516E-13 + vertex 2577.5 80.0000000000001 0 + vertex 2413 50.0000000000185 0 + endloop + endfacet + facet normal 0 3.36431219583401E-16 -1 + outer loop + vertex 2597 380 1.11022302462516E-13 + vertex 2413 50.0000000000185 0 + vertex 2407 50.0000000000185 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2577.5 80.0000000000001 0 + vertex 2577.5 0 0 + vertex 2413 50.0000000000185 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2413 50.0000000000185 0 + vertex 2577.5 0 0 + vertex 2413 1.86517468137026E-11 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2407 1.86517468137026E-11 0 + vertex 2013 1.50990331349021E-11 0 + vertex 2407 50.0000000000185 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2407 50.0000000000185 0 + vertex 2013 1.50990331349021E-11 0 + vertex 2013 50.0000000000149 0 + endloop + endfacet + facet normal -3.03361369489717E-30 3.36431219583401E-16 -1 + outer loop + vertex 2407 50.0000000000185 0 + vertex 2013 50.0000000000149 0 + vertex 2597 380 1.11022302462516E-13 + endloop + endfacet + facet normal 0 3.36431219583396E-16 -1 + outer loop + vertex 2597 380 1.11022302462516E-13 + vertex 2013 50.0000000000149 0 + vertex 1803 380 1.11022302462516E-13 + endloop + endfacet + facet normal 0 3.36431219583396E-16 -1 + outer loop + vertex 2013 50.0000000000149 0 + vertex 2007 50.0000000000149 0 + vertex 1803 380 1.11022302462516E-13 + endloop + endfacet + facet normal 6.08174760133991E-17 3.7402747748259E-16 -1 + outer loop + vertex 1803 380 1.11022302462516E-13 + vertex 2007 50.0000000000149 0 + vertex 1822.5 80.0000000000001 0 + endloop + endfacet + facet normal 0 3.70074341541719E-16 -1 + outer loop + vertex 1803 380 1.11022302462516E-13 + vertex 1822.5 80.0000000000001 0 + vertex 1803 80.0000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2007 1.50990331349021E-11 0 + vertex 1822.5 8.00000000000001 0 + vertex 2007 50.0000000000149 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2007 50.0000000000149 0 + vertex 1822.5 8.00000000000001 0 + vertex 1822.5 72.0000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2007 50.0000000000149 0 + vertex 1822.5 72.0000000000001 0 + vertex 1822.5 80.0000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2007 1.50990331349021E-11 0 + vertex 1822.5 0 0 + vertex 1822.5 8.00000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1822.5 8.00000000000001 0 + vertex 1783.5 8.00000000000001 0 + vertex 1822.5 72.0000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1822.5 72.0000000000001 0 + vertex 1783.5 8.00000000000001 0 + vertex 1783.5 72.0000000000001 0 + endloop + endfacet + facet normal 0 3.70074341541719E-16 -1 + outer loop + vertex 1797 80.0000000000001 0 + vertex 1777.5 80.0000000000001 0 + vertex 1797 380 1.11022302462516E-13 + endloop + endfacet + facet normal -6.83004013918631E-17 3.7451386763219E-16 -1 + outer loop + vertex 1797 380 1.11022302462516E-13 + vertex 1777.5 80.0000000000001 0 + vertex 1613 50.0000000000114 0 + endloop + endfacet + facet normal 0 3.36431219583392E-16 -1 + outer loop + vertex 1797 380 1.11022302462516E-13 + vertex 1613 50.0000000000114 0 + vertex 1607 50.0000000000114 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1777.5 80.0000000000001 0 + vertex 1777.5 0 0 + vertex 1613 50.0000000000114 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1613 50.0000000000114 0 + vertex 1777.5 0 0 + vertex 1613 1.11022302462516E-11 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1607 1.11022302462516E-11 0 + vertex 1213 7.54951656745106E-12 0 + vertex 1607 50.0000000000114 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1607 50.0000000000114 0 + vertex 1213 7.54951656745106E-12 0 + vertex 1213 50.0000000000074 0 + endloop + endfacet + facet normal -3.41281540675924E-30 3.36431219583394E-16 -1 + outer loop + vertex 1607 50.0000000000114 0 + vertex 1213 50.0000000000074 0 + vertex 1797 380 1.11022302462516E-13 + endloop + endfacet + facet normal 0 3.36431219583384E-16 -1 + outer loop + vertex 1797 380 1.11022302462516E-13 + vertex 1213 50.0000000000074 0 + vertex 1207 50.0000000000074 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1207 50.0000000000074 0 + vertex 1207 7.54951656745106E-12 0 + vertex 813 3.5527136788005E-12 0 + endloop + endfacet + facet normal 0 3.36431219583385E-16 -1 + outer loop + vertex 813 50.0000000000038 0 + vertex 807 50.0000000000038 0 + vertex 603 380 1.11022302462516E-13 + endloop + endfacet + facet normal 6.08174760134219E-17 3.74027477482591E-16 -1 + outer loop + vertex 603 380 1.11022302462516E-13 + vertex 807 50.0000000000038 0 + vertex 622.5 80.0000000000001 0 + endloop + endfacet + facet normal 0 3.70074341541719E-16 -1 + outer loop + vertex 603 380 1.11022302462516E-13 + vertex 622.5 80.0000000000001 0 + vertex 603 80.0000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 807 3.5527136788005E-12 0 + vertex 622.5 8.00000000000001 0 + vertex 807 50.0000000000038 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 807 50.0000000000038 0 + vertex 622.5 8.00000000000001 0 + vertex 622.5 72.0000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 807 50.0000000000038 0 + vertex 622.5 72.0000000000001 0 + vertex 622.5 80.0000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 807 3.5527136788005E-12 0 + vertex 622.5 0 0 + vertex 622.5 8.00000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 622.5 8.00000000000001 0 + vertex 583.5 8.00000000000001 0 + vertex 622.5 72.0000000000001 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 622.5 72.0000000000001 0 + vertex 583.5 8.00000000000001 0 + vertex 583.5 72.0000000000001 0 + endloop + endfacet + facet normal 1.34512060500057E-16 -8.08419729215704E-17 -1 + outer loop + vertex 720 1948 0 + vertex 603 380 1.11022302462516E-13 + vertex 0 750 0 + endloop + endfacet + facet normal 0 -3.00060276925718E-16 -1 + outer loop + vertex 0 750 0 + vertex 603 380 1.11022302462516E-13 + vertex 597 380 1.11022302462516E-13 + endloop + endfacet + facet normal 2.90732152645845E-16 1.69039980181227E-16 -1 + outer loop + vertex 0 750 0 + vertex 597 380 1.11022302462516E-13 + vertex 407 49.9999999999998 0 + endloop + endfacet + facet normal 0 3.36431219583381E-16 -1 + outer loop + vertex 407 49.9999999999998 0 + vertex 597 380 1.11022302462516E-13 + vertex 413 49.9999999999998 0 + endloop + endfacet + facet normal 0 3.70074341541719E-16 -1 + outer loop + vertex 597 80.0000000000001 0 + vertex 577.5 80.0000000000001 0 + vertex 597 380 1.11022302462516E-13 + endloop + endfacet + facet normal -6.83004013918896E-17 3.74513867632192E-16 -1 + outer loop + vertex 597 380 1.11022302462516E-13 + vertex 577.5 80.0000000000001 0 + vertex 413 49.9999999999998 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 577.5 80.0000000000001 0 + vertex 577.5 0 0 + vertex 413 49.9999999999998 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 413 49.9999999999998 0 + vertex 577.5 0 0 + vertex 413 0 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 407 0 0 + vertex 0 0 0 + vertex 407 49.9999999999998 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 407 49.9999999999998 0 + vertex 0 0 0 + vertex 0 750 0 + endloop + endfacet + facet normal 1 0 -4.44089209850063E-16 + outer loop + vertex 4000 5050 8.88178419700125E-13 + vertex 4000 5050 2000 + vertex 4000 4050 8.88178419700125E-13 + endloop + endfacet + facet normal 1 -2.06553120860494E-16 -3.40812649419815E-16 + outer loop + vertex 4000 4050 8.88178419700125E-13 + vertex 4000 5050 2000 + vertex 4000 750.000000000002 2000 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 4000 4050 8.88178419700125E-13 + vertex 4000 750.000000000002 2000 + vertex 4000 750.000000000002 0 + endloop + endfacet + facet normal 0 -5.78743540204252E-16 1 + outer loop + vertex 2000 5050 2000 + vertex 2000 2748 2000 + vertex 4000 5050 2000 + endloop + endfacet + facet normal -3.09519851609451E-16 -3.09829681290741E-16 1 + outer loop + vertex 4000 5050 2000 + vertex 2000 2748 2000 + vertex 4000 750.000000000002 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 1207 7.54951656745106E-12 2000 + vertex 813 50.0000000000038 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 813 50.0000000000038 2000 + vertex 1207 7.54951656745106E-12 2000 + vertex 1207 50.0000000000074 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 813 50.0000000000038 2000 + vertex 1207 50.0000000000074 2000 + vertex 603 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 603 380 2000 + vertex 1207 50.0000000000074 2000 + vertex 1797 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 603 380 2000 + vertex 1797 380 2000 + vertex 720 1948 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 720 1948 2000 + vertex 1797 380 2000 + vertex 1803 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 720 1948 2000 + vertex 1803 380 2000 + vertex 2000 2748 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2000 2748 2000 + vertex 1803 380 2000 + vertex 2597 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2000 2748 2000 + vertex 2597 380 2000 + vertex 2603 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 720 1948 2000 + vertex 0 750 2000 + vertex 603 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 603 380 2000 + vertex 0 750 2000 + vertex 597 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 597 380 2000 + vertex 0 750 2000 + vertex 407 49.9999999999998 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 407 49.9999999999998 2000 + vertex 0 750 2000 + vertex 0 0 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 407 49.9999999999998 2000 + vertex 0 0 2000 + vertex 407 0 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 407 49.9999999999998 2000 + vertex 413 49.9999999999998 2000 + vertex 597 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 597 380 2000 + vertex 413 49.9999999999998 2000 + vertex 577.5 80.0000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 597 380 2000 + vertex 577.5 80.0000000000001 2000 + vertex 597 80.0000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 413 0 2000 + vertex 577.5 0 2000 + vertex 413 49.9999999999998 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 413 49.9999999999998 2000 + vertex 577.5 0 2000 + vertex 577.5 80.0000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 603 80.0000000000001 2000 + vertex 622.5 80.0000000000001 2000 + vertex 603 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 603 380 2000 + vertex 622.5 80.0000000000001 2000 + vertex 807 50.0000000000038 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 603 380 2000 + vertex 807 50.0000000000038 2000 + vertex 813 50.0000000000038 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 622.5 80.0000000000001 2000 + vertex 622.5 72.0000000000001 2000 + vertex 807 50.0000000000038 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 807 50.0000000000038 2000 + vertex 622.5 72.0000000000001 2000 + vertex 622.5 8.00000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 807 50.0000000000038 2000 + vertex 622.5 8.00000000000001 2000 + vertex 807 3.5527136788005E-12 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 807 3.5527136788005E-12 2000 + vertex 622.5 8.00000000000001 2000 + vertex 622.5 0 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 622.5 72.0000000000001 2000 + vertex 583.5 72.0000000000001 2000 + vertex 622.5 8.00000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 622.5 8.00000000000001 2000 + vertex 583.5 72.0000000000001 2000 + vertex 583.5 8.00000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1207 50.0000000000074 2000 + vertex 1213 50.0000000000074 2000 + vertex 1797 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1797 380 2000 + vertex 1213 50.0000000000074 2000 + vertex 1607 50.0000000000114 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1797 380 2000 + vertex 1607 50.0000000000114 2000 + vertex 1613 50.0000000000114 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1213 7.54951656745106E-12 2000 + vertex 1607 1.11022302462516E-11 2000 + vertex 1213 50.0000000000074 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1213 50.0000000000074 2000 + vertex 1607 1.11022302462516E-11 2000 + vertex 1607 50.0000000000114 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1613 1.11022302462516E-11 2000 + vertex 1777.5 0 2000 + vertex 1613 50.0000000000114 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1613 50.0000000000114 2000 + vertex 1777.5 0 2000 + vertex 1777.5 80.0000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1613 50.0000000000114 2000 + vertex 1777.5 80.0000000000001 2000 + vertex 1797 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1797 380 2000 + vertex 1777.5 80.0000000000001 2000 + vertex 1797 80.0000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1803 80.0000000000001 2000 + vertex 1822.5 80.0000000000001 2000 + vertex 1803 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1803 380 2000 + vertex 1822.5 80.0000000000001 2000 + vertex 2007 50.0000000000149 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1803 380 2000 + vertex 2007 50.0000000000149 2000 + vertex 2013 50.0000000000149 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1822.5 80.0000000000001 2000 + vertex 1822.5 72.0000000000001 2000 + vertex 2007 50.0000000000149 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2007 50.0000000000149 2000 + vertex 1822.5 72.0000000000001 2000 + vertex 1822.5 8.00000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2007 50.0000000000149 2000 + vertex 1822.5 8.00000000000001 2000 + vertex 2007 1.50990331349021E-11 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2007 1.50990331349021E-11 2000 + vertex 1822.5 8.00000000000001 2000 + vertex 1822.5 0 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1822.5 72.0000000000001 2000 + vertex 1783.5 72.0000000000001 2000 + vertex 1822.5 8.00000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1822.5 8.00000000000001 2000 + vertex 1783.5 72.0000000000001 2000 + vertex 1783.5 8.00000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2013 1.50990331349021E-11 2000 + vertex 2407 1.86517468137026E-11 2000 + vertex 2013 50.0000000000149 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2013 50.0000000000149 2000 + vertex 2407 1.86517468137026E-11 2000 + vertex 2407 50.0000000000185 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2013 50.0000000000149 2000 + vertex 2407 50.0000000000185 2000 + vertex 2597 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2597 380 2000 + vertex 2407 50.0000000000185 2000 + vertex 2413 50.0000000000185 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2597 380 2000 + vertex 2413 50.0000000000185 2000 + vertex 2577.5 80.0000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2577.5 80.0000000000001 2000 + vertex 2413 50.0000000000185 2000 + vertex 2577.5 0 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2413 50.0000000000185 2000 + vertex 2413 1.86517468137026E-11 2000 + vertex 2577.5 0 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2577.5 80.0000000000001 2000 + vertex 2597 80.0000000000001 2000 + vertex 2597 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2603 80.0000000000001 2000 + vertex 2622.5 80.0000000000001 2000 + vertex 2603 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2603 380 2000 + vertex 2622.5 80.0000000000001 2000 + vertex 2807 50.0000000000225 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2603 380 2000 + vertex 2807 50.0000000000225 2000 + vertex 2813 50.0000000000225 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2622.5 80.0000000000001 2000 + vertex 2622.5 72.0000000000001 2000 + vertex 2807 50.0000000000225 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2807 50.0000000000225 2000 + vertex 2622.5 72.0000000000001 2000 + vertex 2622.5 8.00000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2807 50.0000000000225 2000 + vertex 2622.5 8.00000000000001 2000 + vertex 2807 2.22044604925031E-11 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2807 2.22044604925031E-11 2000 + vertex 2622.5 8.00000000000001 2000 + vertex 2622.5 0 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2622.5 72.0000000000001 2000 + vertex 2583.5 72.0000000000001 2000 + vertex 2622.5 8.00000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2622.5 8.00000000000001 2000 + vertex 2583.5 72.0000000000001 2000 + vertex 2583.5 8.00000000000001 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 3167.0406138781 0 2000 + vertex 2813 50.0000000000225 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2813 50.0000000000225 2000 + vertex 3167.0406138781 0 2000 + vertex 2603 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 3167.0406138781 0 2000 + vertex 4000 750.000000000002 2000 + vertex 2603 380 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2603 380 2000 + vertex 4000 750.000000000002 2000 + vertex 2000 2748 2000 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2597 380 2000 + vertex 1803 380 2000 + vertex 2013 50.0000000000149 2000 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2000 5050 8.88178419700125E-13 + vertex 2000 4050 8.88178419700125E-13 + vertex 2000 5050 2000 + endloop + endfacet + facet normal -1 1.92914513401417E-16 -9.64572567007087E-17 + outer loop + vertex 2000 5050 2000 + vertex 2000 4050 8.88178419700125E-13 + vertex 2000 2748 2000 + endloop + endfacet + facet normal -1 3.41082342434764E-16 0 + outer loop + vertex 2000 4050 8.88178419700125E-13 + vertex 2000 2748 0 + vertex 2000 2748 2000 + endloop + endfacet + facet normal 0 1 0 + outer loop + vertex 4000 5050 2000 + vertex 4000 5050 8.88178419700125E-13 + vertex 2000 5050 2000 + endloop + endfacet + facet normal 0 1 0 + outer loop + vertex 2000 5050 2000 + vertex 4000 5050 8.88178419700125E-13 + vertex 2000 5050 8.88178419700125E-13 + endloop + endfacet + facet normal 0 1 3.93687941920349E-16 + outer loop + vertex 2000 5050 8.88178419700125E-13 + vertex 4000 5050 8.88178419700125E-13 + vertex 2520.84944271526 5050 -2256.04679525547 + endloop + endfacet + facet normal -8.40619270133272E-16 1 9.44830083340835E-16 + outer loop + vertex 2520.84944271526 5050 -2256.04679525547 + vertex 4000 5050 8.88178419700125E-13 + vertex 3276.25464634476 5050 -2524 + endloop + endfacet + facet normal 4.96026473034842E-15 1 1.72984988658915E-14 + outer loop + vertex 2520.84944271526 5050 -2256.04679525547 + vertex 3276.25464634476 5050 -2524 + vertex 2507.2452895941 5050 -2303.4901153464 + endloop + endfacet + facet normal -0.999390827019101 -1.00867603446968E-14 0.0348994967023459 + outer loop + vertex 933.255774722718 -110.000000000015 1018.32442974313 + vertex 933 0 1011 + vertex 933.000000000001 -110 1011 + endloop + endfacet + facet normal -0.999390827019096 -1.00867882432344E-14 -0.0348994967024972 + outer loop + vertex 933.000000000001 -110 1011 + vertex 933 0 1011 + vertex 933.255774722718 0 1003.67557025687 + endloop + endfacet + facet normal -0.999390827019101 0 -0.0348994967023459 + outer loop + vertex 933.000000000001 -110 1011 + vertex 933.255774722718 0 1003.67557025687 + vertex 933.255774722718 -110.000000000015 1003.67557025687 + endloop + endfacet + facet normal -0.994521895368274 0 -0.104528463267651 + outer loop + vertex 933.255774722718 -110.000000000015 1003.67557025687 + vertex 933.255774722718 0 1003.67557025687 + vertex 934.021852782135 0 996.386824399193 + endloop + endfacet + facet normal -0.994521895368274 0 -0.104528463267651 + outer loop + vertex 933.255774722718 -110.000000000015 1003.67557025687 + vertex 934.021852782135 0 996.386824399193 + vertex 934.021852782135 -110.000000000015 996.386824399193 + endloop + endfacet + facet normal -0.984807753012209 0 -0.173648177666925 + outer loop + vertex 934.021852782135 -110.000000000015 996.386824399193 + vertex 934.021852782135 0 996.386824399193 + vertex 935.29450192295 0 989.169272464135 + endloop + endfacet + facet normal -0.984807753012208 -1.74412355638599E-16 -0.173648177666928 + outer loop + vertex 934.021852782135 -110.000000000015 996.386824399193 + vertex 935.29450192295 0 989.169272464135 + vertex 935.29450192295 -110.000000000015 989.169272464135 + endloop + endfacet + facet normal -0.970295726275993 -2.44170235141541E-16 -0.241921895599682 + outer loop + vertex 935.29450192295 -110.000000000015 989.169272464135 + vertex 935.29450192295 0 989.169272464135 + vertex 937.067521926477 0 982.058077639215 + endloop + endfacet + facet normal -0.970295726275995 2.43757027157553E-16 -0.241921895599675 + outer loop + vertex 935.29450192295 -110.000000000015 989.169272464135 + vertex 937.067521926477 0 982.058077639215 + vertex 937.067521926477 -110.000000000015 982.058077639215 + endloop + endfacet + facet normal -0.951056516295157 3.1188889286861E-16 -0.309016994374936 + outer loop + vertex 937.067521926477 -110.000000000015 982.058077639215 + vertex 937.067521926477 0 982.058077639215 + vertex 939.33227481748 0 975.087884950805 + endloop + endfacet + facet normal -0.951056516295156 0 -0.309016994374941 + outer loop + vertex 937.067521926477 -110.000000000015 982.058077639215 + vertex 939.33227481748 0 975.087884950805 + vertex 939.33227481748 -110.000000000015 975.087884950805 + endloop + endfacet + facet normal -0.927183854566787 0 -0.374606593415913 + outer loop + vertex 939.33227481748 -110.000000000015 975.087884950805 + vertex 939.33227481748 0 975.087884950805 + vertex 942.077726947527 0 968.292652477041 + endloop + endfacet + facet normal -0.927183854566787 0 -0.374606593415913 + outer loop + vertex 939.33227481748 -110.000000000015 975.087884950805 + vertex 942.077726947527 0 968.292652477041 + vertex 942.077726947527 -110.000000000015 968.292652477041 + endloop + endfacet + facet normal -0.898794046299168 0 -0.438371146789076 + outer loop + vertex 942.077726947527 -110.000000000015 968.292652477041 + vertex 942.077726947527 0 968.292652477041 + vertex 945.290502749813 0 961.705485907482 + endloop + endfacet + facet normal -0.898794046299168 0 -0.438371146789076 + outer loop + vertex 942.077726947527 -110.000000000015 968.292652477041 + vertex 945.290502749813 0 961.705485907482 + vertex 945.290502749813 -110.000000000015 961.705485907482 + endloop + endfacet + facet normal -0.866025403784435 0 -0.500000000000006 + outer loop + vertex 945.290502749813 -110.000000000015 961.705485907482 + vertex 945.290502749813 0 961.705485907482 + vertex 948.954949903575 0 955.358477255514 + endloop + endfacet + facet normal -0.866025403784435 0 -0.500000000000006 + outer loop + vertex 945.290502749813 -110.000000000015 961.705485907482 + vertex 948.954949903575 0 955.358477255514 + vertex 948.954949903575 -110.000000000015 955.358477255514 + endloop + endfacet + facet normal -0.829037572555041 0 -0.559192903470748 + outer loop + vertex 948.954949903575 -110.000000000015 955.358477255514 + vertex 948.954949903575 0 955.358477255514 + vertex 953.053215590631 0 949.28254850929 + endloop + endfacet + facet normal -0.829037572555048 8.36338765592309E-16 -0.559192903470738 + outer loop + vertex 948.954949903575 -110.000000000015 955.358477255514 + vertex 953.053215590631 0 949.28254850929 + vertex 953.053215590631 -110.000000000015 949.28254850929 + endloop + endfacet + facet normal -0.788010753606721 7.9533425664208E-16 -0.615661475325659 + outer loop + vertex 953.053215590631 -110.000000000015 949.28254850929 + vertex 953.053215590631 0 949.28254850929 + vertex 957.565333472507 0 943.507300982913 + endloop + endfacet + facet normal -0.788010753606714 0 -0.615661475325669 + outer loop + vertex 953.053215590631 -110.000000000015 949.28254850929 + vertex 957.565333472507 0 943.507300982913 + vertex 957.565333472507 -110.000000000015 943.507300982913 + endloop + endfacet + facet normal -0.743144825477395 0 -0.669130606358857 + outer loop + vertex 957.565333472507 -110.000000000015 943.507300982913 + vertex 957.565333472507 0 943.507300982913 + vertex 962.469320964442 0 938.060871101805 + endloop + endfacet + facet normal -0.743144825477395 0 -0.669130606358857 + outer loop + vertex 957.565333472507 -110.000000000015 943.507300982913 + vertex 962.469320964442 0 938.060871101805 + vertex 962.469320964442 -110.000000000015 938.060871101805 + endloop + endfacet + facet normal -0.694658370458996 0 -0.719339800338652 + outer loop + vertex 962.469320964442 -110.000000000015 938.060871101805 + vertex 962.469320964442 0 938.060871101805 + vertex 967.74128633232 0 932.969793324874 + endloop + endfacet + facet normal -0.694658370458996 0 -0.719339800338652 + outer loop + vertex 962.469320964442 -110.000000000015 938.060871101805 + vertex 967.74128633232 0 932.969793324874 + vertex 967.74128633232 -110.000000000015 932.969793324874 + endloop + endfacet + facet normal -0.64278760968654 0 -0.766044443118978 + outer loop + vertex 967.74128633232 -110.000000000015 932.969793324874 + vertex 967.74128633232 0 932.969793324874 + vertex 973.355545090806 0 928.258870871294 + endloop + endfacet + facet normal -0.64278760968654 0 -0.766044443118978 + outer loop + vertex 967.74128633232 -110.000000000015 932.969793324874 + vertex 973.355545090806 0 928.258870871294 + vertex 973.355545090806 -110.000000000015 928.258870871294 + endloop + endfacet + facet normal -0.587785252292478 0 -0.809016994374944 + outer loop + vertex 973.355545090806 -110.000000000015 928.258870871294 + vertex 973.355545090806 0 928.258870871294 + vertex 979.284745135572 0 923.951054881721 + endloop + endfacet + facet normal -0.587785252292478 0 -0.809016994374944 + outer loop + vertex 973.355545090806 -110.000000000015 928.258870871294 + vertex 979.284745135572 0 923.951054881721 + vertex 979.284745135572 -110.000000000015 923.951054881721 + endloop + endfacet + facet normal -0.529919264233199 0 -0.84804809615643 + outer loop + vertex 979.284745135572 -110.000000000015 923.951054881721 + vertex 979.284745135572 0 923.951054881721 + vertex 985.5 0 920.067332602634 + endloop + endfacet + facet normal -0.529919264233199 0 -0.84804809615643 + outer loop + vertex 979.284745135572 -110.000000000015 923.951054881721 + vertex 985.5 0 920.067332602634 + vertex 985.5 -110.000000000015 920.067332602634 + endloop + endfacet + facet normal -0.469471562785902 0 -0.882947592858921 + outer loop + vertex 985.5 -110.000000000015 920.067332602634 + vertex 985.5 0 920.067332602634 + vertex 991.971029587147 0 916.626625138588 + endloop + endfacet + facet normal -0.469471562785902 0 -0.882947592858921 + outer loop + vertex 985.5 -110.000000000015 920.067332602634 + vertex 991.971029587147 0 916.626625138588 + vertex 991.971029587147 -110.000000000015 916.626625138588 + endloop + endfacet + facet normal -0.406736643075791 0 -0.913545457642605 + outer loop + vertex 991.971029587147 -110.000000000015 916.626625138588 + vertex 991.971029587147 0 916.626625138588 + vertex 998.666307691329 0 913.645695270487 + endloop + endfacet + facet normal -0.406736643075791 0 -0.913545457642605 + outer loop + vertex 991.971029587147 -110.000000000015 916.626625138588 + vertex 998.666307691329 0 913.645695270487 + vertex 998.666307691329 -110.000000000015 913.645695270487 + endloop + endfacet + facet normal -0.342020143325673 0 -0.939692620785907 + outer loop + vertex 998.666307691329 -110.000000000015 913.645695270487 + vertex 998.666307691329 0 913.645695270487 + vertex 1005.55321559063 0 911.139065789009 + endloop + endfacet + facet normal -0.342020143325659 -9.49811864441511E-16 -0.939692620785912 + outer loop + vertex 998.666307691329 -110.000000000015 913.645695270487 + vertex 1005.55321559063 0 911.139065789009 + vertex 1005.55321559063 -110.000000000015 911.139065789009 + endloop + endfacet + facet normal -0.275637355816993 -9.70195334109826E-16 -0.961261695938321 + outer loop + vertex 1005.55321559063 -110.000000000015 911.139065789009 + vertex 1005.55321559063 0 911.139065789009 + vertex 1012.59820096203 0 909.118948741021 + endloop + endfacet + facet normal -0.275637355817007 0 -0.961261695938317 + outer loop + vertex 1005.55321559063 -110.000000000015 911.139065789009 + vertex 1012.59820096203 0 909.118948741021 + vertex 1012.59820096203 -110.000000000015 909.118948741021 + endloop + endfacet + facet normal -0.207911690817764 0 -0.978147600733805 + outer loop + vertex 1012.59820096203 -110.000000000015 909.118948741021 + vertex 1012.59820096203 0 909.118948741021 + vertex 1019.76694134497 0 907.595185933718 + endloop + endfacet + facet normal -0.207911690817764 0 -0.978147600733805 + outer loop + vertex 1012.59820096203 -110.000000000015 909.118948741021 + vertex 1019.76694134497 0 907.595185933718 + vertex 1019.76694134497 -110.000000000015 907.595185933718 + endloop + endfacet + facet normal -0.139173100960065 0 -0.99026806874157 + outer loop + vertex 1019.76694134497 -110.000000000015 907.595185933718 + vertex 1019.76694134497 0 907.595185933718 + vertex 1027.0245113569 0 906.575200986331 + endloop + endfacet + facet normal -0.139173100960069 2.80530716599435E-16 -0.99026806874157 + outer loop + vertex 1019.76694134497 -110.000000000015 907.595185933718 + vertex 1027.0245113569 0 906.575200986331 + vertex 1027.0245113569 -110.000000000015 906.575200986331 + endloop + endfacet + facet normal -0.0697564737441173 1.40809533213398E-16 -0.997564050259825 + outer loop + vertex 1027.0245113569 -110.000000000015 906.575200986331 + vertex 1027.0245113569 0 906.575200986331 + vertex 1034.33555284624 0 906.063963162995 + endloop + endfacet + facet normal -0.0697564737441152 0 -0.997564050259825 + outer loop + vertex 1027.0245113569 -110.000000000015 906.575200986331 + vertex 1034.33555284624 0 906.063963162995 + vertex 1034.33555284624 -110.000000000015 906.063963162995 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1034.33555284624 -110.000000000015 906.063963162995 + vertex 1034.33555284624 0 906.063963162995 + vertex 1041.66444715376 0 906.063963162995 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1034.33555284624 -110.000000000015 906.063963162995 + vertex 1041.66444715376 0 906.063963162995 + vertex 1041.66444715376 -110.000000000015 906.063963162995 + endloop + endfacet + facet normal 0.0697564737441152 0 -0.997564050259825 + outer loop + vertex 1041.66444715376 -110.000000000015 906.063963162995 + vertex 1041.66444715376 0 906.063963162995 + vertex 1048.9754886431 0 906.575200986331 + endloop + endfacet + facet normal 0.0697564737441152 0 -0.997564050259825 + outer loop + vertex 1041.66444715376 -110.000000000015 906.063963162995 + vertex 1048.9754886431 0 906.575200986331 + vertex 1048.9754886431 -110.000000000015 906.575200986331 + endloop + endfacet + facet normal 0.139173100960069 0 -0.99026806874157 + outer loop + vertex 1048.9754886431 -110.000000000015 906.575200986331 + vertex 1048.9754886431 0 906.575200986331 + vertex 1056.23305865503 0 907.595185933718 + endloop + endfacet + facet normal 0.139173100960069 0 -0.99026806874157 + outer loop + vertex 1048.9754886431 -110.000000000015 906.575200986331 + vertex 1056.23305865503 0 907.595185933718 + vertex 1056.23305865503 -110.000000000015 907.595185933718 + endloop + endfacet + facet normal 0.207911690817764 0 -0.978147600733805 + outer loop + vertex 1056.23305865503 -110.000000000015 907.595185933718 + vertex 1056.23305865503 0 907.595185933718 + vertex 1063.40179903797 0 909.118948741021 + endloop + endfacet + facet normal 0.207911690817764 0 -0.978147600733805 + outer loop + vertex 1056.23305865503 -110.000000000015 907.595185933718 + vertex 1063.40179903797 0 909.118948741021 + vertex 1063.40179903797 -110.000000000015 909.118948741021 + endloop + endfacet + facet normal 0.275637355817007 0 -0.961261695938317 + outer loop + vertex 1063.40179903797 -110.000000000015 909.118948741021 + vertex 1063.40179903797 0 909.118948741021 + vertex 1070.44678440937 0 911.139065789009 + endloop + endfacet + facet normal 0.275637355816993 9.70825401265455E-16 -0.961261695938321 + outer loop + vertex 1063.40179903797 -110.000000000015 909.118948741021 + vertex 1070.44678440937 0 911.139065789009 + vertex 1070.44678440937 -110.000000000015 911.139065789009 + endloop + endfacet + facet normal 0.342020143325655 9.48425803333399E-16 -0.939692620785914 + outer loop + vertex 1070.44678440937 -110.000000000015 911.139065789009 + vertex 1070.44678440937 0 911.139065789009 + vertex 1077.33369230867 0 913.645695270487 + endloop + endfacet + facet normal 0.342020143325678 -6.89244007824819E-16 -0.939692620785905 + outer loop + vertex 1070.44678440937 -110.000000000015 911.139065789009 + vertex 1077.33369230867 0 913.645695270487 + vertex 1077.33369230867 -110.000000000015 913.645695270487 + endloop + endfacet + facet normal 0.406736643075809 -8.2103342927536E-16 -0.913545457642597 + outer loop + vertex 1077.33369230867 -110.000000000015 913.645695270487 + vertex 1077.33369230867 0 913.645695270487 + vertex 1084.02897041285 0 916.626625138588 + endloop + endfacet + facet normal 0.406736643075798 0 -0.913545457642602 + outer loop + vertex 1077.33369230867 -110.000000000015 913.645695270487 + vertex 1084.02897041285 0 916.626625138588 + vertex 1084.02897041285 -110.000000000015 916.626625138588 + endloop + endfacet + facet normal 0.46947156278589 0 -0.882947592858927 + outer loop + vertex 1084.02897041285 -110.000000000015 916.626625138588 + vertex 1084.02897041285 0 916.626625138588 + vertex 1090.5 0 920.067332602634 + endloop + endfacet + facet normal 0.46947156278589 0 -0.882947592858927 + outer loop + vertex 1084.02897041285 -110.000000000015 916.626625138588 + vertex 1090.5 0 920.067332602634 + vertex 1090.5 -110.000000000015 920.067332602634 + endloop + endfacet + facet normal 0.529919264233206 0 -0.848048096156426 + outer loop + vertex 1090.5 -110.000000000015 920.067332602634 + vertex 1090.5 0 920.067332602634 + vertex 1096.71525486443 0 923.951054881721 + endloop + endfacet + facet normal 0.529919264233206 0 -0.848048096156426 + outer loop + vertex 1090.5 -110.000000000015 920.067332602634 + vertex 1096.71525486443 0 923.951054881721 + vertex 1096.71525486443 -110.000000000015 923.951054881721 + endloop + endfacet + facet normal 0.587785252292478 0 -0.809016994374944 + outer loop + vertex 1096.71525486443 -110.000000000015 923.951054881721 + vertex 1096.71525486443 0 923.951054881721 + vertex 1102.64445490919 0 928.258870871294 + endloop + endfacet + facet normal 0.587785252292478 0 -0.809016994374944 + outer loop + vertex 1096.71525486443 -110.000000000015 923.951054881721 + vertex 1102.64445490919 0 928.258870871294 + vertex 1102.64445490919 -110.000000000015 928.258870871294 + endloop + endfacet + facet normal 0.642787609686525 0 -0.76604444311899 + outer loop + vertex 1102.64445490919 -110.000000000015 928.258870871294 + vertex 1102.64445490919 0 928.258870871294 + vertex 1108.25871366768 0 932.969793324874 + endloop + endfacet + facet normal 0.642787609686525 0 -0.76604444311899 + outer loop + vertex 1102.64445490919 -110.000000000015 928.258870871294 + vertex 1108.25871366768 0 932.969793324874 + vertex 1108.25871366768 -110.000000000015 932.969793324874 + endloop + endfacet + facet normal 0.694658370459004 0 -0.719339800338645 + outer loop + vertex 1108.25871366768 -110.000000000015 932.969793324874 + vertex 1108.25871366768 0 932.969793324874 + vertex 1113.53067903556 0 938.060871101805 + endloop + endfacet + facet normal 0.694658370459012 -7.27068374107893E-16 -0.719339800338637 + outer loop + vertex 1108.25871366768 -110.000000000015 932.969793324874 + vertex 1113.53067903556 0 938.060871101805 + vertex 1113.53067903556 -110.000000000015 938.060871101805 + endloop + endfacet + facet normal 0.743144825477395 -6.75349277873543E-16 -0.669130606358857 + outer loop + vertex 1113.53067903556 -110.000000000015 938.060871101805 + vertex 1113.53067903556 0 938.060871101805 + vertex 1118.43466652749 0 943.507300982913 + endloop + endfacet + facet normal 0.743144825477389 0 -0.669130606358864 + outer loop + vertex 1113.53067903556 -110.000000000015 938.060871101805 + vertex 1118.43466652749 0 943.507300982913 + vertex 1118.43466652749 -110.000000000015 943.507300982913 + endloop + endfacet + facet normal 0.788010753606727 0 -0.615661475325652 + outer loop + vertex 1118.43466652749 -110.000000000015 943.507300982913 + vertex 1118.43466652749 0 943.507300982913 + vertex 1122.94678440937 0 949.28254850929 + endloop + endfacet + facet normal 0.788010753606721 6.22000689988252E-16 -0.615661475325659 + outer loop + vertex 1118.43466652749 -110.000000000015 943.507300982913 + vertex 1122.94678440937 0 949.28254850929 + vertex 1122.94678440937 -110.000000000015 949.28254850929 + endloop + endfacet + facet normal 0.829037572555029 5.6438985149105E-16 -0.559192903470766 + outer loop + vertex 1122.94678440937 -110.000000000015 949.28254850929 + vertex 1122.94678440937 0 949.28254850929 + vertex 1127.04505009642 0 955.358477255514 + endloop + endfacet + facet normal 0.829037572555034 0 -0.559192903470759 + outer loop + vertex 1122.94678440937 -110.000000000015 949.28254850929 + vertex 1127.04505009642 0 955.358477255514 + vertex 1127.04505009642 -110.000000000015 955.358477255514 + endloop + endfacet + facet normal 0.866025403784442 0 -0.499999999999995 + outer loop + vertex 1127.04505009642 -110.000000000015 955.358477255514 + vertex 1127.04505009642 0 955.358477255514 + vertex 1130.70949725019 0 961.705485907482 + endloop + endfacet + facet normal 0.866025403784442 0 -0.499999999999995 + outer loop + vertex 1127.04505009642 -110.000000000015 955.358477255514 + vertex 1130.70949725019 0 961.705485907482 + vertex 1130.70949725019 -110.000000000015 961.705485907482 + endloop + endfacet + facet normal 0.898794046299168 0 -0.438371146789076 + outer loop + vertex 1130.70949725019 -110.000000000015 961.705485907482 + vertex 1130.70949725019 0 961.705485907482 + vertex 1133.92227305247 0 968.292652477041 + endloop + endfacet + facet normal 0.898794046299168 0 -0.438371146789076 + outer loop + vertex 1130.70949725019 -110.000000000015 961.705485907482 + vertex 1133.92227305247 0 968.292652477041 + vertex 1133.92227305247 -110.000000000015 968.292652477041 + endloop + endfacet + facet normal 0.927183854566792 0 -0.3746065934159 + outer loop + vertex 1133.92227305247 -110.000000000015 968.292652477041 + vertex 1133.92227305247 0 968.292652477041 + vertex 1136.66772518252 0 975.087884950805 + endloop + endfacet + facet normal 0.927183854566792 0 -0.3746065934159 + outer loop + vertex 1133.92227305247 -110.000000000015 968.292652477041 + vertex 1136.66772518252 0 975.087884950805 + vertex 1136.66772518252 -110.000000000015 975.087884950805 + endloop + endfacet + facet normal 0.951056516295153 0 -0.30901699437495 + outer loop + vertex 1136.66772518252 -110.000000000015 975.087884950805 + vertex 1136.66772518252 0 975.087884950805 + vertex 1138.93247807352 0 982.058077639215 + endloop + endfacet + facet normal 0.951056516295151 3.15203052358912E-16 -0.309016994374954 + outer loop + vertex 1136.66772518252 -110.000000000015 975.087884950805 + vertex 1138.93247807352 0 982.058077639215 + vertex 1138.93247807352 -110.000000000015 982.058077639215 + endloop + endfacet + facet normal 0.970295726275993 2.44170235141541E-16 -0.241921895599682 + outer loop + vertex 1138.93247807352 -110.000000000015 982.058077639215 + vertex 1138.93247807352 0 982.058077639215 + vertex 1140.70549807705 0 989.169272464135 + endloop + endfacet + facet normal 0.970295726275995 -2.43757027157553E-16 -0.241921895599675 + outer loop + vertex 1138.93247807352 -110.000000000015 982.058077639215 + vertex 1140.70549807705 0 989.169272464135 + vertex 1140.70549807705 -110.000000000015 989.169272464135 + endloop + endfacet + facet normal 0.984807753012209 -1.75262004572723E-16 -0.173648177666925 + outer loop + vertex 1140.70549807705 -110.000000000015 989.169272464135 + vertex 1140.70549807705 0 989.169272464135 + vertex 1141.97814721786 0 996.386824399193 + endloop + endfacet + facet normal 0.984807753012208 0 -0.173648177666928 + outer loop + vertex 1140.70549807705 -110.000000000015 989.169272464135 + vertex 1141.97814721786 0 996.386824399193 + vertex 1141.97814721786 -110.000000000015 996.386824399193 + endloop + endfacet + facet normal 0.994521895368272 0 -0.104528463267666 + outer loop + vertex 1141.97814721786 -110.000000000015 996.386824399193 + vertex 1141.97814721786 0 996.386824399193 + vertex 1142.74422527728 0 1003.67557025687 + endloop + endfacet + facet normal 0.994521895368272 0 -0.104528463267666 + outer loop + vertex 1141.97814721786 -110.000000000015 996.386824399193 + vertex 1142.74422527728 0 1003.67557025687 + vertex 1142.74422527728 -110.000000000015 1003.67557025687 + endloop + endfacet + facet normal 0.999390827019096 0 -0.034899496702482 + outer loop + vertex 1142.74422527728 -110.000000000015 1003.67557025687 + vertex 1142.74422527728 0 1003.67557025687 + vertex 1143 0 1011 + endloop + endfacet + facet normal 0.999390827019096 0 -0.034899496702482 + outer loop + vertex 1142.74422527728 -110.000000000015 1003.67557025687 + vertex 1143 0 1011 + vertex 1143 -110.000000000015 1011 + endloop + endfacet + facet normal 0.999390827019096 0 0.034899496702482 + outer loop + vertex 1143 -110.000000000015 1011 + vertex 1143 0 1011 + vertex 1142.74422527728 0 1018.32442974313 + endloop + endfacet + facet normal 0.999390827019096 0 0.034899496702482 + outer loop + vertex 1143 -110.000000000015 1011 + vertex 1142.74422527728 0 1018.32442974313 + vertex 1142.74422527728 -110.000000000015 1018.32442974313 + endloop + endfacet + facet normal 0.994521895368272 0 0.104528463267667 + outer loop + vertex 1142.74422527728 -110.000000000015 1018.32442974313 + vertex 1142.74422527728 0 1018.32442974313 + vertex 1141.97814721786 0 1025.61317560081 + endloop + endfacet + facet normal 0.994521895368272 2.11186045080467E-16 0.104528463267664 + outer loop + vertex 1142.74422527728 -110.000000000015 1018.32442974313 + vertex 1141.97814721786 0 1025.61317560081 + vertex 1141.97814721786 -110.000000000015 1025.61317560081 + endloop + endfacet + facet normal 0.984807753012209 3.50524009145446E-16 0.173648177666925 + outer loop + vertex 1141.97814721786 -110.000000000015 1025.61317560081 + vertex 1141.97814721786 0 1025.61317560081 + vertex 1140.70549807705 0 1032.83072753586 + endloop + endfacet + facet normal 0.984807753012208 0 0.173648177666931 + outer loop + vertex 1141.97814721786 -110.000000000015 1025.61317560081 + vertex 1140.70549807705 0 1032.83072753586 + vertex 1140.70549807705 -110.000000000015 1032.83072753586 + endloop + endfacet + facet normal 0.970295726275995 0 0.241921895599675 + outer loop + vertex 1140.70549807705 -110.000000000015 1032.83072753586 + vertex 1140.70549807705 0 1032.83072753586 + vertex 1138.93247807352 0 1039.94192236079 + endloop + endfacet + facet normal 0.970295726275995 0 0.241921895599675 + outer loop + vertex 1140.70549807705 -110.000000000015 1032.83072753586 + vertex 1138.93247807352 0 1039.94192236079 + vertex 1138.93247807352 -110.000000000015 1039.94192236079 + endloop + endfacet + facet normal 0.951056516295151 0 0.309016994374954 + outer loop + vertex 1138.93247807352 -110.000000000015 1039.94192236079 + vertex 1138.93247807352 0 1039.94192236079 + vertex 1136.66772518252 0 1046.9121150492 + endloop + endfacet + facet normal 0.951056516295151 0 0.309016994374954 + outer loop + vertex 1138.93247807352 -110.000000000015 1039.94192236079 + vertex 1136.66772518252 0 1046.9121150492 + vertex 1136.66772518252 -110.000000000015 1046.9121150492 + endloop + endfacet + facet normal 0.927183854566794 0 0.374606593415895 + outer loop + vertex 1136.66772518252 -110.000000000015 1046.9121150492 + vertex 1136.66772518252 0 1046.9121150492 + vertex 1133.92227305247 0 1053.70734752296 + endloop + endfacet + facet normal 0.927183854566794 0 0.374606593415895 + outer loop + vertex 1136.66772518252 -110.000000000015 1046.9121150492 + vertex 1133.92227305247 0 1053.70734752296 + vertex 1133.92227305247 -110.000000000015 1053.70734752296 + endloop + endfacet + facet normal 0.898794046299165 0 0.438371146789082 + outer loop + vertex 1133.92227305247 -110.000000000015 1053.70734752296 + vertex 1133.92227305247 0 1053.70734752296 + vertex 1130.70949725019 0 1060.29451409252 + endloop + endfacet + facet normal 0.898794046299165 0 0.438371146789082 + outer loop + vertex 1133.92227305247 -110.000000000015 1053.70734752296 + vertex 1130.70949725019 0 1060.29451409252 + vertex 1130.70949725019 -110.000000000015 1060.29451409252 + endloop + endfacet + facet normal 0.866025403784438 0 0.500000000000002 + outer loop + vertex 1130.70949725019 -110.000000000015 1060.29451409252 + vertex 1130.70949725019 0 1060.29451409252 + vertex 1127.04505009642 0 1066.64152274449 + endloop + endfacet + facet normal 0.866025403784438 0 0.500000000000002 + outer loop + vertex 1130.70949725019 -110.000000000015 1060.29451409252 + vertex 1127.04505009642 0 1066.64152274449 + vertex 1127.04505009642 -110.000000000015 1066.64152274449 + endloop + endfacet + facet normal 0.829037572555039 0 0.559192903470752 + outer loop + vertex 1127.04505009642 -110.000000000015 1066.64152274449 + vertex 1127.04505009642 0 1066.64152274449 + vertex 1122.94678440937 0 1072.71745149071 + endloop + endfacet + facet normal 0.829037572555039 0 0.559192903470752 + outer loop + vertex 1127.04505009642 -110.000000000015 1066.64152274449 + vertex 1122.94678440937 0 1072.71745149071 + vertex 1122.94678440937 -110.000000000015 1072.71745149071 + endloop + endfacet + facet normal 0.788010753606716 0 0.615661475325666 + outer loop + vertex 1122.94678440937 -110.000000000015 1072.71745149071 + vertex 1122.94678440937 0 1072.71745149071 + vertex 1118.43466652749 0 1078.49269901709 + endloop + endfacet + facet normal 0.788010753606716 0 0.615661475325666 + outer loop + vertex 1122.94678440937 -110.000000000015 1072.71745149071 + vertex 1118.43466652749 0 1078.49269901709 + vertex 1118.43466652749 -110.000000000015 1078.49269901709 + endloop + endfacet + facet normal 0.743144825477395 0 0.669130606358857 + outer loop + vertex 1118.43466652749 -110.000000000015 1078.49269901709 + vertex 1118.43466652749 0 1078.49269901709 + vertex 1113.53067903556 0 1083.93912889819 + endloop + endfacet + facet normal 0.743144825477395 0 0.669130606358857 + outer loop + vertex 1118.43466652749 -110.000000000015 1078.49269901709 + vertex 1113.53067903556 0 1083.93912889819 + vertex 1113.53067903556 -110.000000000015 1083.93912889819 + endloop + endfacet + facet normal 0.694658370459012 0 0.719339800338637 + outer loop + vertex 1113.53067903556 -110.000000000015 1083.93912889819 + vertex 1113.53067903556 0 1083.93912889819 + vertex 1108.25871366768 0 1089.03020667513 + endloop + endfacet + facet normal 0.694658370459012 0 0.719339800338637 + outer loop + vertex 1113.53067903556 -110.000000000015 1083.93912889819 + vertex 1108.25871366768 0 1089.03020667513 + vertex 1108.25871366768 -110.000000000015 1089.03020667513 + endloop + endfacet + facet normal 0.642787609686534 0 0.766044443118983 + outer loop + vertex 1108.25871366768 -110.000000000015 1089.03020667513 + vertex 1108.25871366768 0 1089.03020667513 + vertex 1102.64445490919 0 1093.74112912871 + endloop + endfacet + facet normal 0.642787609686534 0 0.766044443118983 + outer loop + vertex 1108.25871366768 -110.000000000015 1089.03020667513 + vertex 1102.64445490919 0 1093.74112912871 + vertex 1102.64445490919 -110.000000000015 1093.74112912871 + endloop + endfacet + facet normal 0.587785252292468 0 0.809016994374951 + outer loop + vertex 1102.64445490919 -110.000000000015 1093.74112912871 + vertex 1102.64445490919 0 1093.74112912871 + vertex 1096.71525486443 0 1098.04894511828 + endloop + endfacet + facet normal 0.587785252292468 0 0.809016994374951 + outer loop + vertex 1102.64445490919 -110.000000000015 1093.74112912871 + vertex 1096.71525486443 0 1098.04894511828 + vertex 1096.71525486443 -110.000000000015 1098.04894511828 + endloop + endfacet + facet normal 0.529919264233206 0 0.848048096156426 + outer loop + vertex 1096.71525486443 -110.000000000015 1098.04894511828 + vertex 1096.71525486443 0 1098.04894511828 + vertex 1090.5 0 1101.93266739737 + endloop + endfacet + facet normal 0.529919264233206 0 0.848048096156426 + outer loop + vertex 1096.71525486443 -110.000000000015 1098.04894511828 + vertex 1090.5 0 1101.93266739737 + vertex 1090.5 -110.000000000015 1101.93266739737 + endloop + endfacet + facet normal 0.469471562785902 0 0.882947592858921 + outer loop + vertex 1090.5 -110.000000000015 1101.93266739737 + vertex 1090.5 0 1101.93266739737 + vertex 1084.02897041285 0 1105.37337486141 + endloop + endfacet + facet normal 0.469471562785902 0 0.882947592858921 + outer loop + vertex 1090.5 -110.000000000015 1101.93266739737 + vertex 1084.02897041285 0 1105.37337486141 + vertex 1084.02897041285 -110.000000000015 1105.37337486141 + endloop + endfacet + facet normal 0.406736643075785 0 0.913545457642608 + outer loop + vertex 1084.02897041285 -110.000000000015 1105.37337486141 + vertex 1084.02897041285 0 1105.37337486141 + vertex 1077.33369230867 0 1108.35430472951 + endloop + endfacet + facet normal 0.406736643075797 8.19527936133183E-16 0.913545457642603 + outer loop + vertex 1084.02897041285 -110.000000000015 1105.37337486141 + vertex 1077.33369230867 0 1108.35430472951 + vertex 1077.33369230867 -110.000000000015 1108.35430472951 + endloop + endfacet + facet normal 0.342020143325664 6.90397523646724E-16 0.93969262078591 + outer loop + vertex 1077.33369230867 -110.000000000015 1108.35430472951 + vertex 1077.33369230867 0 1108.35430472951 + vertex 1070.44678440937 0 1110.86093421099 + endloop + endfacet + facet normal 0.342020143325655 0 0.939692620785914 + outer loop + vertex 1077.33369230867 -110.000000000015 1108.35430472951 + vertex 1070.44678440937 0 1110.86093421099 + vertex 1070.44678440937 -110.000000000015 1110.86093421099 + endloop + endfacet + facet normal 0.275637355817007 0 0.961261695938317 + outer loop + vertex 1070.44678440937 -110.000000000015 1110.86093421099 + vertex 1070.44678440937 0 1110.86093421099 + vertex 1063.40179903797 0 1112.88105125898 + endloop + endfacet + facet normal 0.275637355817007 0 0.961261695938317 + outer loop + vertex 1070.44678440937 -110.000000000015 1110.86093421099 + vertex 1063.40179903797 0 1112.88105125898 + vertex 1063.40179903797 -110.000000000015 1112.88105125898 + endloop + endfacet + facet normal 0.20791169081775 0 0.978147600733808 + outer loop + vertex 1063.40179903797 -110.000000000015 1112.88105125898 + vertex 1063.40179903797 0 1112.88105125898 + vertex 1056.23305865503 0 1114.40481406628 + endloop + endfacet + facet normal 0.20791169081775 0 0.978147600733808 + outer loop + vertex 1063.40179903797 -110.000000000015 1112.88105125898 + vertex 1056.23305865503 0 1114.40481406628 + vertex 1056.23305865503 -110.000000000015 1114.40481406628 + endloop + endfacet + facet normal 0.139173100960069 0 0.99026806874157 + outer loop + vertex 1056.23305865503 -110.000000000015 1114.40481406628 + vertex 1056.23305865503 0 1114.40481406628 + vertex 1048.9754886431 0 1115.42479901367 + endloop + endfacet + facet normal 0.139173100960069 0 0.99026806874157 + outer loop + vertex 1056.23305865503 -110.000000000015 1114.40481406628 + vertex 1048.9754886431 0 1115.42479901367 + vertex 1048.9754886431 -110.000000000015 1115.42479901367 + endloop + endfacet + facet normal 0.0697564737441453 0 0.997564050259823 + outer loop + vertex 1048.9754886431 -110.000000000015 1115.42479901367 + vertex 1048.9754886431 0 1115.42479901367 + vertex 1041.66444715376 0 1115.93603683701 + endloop + endfacet + facet normal 0.0697564737441453 0 0.997564050259823 + outer loop + vertex 1048.9754886431 -110.000000000015 1115.42479901367 + vertex 1041.66444715376 0 1115.93603683701 + vertex 1041.66444715376 -110.000000000015 1115.93603683701 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1041.66444715376 -110.000000000015 1115.93603683701 + vertex 1041.66444715376 0 1115.93603683701 + vertex 1034.33555284624 0 1115.93603683701 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1041.66444715376 -110.000000000015 1115.93603683701 + vertex 1034.33555284624 0 1115.93603683701 + vertex 1034.33555284624 -110.000000000015 1115.93603683701 + endloop + endfacet + facet normal -0.0697564737441453 0 0.997564050259823 + outer loop + vertex 1034.33555284624 -110.000000000015 1115.93603683701 + vertex 1034.33555284624 0 1115.93603683701 + vertex 1027.0245113569 0 1115.42479901367 + endloop + endfacet + facet normal -0.0697564737441475 -1.40790696720315E-16 0.997564050259823 + outer loop + vertex 1034.33555284624 -110.000000000015 1115.93603683701 + vertex 1027.0245113569 0 1115.42479901367 + vertex 1027.0245113569 -110.000000000015 1115.42479901367 + endloop + endfacet + facet normal -0.139173100960069 -2.80933056535145E-16 0.99026806874157 + outer loop + vertex 1027.0245113569 -110.000000000015 1115.42479901367 + vertex 1027.0245113569 0 1115.42479901367 + vertex 1019.76694134497 0 1114.40481406628 + endloop + endfacet + facet normal -0.139173100960065 0 0.99026806874157 + outer loop + vertex 1027.0245113569 -110.000000000015 1115.42479901367 + vertex 1019.76694134497 0 1114.40481406628 + vertex 1019.76694134497 -110.000000000015 1114.40481406628 + endloop + endfacet + facet normal -0.20791169081775 0 0.978147600733808 + outer loop + vertex 1019.76694134497 -110.000000000015 1114.40481406628 + vertex 1019.76694134497 0 1114.40481406628 + vertex 1012.59820096203 0 1112.88105125898 + endloop + endfacet + facet normal -0.20791169081775 0 0.978147600733808 + outer loop + vertex 1019.76694134497 -110.000000000015 1114.40481406628 + vertex 1012.59820096203 0 1112.88105125898 + vertex 1012.59820096203 -110.000000000015 1112.88105125898 + endloop + endfacet + facet normal -0.275637355817007 0 0.961261695938317 + outer loop + vertex 1012.59820096203 -110.000000000015 1112.88105125898 + vertex 1012.59820096203 0 1112.88105125898 + vertex 1005.55321559063 0 1110.86093421099 + endloop + endfacet + facet normal -0.275637355817007 0 0.961261695938317 + outer loop + vertex 1012.59820096203 -110.000000000015 1112.88105125898 + vertex 1005.55321559063 0 1110.86093421099 + vertex 1005.55321559063 -110.000000000015 1110.86093421099 + endloop + endfacet + facet normal -0.342020143325659 0 0.939692620785912 + outer loop + vertex 1005.55321559063 -110.000000000015 1110.86093421099 + vertex 1005.55321559063 0 1110.86093421099 + vertex 998.666307691329 0 1108.35430472951 + endloop + endfacet + facet normal -0.342020143325659 0 0.939692620785912 + outer loop + vertex 1005.55321559063 -110.000000000015 1110.86093421099 + vertex 998.666307691329 0 1108.35430472951 + vertex 998.666307691329 -110.000000000015 1108.35430472951 + endloop + endfacet + facet normal -0.406736643075791 0 0.913545457642605 + outer loop + vertex 998.666307691329 -110.000000000015 1108.35430472951 + vertex 998.666307691329 0 1108.35430472951 + vertex 991.971029587147 0 1105.37337486141 + endloop + endfacet + facet normal -0.406736643075791 0 0.913545457642605 + outer loop + vertex 998.666307691329 -110.000000000015 1108.35430472951 + vertex 991.971029587147 0 1105.37337486141 + vertex 991.971029587147 -110.000000000015 1105.37337486141 + endloop + endfacet + facet normal -0.469471562785902 0 0.882947592858921 + outer loop + vertex 991.971029587147 -110.000000000015 1105.37337486141 + vertex 991.971029587147 0 1105.37337486141 + vertex 985.5 0 1101.93266739737 + endloop + endfacet + facet normal -0.469471562785902 0 0.882947592858921 + outer loop + vertex 991.971029587147 -110.000000000015 1105.37337486141 + vertex 985.5 0 1101.93266739737 + vertex 985.5 -110.000000000015 1101.93266739737 + endloop + endfacet + facet normal -0.529919264233199 0 0.84804809615643 + outer loop + vertex 985.5 -110.000000000015 1101.93266739737 + vertex 985.5 0 1101.93266739737 + vertex 979.284745135572 0 1098.04894511828 + endloop + endfacet + facet normal -0.529919264233199 0 0.84804809615643 + outer loop + vertex 985.5 -110.000000000015 1101.93266739737 + vertex 979.284745135572 0 1098.04894511828 + vertex 979.284745135572 -110.000000000015 1098.04894511828 + endloop + endfacet + facet normal -0.587785252292468 0 0.809016994374951 + outer loop + vertex 979.284745135572 -110.000000000015 1098.04894511828 + vertex 979.284745135572 0 1098.04894511828 + vertex 973.355545090806 0 1093.74112912871 + endloop + endfacet + facet normal -0.587785252292468 0 0.809016994374951 + outer loop + vertex 979.284745135572 -110.000000000015 1098.04894511828 + vertex 973.355545090806 0 1093.74112912871 + vertex 973.355545090806 -110.000000000015 1093.74112912871 + endloop + endfacet + facet normal -0.642787609686548 0 0.76604444311897 + outer loop + vertex 973.355545090806 -110.000000000015 1093.74112912871 + vertex 973.355545090806 0 1093.74112912871 + vertex 967.74128633232 0 1089.03020667513 + endloop + endfacet + facet normal -0.642787609686548 0 0.76604444311897 + outer loop + vertex 973.355545090806 -110.000000000015 1093.74112912871 + vertex 967.74128633232 0 1089.03020667513 + vertex 967.74128633232 -110.000000000015 1089.03020667513 + endloop + endfacet + facet normal -0.694658370459004 0 0.719339800338644 + outer loop + vertex 967.74128633232 -110.000000000015 1089.03020667513 + vertex 967.74128633232 0 1089.03020667513 + vertex 962.469320964442 0 1083.93912889819 + endloop + endfacet + facet normal -0.694658370459004 0 0.719339800338644 + outer loop + vertex 967.74128633232 -110.000000000015 1089.03020667513 + vertex 962.469320964442 0 1083.93912889819 + vertex 962.469320964442 -110.000000000015 1083.93912889819 + endloop + endfacet + facet normal -0.743144825477395 0 0.669130606358857 + outer loop + vertex 962.469320964442 -110.000000000015 1083.93912889819 + vertex 962.469320964442 0 1083.93912889819 + vertex 957.565333472507 0 1078.49269901709 + endloop + endfacet + facet normal -0.743144825477395 0 0.669130606358857 + outer loop + vertex 962.469320964442 -110.000000000015 1083.93912889819 + vertex 957.565333472507 0 1078.49269901709 + vertex 957.565333472507 -110.000000000015 1078.49269901709 + endloop + endfacet + facet normal -0.788010753606708 0 0.615661475325676 + outer loop + vertex 957.565333472507 -110.000000000015 1078.49269901709 + vertex 957.565333472507 0 1078.49269901709 + vertex 953.053215590631 0 1072.71745149071 + endloop + endfacet + facet normal -0.788010753606716 -7.98514399309252E-16 0.615661475325666 + outer loop + vertex 957.565333472507 -110.000000000015 1078.49269901709 + vertex 953.053215590631 0 1072.71745149071 + vertex 953.053215590631 -110.000000000015 1072.71745149071 + endloop + endfacet + facet normal -0.829037572555053 -8.36742364845315E-16 0.559192903470731 + outer loop + vertex 953.053215590631 -110.000000000015 1072.71745149071 + vertex 953.053215590631 0 1072.71745149071 + vertex 948.954949903575 0 1066.64152274449 + endloop + endfacet + facet normal -0.829037572555046 0 0.559192903470741 + outer loop + vertex 953.053215590631 -110.000000000015 1072.71745149071 + vertex 948.954949903575 0 1066.64152274449 + vertex 948.954949903575 -110.000000000015 1066.64152274449 + endloop + endfacet + facet normal -0.866025403784431 0 0.500000000000013 + outer loop + vertex 948.954949903575 -110.000000000015 1066.64152274449 + vertex 948.954949903575 0 1066.64152274449 + vertex 945.290502749813 0 1060.29451409252 + endloop + endfacet + facet normal -0.866025403784431 0 0.500000000000013 + outer loop + vertex 948.954949903575 -110.000000000015 1066.64152274449 + vertex 945.290502749813 0 1060.29451409252 + vertex 945.290502749813 -110.000000000015 1060.29451409252 + endloop + endfacet + facet normal -0.898794046299165 0 0.438371146789082 + outer loop + vertex 945.290502749813 -110.000000000015 1060.29451409252 + vertex 945.290502749813 0 1060.29451409252 + vertex 942.077726947527 0 1053.70734752296 + endloop + endfacet + facet normal -0.898794046299165 0 0.438371146789082 + outer loop + vertex 945.290502749813 -110.000000000015 1060.29451409252 + vertex 942.077726947527 0 1053.70734752296 + vertex 942.077726947527 -110.000000000015 1053.70734752296 + endloop + endfacet + facet normal -0.927183854566789 0 0.374606593415908 + outer loop + vertex 942.077726947527 -110.000000000015 1053.70734752296 + vertex 942.077726947527 0 1053.70734752296 + vertex 939.33227481748 0 1046.9121150492 + endloop + endfacet + facet normal -0.927183854566789 0 0.374606593415908 + outer loop + vertex 942.077726947527 -110.000000000015 1053.70734752296 + vertex 939.33227481748 0 1046.9121150492 + vertex 939.33227481748 -110.000000000015 1046.9121150492 + endloop + endfacet + facet normal -0.951056516295156 0 0.309016994374941 + outer loop + vertex 939.33227481748 -110.000000000015 1046.9121150492 + vertex 939.33227481748 0 1046.9121150492 + vertex 937.067521926477 0 1039.94192236079 + endloop + endfacet + facet normal -0.951056516295156 0 0.309016994374941 + outer loop + vertex 939.33227481748 -110.000000000015 1046.9121150492 + vertex 937.067521926477 0 1039.94192236079 + vertex 937.067521926477 -110.000000000015 1039.94192236079 + endloop + endfacet + facet normal -0.970295726275995 0 0.241921895599675 + outer loop + vertex 937.067521926477 -110.000000000015 1039.94192236079 + vertex 937.067521926477 0 1039.94192236079 + vertex 935.29450192295 0 1032.83072753586 + endloop + endfacet + facet normal -0.970295726275995 0 0.241921895599675 + outer loop + vertex 937.067521926477 -110.000000000015 1039.94192236079 + vertex 935.29450192295 0 1032.83072753586 + vertex 935.29450192295 -110.000000000015 1032.83072753586 + endloop + endfacet + facet normal -0.984807753012209 0 0.173648177666925 + outer loop + vertex 935.29450192295 -110.000000000015 1032.83072753586 + vertex 935.29450192295 0 1032.83072753586 + vertex 934.021852782135 0 1025.61317560081 + endloop + endfacet + facet normal -0.984807753012208 3.50926064959595E-16 0.173648177666931 + outer loop + vertex 935.29450192295 -110.000000000015 1032.83072753586 + vertex 934.021852782135 0 1025.61317560081 + vertex 934.021852782135 -110.000000000015 1025.61317560081 + endloop + endfacet + facet normal -0.994521895368274 2.1099983026985E-16 0.104528463267652 + outer loop + vertex 934.021852782135 -110.000000000015 1025.61317560081 + vertex 934.021852782135 0 1025.61317560081 + vertex 933.255774722718 0 1018.32442974313 + endloop + endfacet + facet normal -0.994521895368274 0 0.104528463267649 + outer loop + vertex 934.021852782135 -110.000000000015 1025.61317560081 + vertex 933.255774722718 0 1018.32442974313 + vertex 933.255774722718 -110.000000000015 1018.32442974313 + endloop + endfacet + facet normal -0.999390827019096 0 0.0348994967024972 + outer loop + vertex 933.255774722718 -110.000000000015 1018.32442974313 + vertex 933.255774722718 0 1018.32442974313 + vertex 933 0 1011 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1034.33555284624 -110.000000000015 906.063963162995 + vertex 1041.66444715376 -110.000000000015 906.063963162995 + vertex 1027.0245113569 -110.000000000015 906.575200986331 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1027.0245113569 -110.000000000015 906.575200986331 + vertex 1041.66444715376 -110.000000000015 906.063963162995 + vertex 1048.9754886431 -110.000000000015 906.575200986331 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1027.0245113569 -110.000000000015 906.575200986331 + vertex 1048.9754886431 -110.000000000015 906.575200986331 + vertex 1019.76694134497 -110.000000000015 907.595185933718 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1019.76694134497 -110.000000000015 907.595185933718 + vertex 1048.9754886431 -110.000000000015 906.575200986331 + vertex 1056.23305865503 -110.000000000015 907.595185933718 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1019.76694134497 -110.000000000015 907.595185933718 + vertex 1056.23305865503 -110.000000000015 907.595185933718 + vertex 1012.59820096203 -110.000000000015 909.118948741021 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1012.59820096203 -110.000000000015 909.118948741021 + vertex 1056.23305865503 -110.000000000015 907.595185933718 + vertex 1063.40179903797 -110.000000000015 909.118948741021 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1012.59820096203 -110.000000000015 909.118948741021 + vertex 1063.40179903797 -110.000000000015 909.118948741021 + vertex 1005.55321559063 -110.000000000015 911.139065789009 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1005.55321559063 -110.000000000015 911.139065789009 + vertex 1063.40179903797 -110.000000000015 909.118948741021 + vertex 1070.44678440937 -110.000000000015 911.139065789009 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1005.55321559063 -110.000000000015 911.139065789009 + vertex 1070.44678440937 -110.000000000015 911.139065789009 + vertex 998.666307691329 -110.000000000015 913.645695270487 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 998.666307691329 -110.000000000015 913.645695270487 + vertex 1070.44678440937 -110.000000000015 911.139065789009 + vertex 1077.33369230867 -110.000000000015 913.645695270487 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 998.666307691329 -110.000000000015 913.645695270487 + vertex 1077.33369230867 -110.000000000015 913.645695270487 + vertex 991.971029587147 -110.000000000015 916.626625138588 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 991.971029587147 -110.000000000015 916.626625138588 + vertex 1077.33369230867 -110.000000000015 913.645695270487 + vertex 1084.02897041285 -110.000000000015 916.626625138588 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 991.971029587147 -110.000000000015 916.626625138588 + vertex 1084.02897041285 -110.000000000015 916.626625138588 + vertex 985.5 -110.000000000015 920.067332602634 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 985.5 -110.000000000015 920.067332602634 + vertex 1084.02897041285 -110.000000000015 916.626625138588 + vertex 1090.5 -110.000000000015 920.067332602634 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 985.5 -110.000000000015 920.067332602634 + vertex 1090.5 -110.000000000015 920.067332602634 + vertex 979.284745135572 -110.000000000015 923.951054881721 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 979.284745135572 -110.000000000015 923.951054881721 + vertex 1090.5 -110.000000000015 920.067332602634 + vertex 1096.71525486443 -110.000000000015 923.951054881721 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 979.284745135572 -110.000000000015 923.951054881721 + vertex 1096.71525486443 -110.000000000015 923.951054881721 + vertex 973.355545090806 -110.000000000015 928.258870871294 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 973.355545090806 -110.000000000015 928.258870871294 + vertex 1096.71525486443 -110.000000000015 923.951054881721 + vertex 1102.64445490919 -110.000000000015 928.258870871294 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 973.355545090806 -110.000000000015 928.258870871294 + vertex 1102.64445490919 -110.000000000015 928.258870871294 + vertex 967.74128633232 -110.000000000015 932.969793324874 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 967.74128633232 -110.000000000015 932.969793324874 + vertex 1102.64445490919 -110.000000000015 928.258870871294 + vertex 1108.25871366768 -110.000000000015 932.969793324874 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 967.74128633232 -110.000000000015 932.969793324874 + vertex 1108.25871366768 -110.000000000015 932.969793324874 + vertex 962.469320964442 -110.000000000015 938.060871101805 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 962.469320964442 -110.000000000015 938.060871101805 + vertex 1108.25871366768 -110.000000000015 932.969793324874 + vertex 1113.53067903556 -110.000000000015 938.060871101805 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 962.469320964442 -110.000000000015 938.060871101805 + vertex 1113.53067903556 -110.000000000015 938.060871101805 + vertex 957.565333472507 -110.000000000015 943.507300982913 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 957.565333472507 -110.000000000015 943.507300982913 + vertex 1113.53067903556 -110.000000000015 938.060871101805 + vertex 1118.43466652749 -110.000000000015 943.507300982913 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 957.565333472507 -110.000000000015 943.507300982913 + vertex 1118.43466652749 -110.000000000015 943.507300982913 + vertex 953.053215590631 -110.000000000015 949.28254850929 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 953.053215590631 -110.000000000015 949.28254850929 + vertex 1118.43466652749 -110.000000000015 943.507300982913 + vertex 1122.94678440937 -110.000000000015 949.28254850929 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 953.053215590631 -110.000000000015 949.28254850929 + vertex 1122.94678440937 -110.000000000015 949.28254850929 + vertex 948.954949903575 -110.000000000015 955.358477255514 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 948.954949903575 -110.000000000015 955.358477255514 + vertex 1122.94678440937 -110.000000000015 949.28254850929 + vertex 1127.04505009642 -110.000000000015 955.358477255514 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 948.954949903575 -110.000000000015 955.358477255514 + vertex 1127.04505009642 -110.000000000015 955.358477255514 + vertex 945.290502749813 -110.000000000015 961.705485907482 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 945.290502749813 -110.000000000015 961.705485907482 + vertex 1127.04505009642 -110.000000000015 955.358477255514 + vertex 1130.70949725019 -110.000000000015 961.705485907482 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 945.290502749813 -110.000000000015 961.705485907482 + vertex 1130.70949725019 -110.000000000015 961.705485907482 + vertex 942.077726947527 -110.000000000015 968.292652477041 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 942.077726947527 -110.000000000015 968.292652477041 + vertex 1130.70949725019 -110.000000000015 961.705485907482 + vertex 1133.92227305247 -110.000000000015 968.292652477041 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 942.077726947527 -110.000000000015 968.292652477041 + vertex 1133.92227305247 -110.000000000015 968.292652477041 + vertex 939.33227481748 -110.000000000015 975.087884950805 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 939.33227481748 -110.000000000015 975.087884950805 + vertex 1133.92227305247 -110.000000000015 968.292652477041 + vertex 1136.66772518252 -110.000000000015 975.087884950805 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 939.33227481748 -110.000000000015 975.087884950805 + vertex 1136.66772518252 -110.000000000015 975.087884950805 + vertex 937.067521926477 -110.000000000015 982.058077639215 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 937.067521926477 -110.000000000015 982.058077639215 + vertex 1136.66772518252 -110.000000000015 975.087884950805 + vertex 1138.93247807352 -110.000000000015 982.058077639215 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 937.067521926477 -110.000000000015 982.058077639215 + vertex 1138.93247807352 -110.000000000015 982.058077639215 + vertex 935.29450192295 -110.000000000015 989.169272464135 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 935.29450192295 -110.000000000015 989.169272464135 + vertex 1138.93247807352 -110.000000000015 982.058077639215 + vertex 1140.70549807705 -110.000000000015 989.169272464135 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 935.29450192295 -110.000000000015 989.169272464135 + vertex 1140.70549807705 -110.000000000015 989.169272464135 + vertex 934.021852782135 -110.000000000015 996.386824399193 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 934.021852782135 -110.000000000015 996.386824399193 + vertex 1140.70549807705 -110.000000000015 989.169272464135 + vertex 1141.97814721786 -110.000000000015 996.386824399193 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 934.021852782135 -110.000000000015 996.386824399193 + vertex 1141.97814721786 -110.000000000015 996.386824399193 + vertex 933.255774722718 -110.000000000015 1003.67557025687 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 933.255774722718 -110.000000000015 1003.67557025687 + vertex 1141.97814721786 -110.000000000015 996.386824399193 + vertex 1142.74422527728 -110.000000000015 1003.67557025687 + endloop + endfacet + facet normal 0 -1 2.00083070477827E-12 + outer loop + vertex 933.255774722718 -110.000000000015 1003.67557025687 + vertex 1142.74422527728 -110.000000000015 1003.67557025687 + vertex 933.000000000001 -110 1011 + endloop + endfacet + facet normal -6.97854472621531E-14 -1 2.43696151771903E-15 + outer loop + vertex 933.000000000001 -110 1011 + vertex 1142.74422527728 -110.000000000015 1003.67557025687 + vertex 1143 -110.000000000015 1011 + endloop + endfacet + facet normal -6.97854472621531E-14 -1 -1.99839374326056E-12 + outer loop + vertex 933.000000000001 -110 1011 + vertex 1143 -110.000000000015 1011 + vertex 933.255774722718 -110.000000000015 1018.32442974313 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 933.255774722718 -110.000000000015 1018.32442974313 + vertex 1143 -110.000000000015 1011 + vertex 1142.74422527728 -110.000000000015 1018.32442974313 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 933.255774722718 -110.000000000015 1018.32442974313 + vertex 1142.74422527728 -110.000000000015 1018.32442974313 + vertex 934.021852782135 -110.000000000015 1025.61317560081 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 934.021852782135 -110.000000000015 1025.61317560081 + vertex 1142.74422527728 -110.000000000015 1018.32442974313 + vertex 1141.97814721786 -110.000000000015 1025.61317560081 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 934.021852782135 -110.000000000015 1025.61317560081 + vertex 1141.97814721786 -110.000000000015 1025.61317560081 + vertex 935.29450192295 -110.000000000015 1032.83072753586 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 935.29450192295 -110.000000000015 1032.83072753586 + vertex 1141.97814721786 -110.000000000015 1025.61317560081 + vertex 1140.70549807705 -110.000000000015 1032.83072753586 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 935.29450192295 -110.000000000015 1032.83072753586 + vertex 1140.70549807705 -110.000000000015 1032.83072753586 + vertex 937.067521926477 -110.000000000015 1039.94192236079 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 937.067521926477 -110.000000000015 1039.94192236079 + vertex 1140.70549807705 -110.000000000015 1032.83072753586 + vertex 1138.93247807352 -110.000000000015 1039.94192236079 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 937.067521926477 -110.000000000015 1039.94192236079 + vertex 1138.93247807352 -110.000000000015 1039.94192236079 + vertex 939.33227481748 -110.000000000015 1046.9121150492 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 939.33227481748 -110.000000000015 1046.9121150492 + vertex 1138.93247807352 -110.000000000015 1039.94192236079 + vertex 1136.66772518252 -110.000000000015 1046.9121150492 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 939.33227481748 -110.000000000015 1046.9121150492 + vertex 1136.66772518252 -110.000000000015 1046.9121150492 + vertex 942.077726947527 -110.000000000015 1053.70734752296 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 942.077726947527 -110.000000000015 1053.70734752296 + vertex 1136.66772518252 -110.000000000015 1046.9121150492 + vertex 1133.92227305247 -110.000000000015 1053.70734752296 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 942.077726947527 -110.000000000015 1053.70734752296 + vertex 1133.92227305247 -110.000000000015 1053.70734752296 + vertex 945.290502749813 -110.000000000015 1060.29451409252 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 945.290502749813 -110.000000000015 1060.29451409252 + vertex 1133.92227305247 -110.000000000015 1053.70734752296 + vertex 1130.70949725019 -110.000000000015 1060.29451409252 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 945.290502749813 -110.000000000015 1060.29451409252 + vertex 1130.70949725019 -110.000000000015 1060.29451409252 + vertex 948.954949903575 -110.000000000015 1066.64152274449 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 948.954949903575 -110.000000000015 1066.64152274449 + vertex 1130.70949725019 -110.000000000015 1060.29451409252 + vertex 1127.04505009642 -110.000000000015 1066.64152274449 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 948.954949903575 -110.000000000015 1066.64152274449 + vertex 1127.04505009642 -110.000000000015 1066.64152274449 + vertex 953.053215590631 -110.000000000015 1072.71745149071 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 953.053215590631 -110.000000000015 1072.71745149071 + vertex 1127.04505009642 -110.000000000015 1066.64152274449 + vertex 1122.94678440937 -110.000000000015 1072.71745149071 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 953.053215590631 -110.000000000015 1072.71745149071 + vertex 1122.94678440937 -110.000000000015 1072.71745149071 + vertex 957.565333472507 -110.000000000015 1078.49269901709 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 957.565333472507 -110.000000000015 1078.49269901709 + vertex 1122.94678440937 -110.000000000015 1072.71745149071 + vertex 1118.43466652749 -110.000000000015 1078.49269901709 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 957.565333472507 -110.000000000015 1078.49269901709 + vertex 1118.43466652749 -110.000000000015 1078.49269901709 + vertex 962.469320964442 -110.000000000015 1083.93912889819 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 962.469320964442 -110.000000000015 1083.93912889819 + vertex 1118.43466652749 -110.000000000015 1078.49269901709 + vertex 1113.53067903556 -110.000000000015 1083.93912889819 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 962.469320964442 -110.000000000015 1083.93912889819 + vertex 1113.53067903556 -110.000000000015 1083.93912889819 + vertex 967.74128633232 -110.000000000015 1089.03020667513 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 967.74128633232 -110.000000000015 1089.03020667513 + vertex 1113.53067903556 -110.000000000015 1083.93912889819 + vertex 1108.25871366768 -110.000000000015 1089.03020667513 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 967.74128633232 -110.000000000015 1089.03020667513 + vertex 1108.25871366768 -110.000000000015 1089.03020667513 + vertex 973.355545090806 -110.000000000015 1093.74112912871 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 973.355545090806 -110.000000000015 1093.74112912871 + vertex 1108.25871366768 -110.000000000015 1089.03020667513 + vertex 1102.64445490919 -110.000000000015 1093.74112912871 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 973.355545090806 -110.000000000015 1093.74112912871 + vertex 1102.64445490919 -110.000000000015 1093.74112912871 + vertex 979.284745135572 -110.000000000015 1098.04894511828 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 979.284745135572 -110.000000000015 1098.04894511828 + vertex 1102.64445490919 -110.000000000015 1093.74112912871 + vertex 1096.71525486443 -110.000000000015 1098.04894511828 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 979.284745135572 -110.000000000015 1098.04894511828 + vertex 1096.71525486443 -110.000000000015 1098.04894511828 + vertex 985.5 -110.000000000015 1101.93266739737 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 985.5 -110.000000000015 1101.93266739737 + vertex 1096.71525486443 -110.000000000015 1098.04894511828 + vertex 1090.5 -110.000000000015 1101.93266739737 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 985.5 -110.000000000015 1101.93266739737 + vertex 1090.5 -110.000000000015 1101.93266739737 + vertex 991.971029587147 -110.000000000015 1105.37337486141 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 991.971029587147 -110.000000000015 1105.37337486141 + vertex 1090.5 -110.000000000015 1101.93266739737 + vertex 1084.02897041285 -110.000000000015 1105.37337486141 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 991.971029587147 -110.000000000015 1105.37337486141 + vertex 1084.02897041285 -110.000000000015 1105.37337486141 + vertex 998.666307691329 -110.000000000015 1108.35430472951 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 998.666307691329 -110.000000000015 1108.35430472951 + vertex 1084.02897041285 -110.000000000015 1105.37337486141 + vertex 1077.33369230867 -110.000000000015 1108.35430472951 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 998.666307691329 -110.000000000015 1108.35430472951 + vertex 1077.33369230867 -110.000000000015 1108.35430472951 + vertex 1005.55321559063 -110.000000000015 1110.86093421099 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1005.55321559063 -110.000000000015 1110.86093421099 + vertex 1077.33369230867 -110.000000000015 1108.35430472951 + vertex 1070.44678440937 -110.000000000015 1110.86093421099 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1005.55321559063 -110.000000000015 1110.86093421099 + vertex 1070.44678440937 -110.000000000015 1110.86093421099 + vertex 1012.59820096203 -110.000000000015 1112.88105125898 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1012.59820096203 -110.000000000015 1112.88105125898 + vertex 1070.44678440937 -110.000000000015 1110.86093421099 + vertex 1063.40179903797 -110.000000000015 1112.88105125898 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1012.59820096203 -110.000000000015 1112.88105125898 + vertex 1063.40179903797 -110.000000000015 1112.88105125898 + vertex 1019.76694134497 -110.000000000015 1114.40481406628 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1019.76694134497 -110.000000000015 1114.40481406628 + vertex 1063.40179903797 -110.000000000015 1112.88105125898 + vertex 1056.23305865503 -110.000000000015 1114.40481406628 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1019.76694134497 -110.000000000015 1114.40481406628 + vertex 1056.23305865503 -110.000000000015 1114.40481406628 + vertex 1027.0245113569 -110.000000000015 1115.42479901367 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1027.0245113569 -110.000000000015 1115.42479901367 + vertex 1056.23305865503 -110.000000000015 1114.40481406628 + vertex 1048.9754886431 -110.000000000015 1115.42479901367 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1027.0245113569 -110.000000000015 1115.42479901367 + vertex 1048.9754886431 -110.000000000015 1115.42479901367 + vertex 1034.33555284624 -110.000000000015 1115.93603683701 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1034.33555284624 -110.000000000015 1115.93603683701 + vertex 1048.9754886431 -110.000000000015 1115.42479901367 + vertex 1041.66444715376 -110.000000000015 1115.93603683701 + endloop + endfacet + facet normal -0.999390827019099 -8.06937325319598E-15 0.0348994967024044 + outer loop + vertex 2875.32885321492 -110.000000000015 1001.41712395546 + vertex 2875 0 992 + vertex 2875 -110 992 + endloop + endfacet + facet normal -0.999390827019096 -8.06943059458748E-15 -0.034899496702499 + outer loop + vertex 2875 -110 992 + vertex 2875 0 992 + vertex 2875.32885321492 0 982.582876044543 + endloop + endfacet + facet normal -0.999390827019099 0 -0.0348994967024049 + outer loop + vertex 2875 -110 992 + vertex 2875.32885321492 0 982.582876044543 + vertex 2875.32885321492 -110.000000000015 982.582876044543 + endloop + endfacet + facet normal -0.994521895368271 0 -0.104528463267679 + outer loop + vertex 2875.32885321492 -110.000000000015 982.582876044543 + vertex 2875.32885321492 0 982.582876044543 + vertex 2876.31381071989 0 973.211631370391 + endloop + endfacet + facet normal -0.994521895368271 -1.06235102832078E-16 -0.10452846326768 + outer loop + vertex 2875.32885321492 -110.000000000015 982.582876044543 + vertex 2876.31381071989 0 973.211631370391 + vertex 2876.31381071989 -110.000000000015 973.211631370391 + endloop + endfacet + facet normal -0.984807753012211 -1.75262004572709E-16 -0.173648177666911 + outer loop + vertex 2876.31381071989 -110.000000000015 973.211631370391 + vertex 2876.31381071989 0 973.211631370391 + vertex 2877.95007390094 0 963.931921739603 + endloop + endfacet + facet normal -0.984807753012212 0 -0.173648177666909 + outer loop + vertex 2876.31381071989 -110.000000000015 973.211631370391 + vertex 2877.95007390094 0 963.931921739603 + vertex 2877.95007390094 -110.000000000015 963.931921739603 + endloop + endfacet + facet normal -0.970295726275994 0 -0.241921895599677 + outer loop + vertex 2877.95007390094 -110.000000000015 963.931921739603 + vertex 2877.95007390094 0 963.931921739603 + vertex 2880.22967104833 0 954.788956964705 + endloop + endfacet + facet normal -0.970295726275994 0 -0.241921895599677 + outer loop + vertex 2877.95007390094 -110.000000000015 963.931921739603 + vertex 2880.22967104833 0 954.788956964705 + vertex 2880.22967104833 -110.000000000015 954.788956964705 + endloop + endfacet + facet normal -0.951056516295164 0 -0.309016994374916 + outer loop + vertex 2880.22967104833 -110.000000000015 954.788956964705 + vertex 2880.22967104833 0 954.788956964705 + vertex 2883.1414961939 0 945.827280651035 + endloop + endfacet + facet normal -0.951056516295164 0 -0.309016994374916 + outer loop + vertex 2880.22967104833 -110.000000000015 954.788956964705 + vertex 2883.1414961939 0 945.827280651035 + vertex 2883.1414961939 -110.000000000015 945.827280651035 + endloop + endfacet + facet normal -0.927183854566774 0 -0.374606593415946 + outer loop + vertex 2883.1414961939 -110.000000000015 945.827280651035 + vertex 2883.1414961939 0 945.827280651035 + vertex 2886.67136321825 0 937.090553184767 + endloop + endfacet + facet normal -0.927183854566774 0 -0.374606593415946 + outer loop + vertex 2883.1414961939 -110.000000000015 945.827280651035 + vertex 2886.67136321825 0 937.090553184767 + vertex 2886.67136321825 -110.000000000015 937.090553184767 + endloop + endfacet + facet normal -0.898794046299183 0 -0.438371146789045 + outer loop + vertex 2886.67136321825 -110.000000000015 937.090553184767 + vertex 2886.67136321825 0 937.090553184767 + vertex 2890.80207496404 0 928.621339023905 + endloop + endfacet + facet normal -0.898794046299183 0 -0.438371146789045 + outer loop + vertex 2886.67136321825 -110.000000000015 937.090553184767 + vertex 2890.80207496404 0 928.621339023905 + vertex 2890.80207496404 -110.000000000015 928.621339023905 + endloop + endfacet + facet normal -0.866025403784419 0 -0.500000000000034 + outer loop + vertex 2890.80207496404 -110.000000000015 928.621339023905 + vertex 2890.80207496404 0 928.621339023905 + vertex 2895.51350701888 0 920.460899328517 + endloop + endfacet + facet normal -0.866025403784419 0 -0.500000000000034 + outer loop + vertex 2890.80207496404 -110.000000000015 928.621339023905 + vertex 2895.51350701888 0 920.460899328517 + vertex 2895.51350701888 -110.000000000015 920.460899328517 + endloop + endfacet + facet normal -0.829037572555056 0 -0.559192903470725 + outer loop + vertex 2895.51350701888 -110.000000000015 920.460899328517 + vertex 2895.51350701888 0 920.460899328517 + vertex 2900.78270575938 0 912.648990940516 + endloop + endfacet + facet normal -0.829037572555056 0 -0.559192903470725 + outer loop + vertex 2895.51350701888 -110.000000000015 920.460899328517 + vertex 2900.78270575938 0 912.648990940516 + vertex 2900.78270575938 -110.000000000015 912.648990940516 + endloop + endfacet + facet normal -0.788010753606725 0 -0.615661475325654 + outer loop + vertex 2900.78270575938 -110.000000000015 912.648990940516 + vertex 2900.78270575938 0 912.648990940516 + vertex 2906.58400017894 0 905.223672692317 + endloop + endfacet + facet normal -0.788010753606725 0 -0.615661475325654 + outer loop + vertex 2900.78270575938 -110.000000000015 912.648990940516 + vertex 2906.58400017894 0 905.223672692317 + vertex 2906.58400017894 -110.000000000015 905.223672692317 + endloop + endfacet + facet normal -0.74314482547739 0 -0.669130606358863 + outer loop + vertex 2906.58400017894 -110.000000000015 905.223672692317 + vertex 2906.58400017894 0 905.223672692317 + vertex 2912.88912695428 0 898.221119988035 + endloop + endfacet + facet normal -0.743144825477385 -6.73367113335628E-16 -0.669130606358868 + outer loop + vertex 2906.58400017894 -110.000000000015 905.223672692317 + vertex 2912.88912695428 0 898.221119988035 + vertex 2912.88912695428 -110.000000000015 898.221119988036 + endloop + endfacet + facet normal -0.694658370458991 -7.26025098968305E-16 -0.719339800338658 + outer loop + vertex 2912.88912695428 -110.000000000015 898.221119988036 + vertex 2912.88912695428 0 898.221119988035 + vertex 2919.66736814155 0 891.675448560552 + endloop + endfacet + facet normal -0.694658370458997 0 -0.719339800338652 + outer loop + vertex 2912.88912695428 -110.000000000015 898.221119988036 + vertex 2919.66736814155 0 891.675448560552 + vertex 2919.66736814155 -110.000000000015 891.675448560552 + endloop + endfacet + facet normal -0.642787609686553 0 -0.766044443118967 + outer loop + vertex 2919.66736814155 -110.000000000015 891.675448560552 + vertex 2919.66736814155 0 891.675448560552 + vertex 2926.88570083104 0 885.618548263093 + endloop + endfacet + facet normal -0.642787609686529 -2.59540528149749E-15 -0.766044443118986 + outer loop + vertex 2919.66736814155 -110.000000000015 891.675448560552 + vertex 2926.88570083104 0 885.618548263093 + vertex 2926.88570083104 -110.000000000015 885.618548263093 + endloop + endfacet + facet normal -0.587785252292466 -2.37299171138224E-15 -0.809016994374953 + outer loop + vertex 2926.88570083104 -110.000000000015 885.618548263093 + vertex 2926.88570083104 0 885.618548263093 + vertex 2934.50895803145 0 880.07992770507 + endloop + endfacet + facet normal -0.587785252292489 0 -0.809016994374936 + outer loop + vertex 2926.88570083104 -110.000000000015 885.618548263093 + vertex 2934.50895803145 0 880.07992770507 + vertex 2934.50895803145 -110.000000000015 880.07992770507 + endloop + endfacet + facet normal -0.529919264233201 0 -0.848048096156429 + outer loop + vertex 2934.50895803145 -110.000000000015 880.07992770507 + vertex 2934.50895803145 0 880.07992770507 + vertex 2942.5 0 875.086570489101 + endloop + endfacet + facet normal -0.529919264233201 0 -0.848048096156429 + outer loop + vertex 2934.50895803145 -110.000000000015 880.07992770507 + vertex 2942.5 0 875.086570489101 + vertex 2942.5 -110.000000000015 875.086570489101 + endloop + endfacet + facet normal -0.469471562785884 0 -0.88294759285893 + outer loop + vertex 2942.5 -110.000000000015 875.086570489101 + vertex 2942.5 0 875.086570489101 + vertex 2950.81989518347 0 870.662803749613 + endloop + endfacet + facet normal -0.469471562785884 0 -0.88294759285893 + outer loop + vertex 2942.5 -110.000000000015 875.086570489101 + vertex 2950.81989518347 0 870.662803749613 + vertex 2950.81989518347 -110.000000000015 870.662803749613 + endloop + endfacet + facet normal -0.406736643075812 0 -0.913545457642596 + outer loop + vertex 2950.81989518347 -110.000000000015 870.662803749613 + vertex 2950.81989518347 0 870.662803749613 + vertex 2959.42810988885 0 866.830179633484 + endloop + endfacet + facet normal -0.406736643075812 0 -0.913545457642596 + outer loop + vertex 2950.81989518347 -110.000000000015 870.662803749613 + vertex 2959.42810988885 0 866.830179633484 + vertex 2959.42810988885 -110.000000000015 866.830179633484 + endloop + endfacet + facet normal -0.342020143325669 0 -0.939692620785908 + outer loop + vertex 2959.42810988885 -110.000000000015 866.830179633484 + vertex 2959.42810988885 0 866.830179633484 + vertex 2968.28270575938 0 863.607370300154 + endloop + endfacet + facet normal -0.342020143325658 -9.47943994501621E-16 -0.939692620785912 + outer loop + vertex 2959.42810988885 -110.000000000015 866.830179633484 + vertex 2968.28270575938 0 863.607370300154 + vertex 2968.28270575938 -110.000000000015 863.607370300155 + endloop + endfacet + facet normal -0.275637355816993 -9.70195334109826E-16 -0.961261695938321 + outer loop + vertex 2968.28270575938 -110.000000000015 863.607370300155 + vertex 2968.28270575938 0 863.607370300154 + vertex 2977.34054409404 0 861.010076952741 + endloop + endfacet + facet normal -0.275637355817004 0 -0.961261695938318 + outer loop + vertex 2968.28270575938 -110.000000000015 863.607370300155 + vertex 2977.34054409404 0 861.010076952741 + vertex 2977.34054409404 -110.000000000015 861.010076952741 + endloop + endfacet + facet normal -0.207911690817763 0 -0.978147600733805 + outer loop + vertex 2977.34054409404 -110.000000000015 861.010076952741 + vertex 2977.34054409404 0 861.010076952741 + vertex 2986.55749601496 0 859.050953343352 + endloop + endfacet + facet normal -0.207911690817763 0 -0.978147600733805 + outer loop + vertex 2977.34054409404 -110.000000000015 861.010076952741 + vertex 2986.55749601496 0 859.050953343352 + vertex 2986.55749601496 -110.000000000015 859.050953343352 + endloop + endfacet + facet normal -0.139173100960063 0 -0.990268068741571 + outer loop + vertex 2986.55749601496 -110.000000000015 859.050953343352 + vertex 2986.55749601496 0 859.050953343352 + vertex 2995.88865745887 0 857.739544125283 + endloop + endfacet + facet normal -0.139173100960063 0 -0.990268068741571 + outer loop + vertex 2986.55749601496 -110.000000000015 859.050953343352 + vertex 2995.88865745887 0 857.739544125283 + vertex 2995.88865745887 -110.000000000015 857.739544125283 + endloop + endfacet + facet normal -0.0697564737441295 0 -0.997564050259824 + outer loop + vertex 2995.88865745887 -110.000000000015 857.739544125283 + vertex 2995.88865745887 0 857.739544125283 + vertex 3005.28856794516 0 857.082238352422 + endloop + endfacet + facet normal -0.0697564737441295 0 -0.997564050259824 + outer loop + vertex 2995.88865745887 -110.000000000015 857.739544125283 + vertex 3005.28856794516 0 857.082238352422 + vertex 3005.28856794516 -110.000000000015 857.082238352422 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 3005.28856794516 -110.000000000015 857.082238352422 + vertex 3005.28856794516 0 857.082238352422 + vertex 3014.71143205484 0 857.082238352422 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 3005.28856794516 -110.000000000015 857.082238352422 + vertex 3014.71143205484 0 857.082238352422 + vertex 3014.71143205484 -110.000000000015 857.082238352422 + endloop + endfacet + facet normal 0.0697564737441295 0 -0.997564050259824 + outer loop + vertex 3014.71143205484 -110.000000000015 857.082238352422 + vertex 3014.71143205484 0 857.082238352422 + vertex 3024.11134254113 0 857.739544125283 + endloop + endfacet + facet normal 0.0697564737441295 0 -0.997564050259824 + outer loop + vertex 3014.71143205484 -110.000000000015 857.082238352422 + vertex 3024.11134254113 0 857.739544125283 + vertex 3024.11134254113 -110.000000000015 857.739544125283 + endloop + endfacet + facet normal 0.139173100960063 0 -0.990268068741571 + outer loop + vertex 3024.11134254113 -110.000000000015 857.739544125283 + vertex 3024.11134254113 0 857.739544125283 + vertex 3033.44250398504 0 859.050953343352 + endloop + endfacet + facet normal 0.139173100960063 0 -0.990268068741571 + outer loop + vertex 3024.11134254113 -110.000000000015 857.739544125283 + vertex 3033.44250398504 0 859.050953343352 + vertex 3033.44250398504 -110.000000000015 859.050953343352 + endloop + endfacet + facet normal 0.207911690817763 0 -0.978147600733805 + outer loop + vertex 3033.44250398504 -110.000000000015 859.050953343352 + vertex 3033.44250398504 0 859.050953343352 + vertex 3042.65945590595 0 861.010076952741 + endloop + endfacet + facet normal 0.207911690817763 0 -0.978147600733805 + outer loop + vertex 3033.44250398504 -110.000000000015 859.050953343352 + vertex 3042.65945590595 0 861.010076952741 + vertex 3042.65945590595 -110.000000000015 861.010076952741 + endloop + endfacet + facet normal 0.275637355817004 0 -0.961261695938318 + outer loop + vertex 3042.65945590595 -110.000000000015 861.010076952741 + vertex 3042.65945590595 0 861.010076952741 + vertex 3051.71729424062 0 863.607370300155 + endloop + endfacet + facet normal 0.275637355816993 9.67556628870598E-16 -0.961261695938321 + outer loop + vertex 3042.65945590595 -110.000000000015 861.010076952741 + vertex 3051.71729424062 0 863.607370300155 + vertex 3051.71729424062 -110.000000000015 863.607370300154 + endloop + endfacet + facet normal 0.342020143325658 9.48425803333398E-16 -0.939692620785912 + outer loop + vertex 3051.71729424062 -110.000000000015 863.607370300154 + vertex 3051.71729424062 0 863.607370300155 + vertex 3060.57189011115 0 866.830179633484 + endloop + endfacet + facet normal 0.342020143325669 0 -0.939692620785908 + outer loop + vertex 3051.71729424062 -110.000000000015 863.607370300154 + vertex 3060.57189011115 0 866.830179633484 + vertex 3060.57189011115 -110.000000000015 866.830179633484 + endloop + endfacet + facet normal 0.406736643075812 0 -0.913545457642596 + outer loop + vertex 3060.57189011115 -110.000000000015 866.830179633484 + vertex 3060.57189011115 0 866.830179633484 + vertex 3069.18010481652 0 870.662803749613 + endloop + endfacet + facet normal 0.406736643075812 0 -0.913545457642596 + outer loop + vertex 3060.57189011115 -110.000000000015 866.830179633484 + vertex 3069.18010481652 0 870.662803749613 + vertex 3069.18010481652 -110.000000000015 870.662803749613 + endloop + endfacet + facet normal 0.469471562785884 0 -0.88294759285893 + outer loop + vertex 3069.18010481652 -110.000000000015 870.662803749613 + vertex 3069.18010481652 0 870.662803749613 + vertex 3077.5 0 875.086570489101 + endloop + endfacet + facet normal 0.469471562785884 0 -0.88294759285893 + outer loop + vertex 3069.18010481652 -110.000000000015 870.662803749613 + vertex 3077.5 0 875.086570489101 + vertex 3077.5 -110.000000000015 875.086570489101 + endloop + endfacet + facet normal 0.529919264233192 0 -0.848048096156434 + outer loop + vertex 3077.5 -110.000000000015 875.086570489101 + vertex 3077.5 0 875.086570489101 + vertex 3085.49104196855 0 880.07992770507 + endloop + endfacet + facet normal 0.529919264233201 -8.56418367446274E-16 -0.848048096156429 + outer loop + vertex 3077.5 -110.000000000015 875.086570489101 + vertex 3085.49104196855 0 880.07992770507 + vertex 3085.49104196855 -110.000000000015 880.07992770507 + endloop + endfacet + facet normal 0.587785252292496 -8.16535722243609E-16 -0.809016994374931 + outer loop + vertex 3085.49104196855 -110.000000000015 880.07992770507 + vertex 3085.49104196855 0 880.07992770507 + vertex 3093.11429916896 0 885.618548263093 + endloop + endfacet + facet normal 0.587785252292489 0 -0.809016994374936 + outer loop + vertex 3085.49104196855 -110.000000000015 880.07992770507 + vertex 3093.11429916896 0 885.618548263093 + vertex 3093.11429916896 -110.000000000015 885.618548263093 + endloop + endfacet + facet normal 0.642787609686529 0 -0.766044443118986 + outer loop + vertex 3093.11429916896 -110.000000000015 885.618548263093 + vertex 3093.11429916896 0 885.618548263093 + vertex 3100.33263185845 0 891.675448560552 + endloop + endfacet + facet normal 0.642787609686529 0 -0.766044443118986 + outer loop + vertex 3093.11429916896 -110.000000000015 885.618548263093 + vertex 3100.33263185845 0 891.675448560552 + vertex 3100.33263185845 -110.000000000015 891.675448560552 + endloop + endfacet + facet normal 0.694658370458997 0 -0.719339800338652 + outer loop + vertex 3100.33263185845 -110.000000000015 891.675448560552 + vertex 3100.33263185845 0 891.675448560552 + vertex 3107.11087304572 0 898.221119988036 + endloop + endfacet + facet normal 0.694658370458997 0 -0.719339800338652 + outer loop + vertex 3100.33263185845 -110.000000000015 891.675448560552 + vertex 3107.11087304572 0 898.221119988036 + vertex 3107.11087304572 -110.000000000015 898.221119988036 + endloop + endfacet + facet normal 0.743144825477385 0 -0.669130606358868 + outer loop + vertex 3107.11087304572 -110.000000000015 898.221119988036 + vertex 3107.11087304572 0 898.221119988036 + vertex 3113.41599982106 0 905.223672692317 + endloop + endfacet + facet normal 0.743144825477385 0 -0.669130606358868 + outer loop + vertex 3107.11087304572 -110.000000000015 898.221119988036 + vertex 3113.41599982106 0 905.223672692317 + vertex 3113.41599982106 -110.000000000015 905.223672692317 + endloop + endfacet + facet normal 0.788010753606725 0 -0.615661475325654 + outer loop + vertex 3113.41599982106 -110.000000000015 905.223672692317 + vertex 3113.41599982106 0 905.223672692317 + vertex 3119.21729424062 0 912.648990940516 + endloop + endfacet + facet normal 0.788010753606725 0 -0.615661475325654 + outer loop + vertex 3113.41599982106 -110.000000000015 905.223672692317 + vertex 3119.21729424062 0 912.648990940516 + vertex 3119.21729424062 -110.000000000015 912.648990940516 + endloop + endfacet + facet normal 0.829037572555056 0 -0.559192903470725 + outer loop + vertex 3119.21729424062 -110.000000000015 912.648990940516 + vertex 3119.21729424062 0 912.648990940516 + vertex 3124.48649298112 0 920.460899328517 + endloop + endfacet + facet normal 0.829037572555056 0 -0.559192903470725 + outer loop + vertex 3119.21729424062 -110.000000000015 912.648990940516 + vertex 3124.48649298112 0 920.460899328517 + vertex 3124.48649298112 -110.000000000015 920.460899328517 + endloop + endfacet + facet normal 0.866025403784439 0 -0.499999999999999 + outer loop + vertex 3124.48649298112 -110.000000000015 920.460899328517 + vertex 3124.48649298112 0 920.460899328517 + vertex 3129.19792503595 0 928.621339023905 + endloop + endfacet + facet normal 0.866025403784419 3.4975864624714E-15 -0.500000000000034 + outer loop + vertex 3124.48649298112 -110.000000000015 920.460899328517 + vertex 3129.19792503595 0 928.621339023905 + vertex 3129.19792503595 -110.000000000015 928.621339023905 + endloop + endfacet + facet normal 0.898794046299164 3.62858852580803E-15 -0.438371146789083 + outer loop + vertex 3129.19792503595 -110.000000000015 928.621339023905 + vertex 3129.19792503595 0 928.621339023905 + vertex 3133.32863678175 0 937.090553184767 + endloop + endfacet + facet normal 0.898794046299183 0 -0.438371146789045 + outer loop + vertex 3129.19792503595 -110.000000000015 928.621339023905 + vertex 3133.32863678175 0 937.090553184767 + vertex 3133.32863678175 -110.000000000015 937.090553184767 + endloop + endfacet + facet normal 0.927183854566774 0 -0.374606593415946 + outer loop + vertex 3133.32863678175 -110.000000000015 937.090553184767 + vertex 3133.32863678175 0 937.090553184767 + vertex 3136.8585038061 0 945.827280651035 + endloop + endfacet + facet normal 0.927183854566789 -3.36683556667819E-15 -0.374606593415909 + outer loop + vertex 3133.32863678175 -110.000000000015 937.090553184767 + vertex 3136.8585038061 0 945.827280651035 + vertex 3136.8585038061 -110.000000000015 945.827280651035 + endloop + endfacet + facet normal 0.951056516295164 -3.52769235116974E-15 -0.309016994374916 + outer loop + vertex 3136.8585038061 -110.000000000015 945.827280651035 + vertex 3136.8585038061 0 945.827280651035 + vertex 3139.77032895167 0 954.788956964705 + endloop + endfacet + facet normal 0.95105651629515 3.10533377509147E-16 -0.309016994374958 + outer loop + vertex 3136.8585038061 -110.000000000015 945.827280651035 + vertex 3139.77032895167 0 954.788956964705 + vertex 3139.77032895167 -110.000000000015 954.788956964705 + endloop + endfacet + facet normal 0.970295726275994 2.44170235141536E-16 -0.241921895599677 + outer loop + vertex 3139.77032895167 -110.000000000015 954.788956964705 + vertex 3139.77032895167 0 954.788956964705 + vertex 3142.04992609906 0 963.931921739603 + endloop + endfacet + facet normal 0.970295726275995 0 -0.241921895599675 + outer loop + vertex 3139.77032895167 -110.000000000015 954.788956964705 + vertex 3142.04992609906 0 963.931921739603 + vertex 3142.04992609906 -110.000000000015 963.931921739603 + endloop + endfacet + facet normal 0.984807753012211 0 -0.173648177666911 + outer loop + vertex 3142.04992609906 -110.000000000015 963.931921739603 + vertex 3142.04992609906 0 963.931921739603 + vertex 3143.68618928011 0 973.211631370391 + endloop + endfacet + facet normal 0.984807753012212 -1.74879323123573E-16 -0.173648177666909 + outer loop + vertex 3142.04992609906 -110.000000000015 963.931921739603 + vertex 3143.68618928011 0 973.211631370391 + vertex 3143.68618928011 -110.000000000015 973.211631370391 + endloop + endfacet + facet normal 0.994521895368271 -1.05499915134951E-16 -0.104528463267679 + outer loop + vertex 3143.68618928011 -110.000000000015 973.211631370391 + vertex 3143.68618928011 0 973.211631370391 + vertex 3144.67114678508 0 982.582876044543 + endloop + endfacet + facet normal 0.994521895368271 0 -0.10452846326768 + outer loop + vertex 3143.68618928011 -110.000000000015 973.211631370391 + vertex 3144.67114678508 0 982.582876044543 + vertex 3144.67114678508 -110.000000000015 982.582876044543 + endloop + endfacet + facet normal 0.999390827019096 0 -0.034899496702499 + outer loop + vertex 3144.67114678508 -110.000000000015 982.582876044543 + vertex 3144.67114678508 0 982.582876044543 + vertex 3145 0 992 + endloop + endfacet + facet normal 0.999390827019096 0 -0.034899496702499 + outer loop + vertex 3144.67114678508 -110.000000000015 982.582876044543 + vertex 3145 0 992 + vertex 3145 -110.000000000015 992 + endloop + endfacet + facet normal 0.999390827019096 0 0.0348994967024986 + outer loop + vertex 3145 -110.000000000015 992 + vertex 3145 0 992 + vertex 3144.67114678508 0 1001.41712395546 + endloop + endfacet + facet normal 0.999390827019096 -7.02786064889135E-17 0.0348994967024994 + outer loop + vertex 3145 -110.000000000015 992 + vertex 3144.67114678508 0 1001.41712395546 + vertex 3144.67114678508 -110.000000000015 1001.41712395546 + endloop + endfacet + facet normal 0.994521895368271 -2.10999830269905E-16 0.10452846326768 + outer loop + vertex 3144.67114678508 -110.000000000015 1001.41712395546 + vertex 3144.67114678508 0 1001.41712395546 + vertex 3143.68618928011 0 1010.78836862961 + endloop + endfacet + facet normal 0.994521895368271 0 0.104528463267677 + outer loop + vertex 3144.67114678508 -110.000000000015 1001.41712395546 + vertex 3143.68618928011 0 1010.78836862961 + vertex 3143.68618928011 -110.000000000015 1010.78836862961 + endloop + endfacet + facet normal 0.984807753012211 0 0.173648177666911 + outer loop + vertex 3143.68618928011 -110.000000000015 1010.78836862961 + vertex 3143.68618928011 0 1010.78836862961 + vertex 3142.04992609906 0 1020.0680782604 + endloop + endfacet + facet normal 0.984807753012211 0 0.173648177666911 + outer loop + vertex 3143.68618928011 -110.000000000015 1010.78836862961 + vertex 3142.04992609906 0 1020.0680782604 + vertex 3142.04992609906 -110.000000000015 1020.0680782604 + endloop + endfacet + facet normal 0.970295726275994 0 0.241921895599677 + outer loop + vertex 3142.04992609906 -110.000000000015 1020.0680782604 + vertex 3142.04992609906 0 1020.0680782604 + vertex 3139.77032895167 0 1029.21104303529 + endloop + endfacet + facet normal 0.970295726275994 0 0.241921895599677 + outer loop + vertex 3142.04992609906 -110.000000000015 1020.0680782604 + vertex 3139.77032895167 0 1029.21104303529 + vertex 3139.77032895167 -110.000000000015 1029.21104303529 + endloop + endfacet + facet normal 0.95105651629515 0 0.309016994374958 + outer loop + vertex 3139.77032895167 -110.000000000015 1029.21104303529 + vertex 3139.77032895167 0 1029.21104303529 + vertex 3136.8585038061 0 1038.17271934897 + endloop + endfacet + facet normal 0.951056516295164 3.84080756392898E-15 0.309016994374916 + outer loop + vertex 3139.77032895167 -110.000000000015 1029.21104303529 + vertex 3136.8585038061 0 1038.17271934897 + vertex 3136.8585038061 -110.000000000015 1038.17271934897 + endloop + endfacet + facet normal 0.92718385456679 3.74320313963861E-15 0.374606593415905 + outer loop + vertex 3136.8585038061 -110.000000000015 1038.17271934897 + vertex 3136.8585038061 0 1038.17271934897 + vertex 3133.32863678175 0 1046.90944681523 + endloop + endfacet + facet normal 0.927183854566774 0 0.374606593415946 + outer loop + vertex 3136.8585038061 -110.000000000015 1038.17271934897 + vertex 3133.32863678175 0 1046.90944681523 + vertex 3133.32863678175 -110.000000000015 1046.90944681523 + endloop + endfacet + facet normal 0.898794046299183 0 0.438371146789045 + outer loop + vertex 3133.32863678175 -110.000000000015 1046.90944681523 + vertex 3133.32863678175 0 1046.90944681523 + vertex 3129.19792503595 0 1055.3786609761 + endloop + endfacet + facet normal 0.898794046299164 -3.62833735826478E-15 0.438371146789083 + outer loop + vertex 3133.32863678175 -110.000000000015 1046.90944681523 + vertex 3129.19792503595 0 1055.3786609761 + vertex 3129.19792503595 -110.000000000015 1055.3786609761 + endloop + endfacet + facet normal 0.866025403784419 -3.49629579342412E-15 0.500000000000034 + outer loop + vertex 3129.19792503595 -110.000000000015 1055.3786609761 + vertex 3129.19792503595 0 1055.3786609761 + vertex 3124.48649298112 0 1063.53910067148 + endloop + endfacet + facet normal 0.866025403784439 0 0.499999999999999 + outer loop + vertex 3129.19792503595 -110.000000000015 1055.3786609761 + vertex 3124.48649298112 0 1063.53910067148 + vertex 3124.48649298112 -110.000000000015 1063.53910067148 + endloop + endfacet + facet normal 0.829037572555056 0 0.559192903470725 + outer loop + vertex 3124.48649298112 -110.000000000015 1063.53910067148 + vertex 3124.48649298112 0 1063.53910067148 + vertex 3119.21729424062 0 1071.35100905948 + endloop + endfacet + facet normal 0.829037572555056 0 0.559192903470725 + outer loop + vertex 3124.48649298112 -110.000000000015 1063.53910067148 + vertex 3119.21729424062 0 1071.35100905948 + vertex 3119.21729424062 -110.000000000015 1071.35100905948 + endloop + endfacet + facet normal 0.788010753606725 0 0.615661475325654 + outer loop + vertex 3119.21729424062 -110.000000000015 1071.35100905948 + vertex 3119.21729424062 0 1071.35100905948 + vertex 3113.41599982106 0 1078.77632730768 + endloop + endfacet + facet normal 0.788010753606725 0 0.615661475325654 + outer loop + vertex 3119.21729424062 -110.000000000015 1071.35100905948 + vertex 3113.41599982106 0 1078.77632730768 + vertex 3113.41599982106 -110.000000000015 1078.77632730768 + endloop + endfacet + facet normal 0.74314482547739 0 0.669130606358863 + outer loop + vertex 3113.41599982106 -110.000000000015 1078.77632730768 + vertex 3113.41599982106 0 1078.77632730768 + vertex 3107.11087304572 0 1085.77888001196 + endloop + endfacet + facet normal 0.74314482547739 0 0.669130606358863 + outer loop + vertex 3113.41599982106 -110.000000000015 1078.77632730768 + vertex 3107.11087304572 0 1085.77888001196 + vertex 3107.11087304572 -110.000000000015 1085.77888001196 + endloop + endfacet + facet normal 0.694658370458984 0 0.719339800338664 + outer loop + vertex 3107.11087304572 -110.000000000015 1085.77888001196 + vertex 3107.11087304572 0 1085.77888001196 + vertex 3100.33263185845 0 1092.32455143945 + endloop + endfacet + facet normal 0.694658370458984 0 0.719339800338664 + outer loop + vertex 3107.11087304572 -110.000000000015 1085.77888001196 + vertex 3100.33263185845 0 1092.32455143945 + vertex 3100.33263185845 -110.000000000015 1092.32455143945 + endloop + endfacet + facet normal 0.642787609686536 0 0.766044443118981 + outer loop + vertex 3100.33263185845 -110.000000000015 1092.32455143945 + vertex 3100.33263185845 0 1092.32455143945 + vertex 3093.11429916896 0 1098.38145173691 + endloop + endfacet + facet normal 0.642787609686536 0 0.766044443118981 + outer loop + vertex 3100.33263185845 -110.000000000015 1092.32455143945 + vertex 3093.11429916896 0 1098.38145173691 + vertex 3093.11429916896 -110.000000000015 1098.38145173691 + endloop + endfacet + facet normal 0.587785252292496 0 0.809016994374931 + outer loop + vertex 3093.11429916896 -110.000000000015 1098.38145173691 + vertex 3093.11429916896 0 1098.38145173691 + vertex 3085.49104196855 0 1103.92007229493 + endloop + endfacet + facet normal 0.587785252292496 0 0.809016994374931 + outer loop + vertex 3093.11429916896 -110.000000000015 1098.38145173691 + vertex 3085.49104196855 0 1103.92007229493 + vertex 3085.49104196855 -110.000000000015 1103.92007229493 + endloop + endfacet + facet normal 0.529919264233201 0 0.848048096156429 + outer loop + vertex 3085.49104196855 -110.000000000015 1103.92007229493 + vertex 3085.49104196855 0 1103.92007229493 + vertex 3077.5 0 1108.9134295109 + endloop + endfacet + facet normal 0.529919264233184 -1.71283673489257E-15 0.848048096156439 + outer loop + vertex 3085.49104196855 -110.000000000015 1103.92007229493 + vertex 3077.5 0 1108.9134295109 + vertex 3077.5 -110.000000000015 1108.9134295109 + endloop + endfacet + facet normal 0.469471562785875 -1.78230681296222E-15 0.882947592858935 + outer loop + vertex 3077.5 -110.000000000015 1108.9134295109 + vertex 3077.5 0 1108.9134295109 + vertex 3069.18010481652 0 1113.33719625039 + endloop + endfacet + facet normal 0.469471562785893 0 0.882947592858925 + outer loop + vertex 3077.5 -110.000000000015 1108.9134295109 + vertex 3069.18010481652 0 1113.33719625039 + vertex 3069.18010481652 -110.000000000015 1113.33719625039 + endloop + endfacet + facet normal 0.406736643075812 0 0.913545457642596 + outer loop + vertex 3069.18010481652 -110.000000000015 1113.33719625039 + vertex 3069.18010481652 0 1113.33719625039 + vertex 3060.57189011115 0 1117.16982036652 + endloop + endfacet + facet normal 0.406736643075812 0 0.913545457642596 + outer loop + vertex 3069.18010481652 -110.000000000015 1113.33719625039 + vertex 3060.57189011115 0 1117.16982036652 + vertex 3060.57189011115 -110.000000000015 1117.16982036652 + endloop + endfacet + facet normal 0.342020143325658 0 0.939692620785912 + outer loop + vertex 3060.57189011115 -110.000000000015 1117.16982036652 + vertex 3060.57189011115 0 1117.16982036652 + vertex 3051.71729424062 0 1120.39262969985 + endloop + endfacet + facet normal 0.342020143325658 0 0.939692620785912 + outer loop + vertex 3060.57189011115 -110.000000000015 1117.16982036652 + vertex 3051.71729424062 0 1120.39262969985 + vertex 3051.71729424062 -110.000000000015 1120.39262969985 + endloop + endfacet + facet normal 0.275637355817004 0 0.961261695938318 + outer loop + vertex 3051.71729424062 -110.000000000015 1120.39262969985 + vertex 3051.71729424062 0 1120.39262969985 + vertex 3042.65945590595 0 1122.98992304726 + endloop + endfacet + facet normal 0.275637355817004 0 0.961261695938318 + outer loop + vertex 3051.71729424062 -110.000000000015 1120.39262969985 + vertex 3042.65945590595 0 1122.98992304726 + vertex 3042.65945590595 -110.000000000015 1122.98992304726 + endloop + endfacet + facet normal 0.207911690817763 0 0.978147600733805 + outer loop + vertex 3042.65945590595 -110.000000000015 1122.98992304726 + vertex 3042.65945590595 0 1122.98992304726 + vertex 3033.44250398504 0 1124.94904665665 + endloop + endfacet + facet normal 0.207911690817763 0 0.978147600733805 + outer loop + vertex 3042.65945590595 -110.000000000015 1122.98992304726 + vertex 3033.44250398504 0 1124.94904665665 + vertex 3033.44250398504 -110.000000000015 1124.94904665665 + endloop + endfacet + facet normal 0.139173100960063 0 0.990268068741571 + outer loop + vertex 3033.44250398504 -110.000000000015 1124.94904665665 + vertex 3033.44250398504 0 1124.94904665665 + vertex 3024.11134254113 0 1126.26045587472 + endloop + endfacet + facet normal 0.139173100960063 0 0.990268068741571 + outer loop + vertex 3033.44250398504 -110.000000000015 1124.94904665665 + vertex 3024.11134254113 0 1126.26045587472 + vertex 3024.11134254113 -110.000000000015 1126.26045587472 + endloop + endfacet + facet normal 0.0697564737441178 0 0.997564050259825 + outer loop + vertex 3024.11134254113 -110.000000000015 1126.26045587472 + vertex 3024.11134254113 0 1126.26045587472 + vertex 3014.71143205484 0 1126.91776164758 + endloop + endfacet + facet normal 0.0697564737441178 0 0.997564050259825 + outer loop + vertex 3024.11134254113 -110.000000000015 1126.26045587472 + vertex 3014.71143205484 0 1126.91776164758 + vertex 3014.71143205484 -110.000000000015 1126.91776164758 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 3014.71143205484 -110.000000000015 1126.91776164758 + vertex 3014.71143205484 0 1126.91776164758 + vertex 3005.28856794516 0 1126.91776164758 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 3014.71143205484 -110.000000000015 1126.91776164758 + vertex 3005.28856794516 0 1126.91776164758 + vertex 3005.28856794516 -110.000000000015 1126.91776164758 + endloop + endfacet + facet normal -0.0697564737441178 0 0.997564050259825 + outer loop + vertex 3005.28856794516 -110.000000000015 1126.91776164758 + vertex 3005.28856794516 0 1126.91776164758 + vertex 2995.88865745887 0 1126.26045587472 + endloop + endfacet + facet normal -0.0697564737441178 0 0.997564050259825 + outer loop + vertex 3005.28856794516 -110.000000000015 1126.91776164758 + vertex 2995.88865745887 0 1126.26045587472 + vertex 2995.88865745887 -110.000000000015 1126.26045587472 + endloop + endfacet + facet normal -0.139173100960063 0 0.990268068741571 + outer loop + vertex 2995.88865745887 -110.000000000015 1126.26045587472 + vertex 2995.88865745887 0 1126.26045587472 + vertex 2986.55749601496 0 1124.94904665665 + endloop + endfacet + facet normal -0.139173100960063 0 0.990268068741571 + outer loop + vertex 2995.88865745887 -110.000000000015 1126.26045587472 + vertex 2986.55749601496 0 1124.94904665665 + vertex 2986.55749601496 -110.000000000015 1124.94904665665 + endloop + endfacet + facet normal -0.207911690817763 0 0.978147600733805 + outer loop + vertex 2986.55749601496 -110.000000000015 1124.94904665665 + vertex 2986.55749601496 0 1124.94904665665 + vertex 2977.34054409404 0 1122.98992304726 + endloop + endfacet + facet normal -0.207911690817763 0 0.978147600733805 + outer loop + vertex 2986.55749601496 -110.000000000015 1124.94904665665 + vertex 2977.34054409404 0 1122.98992304726 + vertex 2977.34054409404 -110.000000000015 1122.98992304726 + endloop + endfacet + facet normal -0.275637355817004 0 0.961261695938318 + outer loop + vertex 2977.34054409404 -110.000000000015 1122.98992304726 + vertex 2977.34054409404 0 1122.98992304726 + vertex 2968.28270575938 0 1120.39262969985 + endloop + endfacet + facet normal -0.275637355817004 0 0.961261695938318 + outer loop + vertex 2977.34054409404 -110.000000000015 1122.98992304726 + vertex 2968.28270575938 0 1120.39262969985 + vertex 2968.28270575938 -110.000000000015 1120.39262969985 + endloop + endfacet + facet normal -0.342020143325658 0 0.939692620785912 + outer loop + vertex 2968.28270575938 -110.000000000015 1120.39262969985 + vertex 2968.28270575938 0 1120.39262969985 + vertex 2959.42810988885 0 1117.16982036652 + endloop + endfacet + facet normal -0.342020143325658 0 0.939692620785912 + outer loop + vertex 2968.28270575938 -110.000000000015 1120.39262969985 + vertex 2959.42810988885 0 1117.16982036652 + vertex 2959.42810988885 -110.000000000015 1117.16982036652 + endloop + endfacet + facet normal -0.406736643075812 0 0.913545457642596 + outer loop + vertex 2959.42810988885 -110.000000000015 1117.16982036652 + vertex 2959.42810988885 0 1117.16982036652 + vertex 2950.81989518347 0 1113.33719625039 + endloop + endfacet + facet normal -0.406736643075812 0 0.913545457642596 + outer loop + vertex 2959.42810988885 -110.000000000015 1117.16982036652 + vertex 2950.81989518347 0 1113.33719625039 + vertex 2950.81989518347 -110.000000000015 1113.33719625039 + endloop + endfacet + facet normal -0.469471562785875 0 0.882947592858935 + outer loop + vertex 2950.81989518347 -110.000000000015 1113.33719625039 + vertex 2950.81989518347 0 1113.33719625039 + vertex 2942.5 0 1108.9134295109 + endloop + endfacet + facet normal -0.469471562785875 0 0.882947592858935 + outer loop + vertex 2950.81989518347 -110.000000000015 1113.33719625039 + vertex 2942.5 0 1108.9134295109 + vertex 2942.5 -110.000000000015 1108.9134295109 + endloop + endfacet + facet normal -0.529919264233201 0 0.848048096156429 + outer loop + vertex 2942.5 -110.000000000015 1108.9134295109 + vertex 2942.5 0 1108.9134295109 + vertex 2934.50895803145 0 1103.92007229493 + endloop + endfacet + facet normal -0.529919264233201 0 0.848048096156429 + outer loop + vertex 2942.5 -110.000000000015 1108.9134295109 + vertex 2934.50895803145 0 1103.92007229493 + vertex 2934.50895803145 -110.000000000015 1103.92007229493 + endloop + endfacet + facet normal -0.587785252292496 0 0.809016994374931 + outer loop + vertex 2934.50895803145 -110.000000000015 1103.92007229493 + vertex 2934.50895803145 0 1103.92007229493 + vertex 2926.88570083104 0 1098.38145173691 + endloop + endfacet + facet normal -0.587785252292474 2.37312875864884E-15 0.809016994374947 + outer loop + vertex 2934.50895803145 -110.000000000015 1103.92007229493 + vertex 2926.88570083104 0 1098.38145173691 + vertex 2926.88570083104 -110.000000000015 1098.38145173691 + endloop + endfacet + facet normal -0.642787609686536 2.59504583351879E-15 0.766044443118981 + outer loop + vertex 2926.88570083104 -110.000000000015 1098.38145173691 + vertex 2926.88570083104 0 1098.38145173691 + vertex 2919.66736814155 0 1092.32455143945 + endloop + endfacet + facet normal -0.642787609686546 1.5428605703613E-15 0.766044443118973 + outer loop + vertex 2926.88570083104 -110.000000000015 1098.38145173691 + vertex 2919.66736814155 0 1092.32455143945 + vertex 2919.66736814155 -110.000000000015 1092.32455143945 + endloop + endfacet + facet normal -0.694658370458985 1.45205019793662E-15 0.719339800338664 + outer loop + vertex 2919.66736814155 -110.000000000015 1092.32455143945 + vertex 2919.66736814155 0 1092.32455143945 + vertex 2912.88912695428 0 1085.77888001196 + endloop + endfacet + facet normal -0.694658370458997 0 0.719339800338652 + outer loop + vertex 2919.66736814155 -110.000000000015 1092.32455143945 + vertex 2912.88912695428 0 1085.77888001196 + vertex 2912.88912695428 -110.000000000015 1085.77888001196 + endloop + endfacet + facet normal -0.74314482547739 0 0.669130606358863 + outer loop + vertex 2912.88912695428 -110.000000000015 1085.77888001196 + vertex 2912.88912695428 0 1085.77888001196 + vertex 2906.58400017894 0 1078.77632730768 + endloop + endfacet + facet normal -0.74314482547739 0 0.669130606358863 + outer loop + vertex 2912.88912695428 -110.000000000015 1085.77888001196 + vertex 2906.58400017894 0 1078.77632730768 + vertex 2906.58400017894 -110.000000000015 1078.77632730768 + endloop + endfacet + facet normal -0.788010753606725 0 0.615661475325654 + outer loop + vertex 2906.58400017894 -110.000000000015 1078.77632730768 + vertex 2906.58400017894 0 1078.77632730768 + vertex 2900.78270575938 0 1071.35100905948 + endloop + endfacet + facet normal -0.788010753606725 0 0.615661475325654 + outer loop + vertex 2906.58400017894 -110.000000000015 1078.77632730768 + vertex 2900.78270575938 0 1071.35100905948 + vertex 2900.78270575938 -110.000000000015 1071.35100905948 + endloop + endfacet + facet normal -0.829037572555056 0 0.559192903470725 + outer loop + vertex 2900.78270575938 -110.000000000015 1071.35100905948 + vertex 2900.78270575938 0 1071.35100905948 + vertex 2895.51350701888 0 1063.53910067148 + endloop + endfacet + facet normal -0.829037572555056 0 0.559192903470725 + outer loop + vertex 2900.78270575938 -110.000000000015 1071.35100905948 + vertex 2895.51350701888 0 1063.53910067148 + vertex 2895.51350701888 -110.000000000015 1063.53910067148 + endloop + endfacet + facet normal -0.866025403784419 0 0.500000000000034 + outer loop + vertex 2895.51350701888 -110.000000000015 1063.53910067148 + vertex 2895.51350701888 0 1063.53910067148 + vertex 2890.80207496404 0 1055.3786609761 + endloop + endfacet + facet normal -0.866025403784419 0 0.500000000000034 + outer loop + vertex 2895.51350701888 -110.000000000015 1063.53910067148 + vertex 2890.80207496404 0 1055.3786609761 + vertex 2890.80207496404 -110.000000000015 1055.3786609761 + endloop + endfacet + facet normal -0.898794046299183 0 0.438371146789045 + outer loop + vertex 2890.80207496404 -110.000000000015 1055.3786609761 + vertex 2890.80207496404 0 1055.3786609761 + vertex 2886.67136321825 0 1046.90944681523 + endloop + endfacet + facet normal -0.898794046299183 0 0.438371146789045 + outer loop + vertex 2890.80207496404 -110.000000000015 1055.3786609761 + vertex 2886.67136321825 0 1046.90944681523 + vertex 2886.67136321825 -110.000000000015 1046.90944681523 + endloop + endfacet + facet normal -0.927183854566774 0 0.374606593415946 + outer loop + vertex 2886.67136321825 -110.000000000015 1046.90944681523 + vertex 2886.67136321825 0 1046.90944681523 + vertex 2883.1414961939 0 1038.17271934897 + endloop + endfacet + facet normal -0.927183854566774 0 0.374606593415946 + outer loop + vertex 2886.67136321825 -110.000000000015 1046.90944681523 + vertex 2883.1414961939 0 1038.17271934897 + vertex 2883.1414961939 -110.000000000015 1038.17271934897 + endloop + endfacet + facet normal -0.951056516295164 0 0.309016994374916 + outer loop + vertex 2883.1414961939 -110.000000000015 1038.17271934897 + vertex 2883.1414961939 0 1038.17271934897 + vertex 2880.22967104833 0 1029.21104303529 + endloop + endfacet + facet normal -0.951056516295164 0 0.309016994374916 + outer loop + vertex 2883.1414961939 -110.000000000015 1038.17271934897 + vertex 2880.22967104833 0 1029.21104303529 + vertex 2880.22967104833 -110.000000000015 1029.21104303529 + endloop + endfacet + facet normal -0.970295726275994 0 0.241921895599677 + outer loop + vertex 2880.22967104833 -110.000000000015 1029.21104303529 + vertex 2880.22967104833 0 1029.21104303529 + vertex 2877.95007390094 0 1020.0680782604 + endloop + endfacet + facet normal -0.970295726275994 0 0.241921895599677 + outer loop + vertex 2880.22967104833 -110.000000000015 1029.21104303529 + vertex 2877.95007390094 0 1020.0680782604 + vertex 2877.95007390094 -110.000000000015 1020.0680782604 + endloop + endfacet + facet normal -0.984807753012211 0 0.173648177666911 + outer loop + vertex 2877.95007390094 -110.000000000015 1020.0680782604 + vertex 2877.95007390094 0 1020.0680782604 + vertex 2876.31381071989 0 1010.78836862961 + endloop + endfacet + facet normal -0.984807753012211 0 0.173648177666911 + outer loop + vertex 2877.95007390094 -110.000000000015 1020.0680782604 + vertex 2876.31381071989 0 1010.78836862961 + vertex 2876.31381071989 -110.000000000015 1010.78836862961 + endloop + endfacet + facet normal -0.994521895368271 0 0.104528463267677 + outer loop + vertex 2876.31381071989 -110.000000000015 1010.78836862961 + vertex 2876.31381071989 0 1010.78836862961 + vertex 2875.32885321492 0 1001.41712395546 + endloop + endfacet + facet normal -0.994521895368271 2.10835819466739E-16 0.10452846326768 + outer loop + vertex 2876.31381071989 -110.000000000015 1010.78836862961 + vertex 2875.32885321492 0 1001.41712395546 + vertex 2875.32885321492 -110.000000000015 1001.41712395546 + endloop + endfacet + facet normal -0.999390827019096 7.0447681430799E-17 0.0348994967024994 + outer loop + vertex 2875.32885321492 -110.000000000015 1001.41712395546 + vertex 2875.32885321492 0 1001.41712395546 + vertex 2875 0 992 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3005.28856794516 -110.000000000015 857.082238352422 + vertex 3014.71143205484 -110.000000000015 857.082238352422 + vertex 2995.88865745887 -110.000000000015 857.739544125283 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2995.88865745887 -110.000000000015 857.739544125283 + vertex 3014.71143205484 -110.000000000015 857.082238352422 + vertex 3024.11134254113 -110.000000000015 857.739544125283 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2995.88865745887 -110.000000000015 857.739544125283 + vertex 3024.11134254113 -110.000000000015 857.739544125283 + vertex 2986.55749601496 -110.000000000015 859.050953343352 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2986.55749601496 -110.000000000015 859.050953343352 + vertex 3024.11134254113 -110.000000000015 857.739544125283 + vertex 3033.44250398504 -110.000000000015 859.050953343352 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2986.55749601496 -110.000000000015 859.050953343352 + vertex 3033.44250398504 -110.000000000015 859.050953343352 + vertex 2977.34054409404 -110.000000000015 861.010076952741 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2977.34054409404 -110.000000000015 861.010076952741 + vertex 3033.44250398504 -110.000000000015 859.050953343352 + vertex 3042.65945590595 -110.000000000015 861.010076952741 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2977.34054409404 -110.000000000015 861.010076952741 + vertex 3042.65945590595 -110.000000000015 861.010076952741 + vertex 2968.28270575938 -110.000000000015 863.607370300155 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2968.28270575938 -110.000000000015 863.607370300155 + vertex 3042.65945590595 -110.000000000015 861.010076952741 + vertex 3051.71729424062 -110.000000000015 863.607370300154 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2968.28270575938 -110.000000000015 863.607370300155 + vertex 3051.71729424062 -110.000000000015 863.607370300154 + vertex 2959.42810988885 -110.000000000015 866.830179633484 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2959.42810988885 -110.000000000015 866.830179633484 + vertex 3051.71729424062 -110.000000000015 863.607370300154 + vertex 3060.57189011115 -110.000000000015 866.830179633484 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2959.42810988885 -110.000000000015 866.830179633484 + vertex 3060.57189011115 -110.000000000015 866.830179633484 + vertex 2950.81989518347 -110.000000000015 870.662803749613 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2950.81989518347 -110.000000000015 870.662803749613 + vertex 3060.57189011115 -110.000000000015 866.830179633484 + vertex 3069.18010481652 -110.000000000015 870.662803749613 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2950.81989518347 -110.000000000015 870.662803749613 + vertex 3069.18010481652 -110.000000000015 870.662803749613 + vertex 2942.5 -110.000000000015 875.086570489101 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2942.5 -110.000000000015 875.086570489101 + vertex 3069.18010481652 -110.000000000015 870.662803749613 + vertex 3077.5 -110.000000000015 875.086570489101 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2942.5 -110.000000000015 875.086570489101 + vertex 3077.5 -110.000000000015 875.086570489101 + vertex 2934.50895803145 -110.000000000015 880.07992770507 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2934.50895803145 -110.000000000015 880.07992770507 + vertex 3077.5 -110.000000000015 875.086570489101 + vertex 3085.49104196855 -110.000000000015 880.07992770507 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2934.50895803145 -110.000000000015 880.07992770507 + vertex 3085.49104196855 -110.000000000015 880.07992770507 + vertex 2926.88570083104 -110.000000000015 885.618548263093 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2926.88570083104 -110.000000000015 885.618548263093 + vertex 3085.49104196855 -110.000000000015 880.07992770507 + vertex 3093.11429916896 -110.000000000015 885.618548263093 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2926.88570083104 -110.000000000015 885.618548263093 + vertex 3093.11429916896 -110.000000000015 885.618548263093 + vertex 2919.66736814155 -110.000000000015 891.675448560552 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2919.66736814155 -110.000000000015 891.675448560552 + vertex 3093.11429916896 -110.000000000015 885.618548263093 + vertex 3100.33263185845 -110.000000000015 891.675448560552 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2919.66736814155 -110.000000000015 891.675448560552 + vertex 3100.33263185845 -110.000000000015 891.675448560552 + vertex 2912.88912695428 -110.000000000015 898.221119988036 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2912.88912695428 -110.000000000015 898.221119988036 + vertex 3100.33263185845 -110.000000000015 891.675448560552 + vertex 3107.11087304572 -110.000000000015 898.221119988036 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2912.88912695428 -110.000000000015 898.221119988036 + vertex 3107.11087304572 -110.000000000015 898.221119988036 + vertex 2906.58400017894 -110.000000000015 905.223672692317 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2906.58400017894 -110.000000000015 905.223672692317 + vertex 3107.11087304572 -110.000000000015 898.221119988036 + vertex 3113.41599982106 -110.000000000015 905.223672692317 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2906.58400017894 -110.000000000015 905.223672692317 + vertex 3113.41599982106 -110.000000000015 905.223672692317 + vertex 2900.78270575938 -110.000000000015 912.648990940516 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2900.78270575938 -110.000000000015 912.648990940516 + vertex 3113.41599982106 -110.000000000015 905.223672692317 + vertex 3119.21729424062 -110.000000000015 912.648990940516 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2900.78270575938 -110.000000000015 912.648990940516 + vertex 3119.21729424062 -110.000000000015 912.648990940516 + vertex 2895.51350701888 -110.000000000015 920.460899328517 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2895.51350701888 -110.000000000015 920.460899328517 + vertex 3119.21729424062 -110.000000000015 912.648990940516 + vertex 3124.48649298112 -110.000000000015 920.460899328517 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2895.51350701888 -110.000000000015 920.460899328517 + vertex 3124.48649298112 -110.000000000015 920.460899328517 + vertex 2890.80207496404 -110.000000000015 928.621339023905 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2890.80207496404 -110.000000000015 928.621339023905 + vertex 3124.48649298112 -110.000000000015 920.460899328517 + vertex 3129.19792503595 -110.000000000015 928.621339023905 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2890.80207496404 -110.000000000015 928.621339023905 + vertex 3129.19792503595 -110.000000000015 928.621339023905 + vertex 2886.67136321825 -110.000000000015 937.090553184767 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2886.67136321825 -110.000000000015 937.090553184767 + vertex 3129.19792503595 -110.000000000015 928.621339023905 + vertex 3133.32863678175 -110.000000000015 937.090553184767 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2886.67136321825 -110.000000000015 937.090553184767 + vertex 3133.32863678175 -110.000000000015 937.090553184767 + vertex 2883.1414961939 -110.000000000015 945.827280651035 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2883.1414961939 -110.000000000015 945.827280651035 + vertex 3133.32863678175 -110.000000000015 937.090553184767 + vertex 3136.8585038061 -110.000000000015 945.827280651035 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2883.1414961939 -110.000000000015 945.827280651035 + vertex 3136.8585038061 -110.000000000015 945.827280651035 + vertex 2880.22967104833 -110.000000000015 954.788956964705 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2880.22967104833 -110.000000000015 954.788956964705 + vertex 3136.8585038061 -110.000000000015 945.827280651035 + vertex 3139.77032895167 -110.000000000015 954.788956964705 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2880.22967104833 -110.000000000015 954.788956964705 + vertex 3139.77032895167 -110.000000000015 954.788956964705 + vertex 2877.95007390094 -110.000000000015 963.931921739603 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2877.95007390094 -110.000000000015 963.931921739603 + vertex 3139.77032895167 -110.000000000015 954.788956964705 + vertex 3142.04992609906 -110.000000000015 963.931921739603 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2877.95007390094 -110.000000000015 963.931921739603 + vertex 3142.04992609906 -110.000000000015 963.931921739603 + vertex 2876.31381071989 -110.000000000015 973.211631370391 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2876.31381071989 -110.000000000015 973.211631370391 + vertex 3142.04992609906 -110.000000000015 963.931921739603 + vertex 3143.68618928011 -110.000000000015 973.211631370391 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2876.31381071989 -110.000000000015 973.211631370391 + vertex 3143.68618928011 -110.000000000015 973.211631370391 + vertex 2875.32885321492 -110.000000000015 982.582876044543 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2875.32885321492 -110.000000000015 982.582876044543 + vertex 3143.68618928011 -110.000000000015 973.211631370391 + vertex 3144.67114678508 -110.000000000015 982.582876044543 + endloop + endfacet + facet normal 0 -1 1.55620165927199E-12 + outer loop + vertex 2875.32885321492 -110.000000000015 982.582876044543 + vertex 3144.67114678508 -110.000000000015 982.582876044543 + vertex 2875 -110 992 + endloop + endfacet + facet normal -5.42775700927857E-14 -1 1.89541451378232E-15 + outer loop + vertex 2875 -110 992 + vertex 3144.67114678508 -110.000000000015 982.582876044543 + vertex 3145 -110.000000000015 992 + endloop + endfacet + facet normal -5.42775700927857E-14 -1 -1.5543062447582E-12 + outer loop + vertex 2875 -110 992 + vertex 3145 -110.000000000015 992 + vertex 2875.32885321492 -110.000000000015 1001.41712395546 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2875.32885321492 -110.000000000015 1001.41712395546 + vertex 3145 -110.000000000015 992 + vertex 3144.67114678508 -110.000000000015 1001.41712395546 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2875.32885321492 -110.000000000015 1001.41712395546 + vertex 3144.67114678508 -110.000000000015 1001.41712395546 + vertex 2876.31381071989 -110.000000000015 1010.78836862961 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2876.31381071989 -110.000000000015 1010.78836862961 + vertex 3144.67114678508 -110.000000000015 1001.41712395546 + vertex 3143.68618928011 -110.000000000015 1010.78836862961 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2876.31381071989 -110.000000000015 1010.78836862961 + vertex 3143.68618928011 -110.000000000015 1010.78836862961 + vertex 2877.95007390094 -110.000000000015 1020.0680782604 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2877.95007390094 -110.000000000015 1020.0680782604 + vertex 3143.68618928011 -110.000000000015 1010.78836862961 + vertex 3142.04992609906 -110.000000000015 1020.0680782604 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2877.95007390094 -110.000000000015 1020.0680782604 + vertex 3142.04992609906 -110.000000000015 1020.0680782604 + vertex 2880.22967104833 -110.000000000015 1029.21104303529 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2880.22967104833 -110.000000000015 1029.21104303529 + vertex 3142.04992609906 -110.000000000015 1020.0680782604 + vertex 3139.77032895167 -110.000000000015 1029.21104303529 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2880.22967104833 -110.000000000015 1029.21104303529 + vertex 3139.77032895167 -110.000000000015 1029.21104303529 + vertex 2883.1414961939 -110.000000000015 1038.17271934897 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2883.1414961939 -110.000000000015 1038.17271934897 + vertex 3139.77032895167 -110.000000000015 1029.21104303529 + vertex 3136.8585038061 -110.000000000015 1038.17271934897 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2883.1414961939 -110.000000000015 1038.17271934897 + vertex 3136.8585038061 -110.000000000015 1038.17271934897 + vertex 2886.67136321825 -110.000000000015 1046.90944681523 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2886.67136321825 -110.000000000015 1046.90944681523 + vertex 3136.8585038061 -110.000000000015 1038.17271934897 + vertex 3133.32863678175 -110.000000000015 1046.90944681523 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2886.67136321825 -110.000000000015 1046.90944681523 + vertex 3133.32863678175 -110.000000000015 1046.90944681523 + vertex 2890.80207496404 -110.000000000015 1055.3786609761 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2890.80207496404 -110.000000000015 1055.3786609761 + vertex 3133.32863678175 -110.000000000015 1046.90944681523 + vertex 3129.19792503595 -110.000000000015 1055.3786609761 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2890.80207496404 -110.000000000015 1055.3786609761 + vertex 3129.19792503595 -110.000000000015 1055.3786609761 + vertex 2895.51350701888 -110.000000000015 1063.53910067148 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2895.51350701888 -110.000000000015 1063.53910067148 + vertex 3129.19792503595 -110.000000000015 1055.3786609761 + vertex 3124.48649298112 -110.000000000015 1063.53910067148 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2895.51350701888 -110.000000000015 1063.53910067148 + vertex 3124.48649298112 -110.000000000015 1063.53910067148 + vertex 2900.78270575938 -110.000000000015 1071.35100905948 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2900.78270575938 -110.000000000015 1071.35100905948 + vertex 3124.48649298112 -110.000000000015 1063.53910067148 + vertex 3119.21729424062 -110.000000000015 1071.35100905948 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2900.78270575938 -110.000000000015 1071.35100905948 + vertex 3119.21729424062 -110.000000000015 1071.35100905948 + vertex 2906.58400017894 -110.000000000015 1078.77632730768 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2906.58400017894 -110.000000000015 1078.77632730768 + vertex 3119.21729424062 -110.000000000015 1071.35100905948 + vertex 3113.41599982106 -110.000000000015 1078.77632730768 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2906.58400017894 -110.000000000015 1078.77632730768 + vertex 3113.41599982106 -110.000000000015 1078.77632730768 + vertex 2912.88912695428 -110.000000000015 1085.77888001196 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2912.88912695428 -110.000000000015 1085.77888001196 + vertex 3113.41599982106 -110.000000000015 1078.77632730768 + vertex 3107.11087304572 -110.000000000015 1085.77888001196 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2912.88912695428 -110.000000000015 1085.77888001196 + vertex 3107.11087304572 -110.000000000015 1085.77888001196 + vertex 2919.66736814155 -110.000000000015 1092.32455143945 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2919.66736814155 -110.000000000015 1092.32455143945 + vertex 3107.11087304572 -110.000000000015 1085.77888001196 + vertex 3100.33263185845 -110.000000000015 1092.32455143945 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2919.66736814155 -110.000000000015 1092.32455143945 + vertex 3100.33263185845 -110.000000000015 1092.32455143945 + vertex 2926.88570083104 -110.000000000015 1098.38145173691 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2926.88570083104 -110.000000000015 1098.38145173691 + vertex 3100.33263185845 -110.000000000015 1092.32455143945 + vertex 3093.11429916896 -110.000000000015 1098.38145173691 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2926.88570083104 -110.000000000015 1098.38145173691 + vertex 3093.11429916896 -110.000000000015 1098.38145173691 + vertex 2934.50895803145 -110.000000000015 1103.92007229493 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2934.50895803145 -110.000000000015 1103.92007229493 + vertex 3093.11429916896 -110.000000000015 1098.38145173691 + vertex 3085.49104196855 -110.000000000015 1103.92007229493 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2934.50895803145 -110.000000000015 1103.92007229493 + vertex 3085.49104196855 -110.000000000015 1103.92007229493 + vertex 2942.5 -110.000000000015 1108.9134295109 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2942.5 -110.000000000015 1108.9134295109 + vertex 3085.49104196855 -110.000000000015 1103.92007229493 + vertex 3077.5 -110.000000000015 1108.9134295109 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2942.5 -110.000000000015 1108.9134295109 + vertex 3077.5 -110.000000000015 1108.9134295109 + vertex 2950.81989518347 -110.000000000015 1113.33719625039 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2950.81989518347 -110.000000000015 1113.33719625039 + vertex 3077.5 -110.000000000015 1108.9134295109 + vertex 3069.18010481652 -110.000000000015 1113.33719625039 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2950.81989518347 -110.000000000015 1113.33719625039 + vertex 3069.18010481652 -110.000000000015 1113.33719625039 + vertex 2959.42810988885 -110.000000000015 1117.16982036652 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2959.42810988885 -110.000000000015 1117.16982036652 + vertex 3069.18010481652 -110.000000000015 1113.33719625039 + vertex 3060.57189011115 -110.000000000015 1117.16982036652 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2959.42810988885 -110.000000000015 1117.16982036652 + vertex 3060.57189011115 -110.000000000015 1117.16982036652 + vertex 2968.28270575938 -110.000000000015 1120.39262969985 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2968.28270575938 -110.000000000015 1120.39262969985 + vertex 3060.57189011115 -110.000000000015 1117.16982036652 + vertex 3051.71729424062 -110.000000000015 1120.39262969985 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2968.28270575938 -110.000000000015 1120.39262969985 + vertex 3051.71729424062 -110.000000000015 1120.39262969985 + vertex 2977.34054409404 -110.000000000015 1122.98992304726 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2977.34054409404 -110.000000000015 1122.98992304726 + vertex 3051.71729424062 -110.000000000015 1120.39262969985 + vertex 3042.65945590595 -110.000000000015 1122.98992304726 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2977.34054409404 -110.000000000015 1122.98992304726 + vertex 3042.65945590595 -110.000000000015 1122.98992304726 + vertex 2986.55749601496 -110.000000000015 1124.94904665665 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2986.55749601496 -110.000000000015 1124.94904665665 + vertex 3042.65945590595 -110.000000000015 1122.98992304726 + vertex 3033.44250398504 -110.000000000015 1124.94904665665 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2986.55749601496 -110.000000000015 1124.94904665665 + vertex 3033.44250398504 -110.000000000015 1124.94904665665 + vertex 2995.88865745887 -110.000000000015 1126.26045587472 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2995.88865745887 -110.000000000015 1126.26045587472 + vertex 3033.44250398504 -110.000000000015 1124.94904665665 + vertex 3024.11134254113 -110.000000000015 1126.26045587472 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2995.88865745887 -110.000000000015 1126.26045587472 + vertex 3024.11134254113 -110.000000000015 1126.26045587472 + vertex 3005.28856794516 -110.000000000015 1126.91776164758 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3005.28856794516 -110.000000000015 1126.91776164758 + vertex 3024.11134254113 -110.000000000015 1126.26045587472 + vertex 3014.71143205484 -110.000000000015 1126.91776164758 + endloop + endfacet + facet normal 4.50894979378403E-14 -1 4.73909719927064E-15 + outer loop + vertex 1141.97814721786 0 1025.61317560081 + vertex 1142.74422527728 0 1018.32442974313 + vertex 1207 7.54951656745106E-12 2000 + endloop + endfacet + facet normal 7.66163377271801E-14 -1 2.67550146907132E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1142.74422527728 0 1018.32442974313 + vertex 1143 0 1011 + endloop + endfacet + facet normal 1.17961196366423E-13 -1 0 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1143 0 1011 + vertex 1207 7.54951656745106E-12 0 + endloop + endfacet + facet normal 7.60236073228286E-14 -1 -2.65480286725022E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1143 0 1011 + vertex 1142.74422527728 0 1003.67557025687 + endloop + endfacet + facet normal 4.44752864870313E-14 -1 -4.67454097444187E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1142.74422527728 0 1003.67557025687 + vertex 1141.97814721786 0 996.386824399193 + endloop + endfacet + facet normal -5.45890725896926E-16 -1 3.88421434277722E-15 + outer loop + vertex 1019.76694134497 0 1114.40481406628 + vertex 1027.0245113569 0 1115.42479901367 + vertex 813 3.5527136788005E-12 2000 + endloop + endfacet + facet normal -2.76174039321784E-16 -1 3.94947276510773E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 1027.0245113569 0 1115.42479901367 + vertex 1034.33555284624 0 1115.93603683701 + endloop + endfacet + facet normal 1.01441697681486E-14 -1 6.55832535222431E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 1034.33555284624 0 1115.93603683701 + vertex 1207 7.54951656745106E-12 2000 + endloop + endfacet + facet normal 0 -1 8.53955921972037E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1034.33555284624 0 1115.93603683701 + vertex 1041.66444715376 0 1115.93603683701 + endloop + endfacet + facet normal 5.89435777499559E-16 -1 8.4293243337834E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1041.66444715376 0 1115.93603683701 + vertex 1048.9754886431 0 1115.42479901367 + endloop + endfacet + facet normal -1.57376366226751E-14 -1 -1.65409226211533E-15 + outer loop + vertex 934.021852782135 0 996.386824399193 + vertex 933.255774722718 0 1003.67557025687 + vertex 813 3.5527136788005E-12 0 + endloop + endfacet + facet normal -2.28757349288721E-14 -1 -7.98838266405378E-16 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 933.255774722718 0 1003.67557025687 + vertex 933 0 1011 + endloop + endfacet + facet normal -2.96059473233375E-14 -1 0 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 933 0 1011 + vertex 813 3.5527136788005E-12 2000 + endloop + endfacet + facet normal -2.29894583911145E-14 -1 8.02809577216146E-16 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 933 0 1011 + vertex 933.255774722718 0 1018.32442974313 + endloop + endfacet + facet normal -1.59005036173873E-14 -1 1.6712102730446E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 933.255774722718 0 1018.32442974313 + vertex 934.021852782135 0 1025.61317560081 + endloop + endfacet + facet normal 5.75304098282915E-16 -1 -8.22723190566377E-15 + outer loop + vertex 1048.9754886431 0 906.575200986331 + vertex 1041.66444715376 0 906.063963162995 + vertex 1207 7.54951656745106E-12 0 + endloop + endfacet + facet normal 0 -1 -8.33221149321107E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1041.66444715376 0 906.063963162995 + vertex 1034.33555284624 0 906.063963162995 + endloop + endfacet + facet normal 1.01441697681486E-14 -1 -6.39908366111317E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1034.33555284624 0 906.063963162995 + vertex 813 3.5527136788005E-12 0 + endloop + endfacet + facet normal -2.6958092279326E-16 -1 -3.85518680604328E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 1034.33555284624 0 906.063963162995 + vertex 1027.0245113569 0 906.575200986331 + endloop + endfacet + facet normal -5.33068925060877E-16 -1 -3.79298248932208E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 1027.0245113569 0 906.575200986331 + vertex 1019.76694134497 0 907.595185933718 + endloop + endfacet + facet normal -1.21322366838422E-14 -1 2.13924066370232E-15 + outer loop + vertex 934.021852782135 0 1025.61317560081 + vertex 935.29450192295 0 1032.83072753586 + vertex 813 3.5527136788005E-12 2000 + endloop + endfacet + facet normal -9.77532502908078E-15 -1 2.43726226664375E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 935.29450192295 0 1032.83072753586 + vertex 937.067521926477 0 1039.94192236079 + endloop + endfacet + facet normal -8.14825204792329E-15 -1 2.64752758024033E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 937.067521926477 0 1039.94192236079 + vertex 939.33227481748 0 1046.9121150492 + endloop + endfacet + facet normal -6.94697008412322E-15 -1 2.80675810407801E-15 + outer loop + vertex 939.33227481748 0 1046.9121150492 + vertex 942.077726947527 0 1053.70734752296 + vertex 813 3.5527136788005E-12 2000 + endloop + endfacet + facet normal -6.0152734353203E-15 -1 2.93384488354026E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 942.077726947527 0 1053.70734752296 + vertex 945.290502749813 0 1060.29451409252 + endloop + endfacet + facet normal -5.26460762478416E-15 -1 3.039522629347E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 945.290502749813 0 1060.29451409252 + vertex 948.954949903575 0 1066.64152274449 + endloop + endfacet + facet normal -4.64095683204331E-15 -1 3.13036490951113E-15 + outer loop + vertex 948.954949903575 0 1066.64152274449 + vertex 953.053215590631 0 1072.71745149071 + vertex 813 3.5527136788005E-12 2000 + endloop + endfacet + facet normal -4.10943654346979E-15 -1 3.21064370445454E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 953.053215590631 0 1072.71745149071 + vertex 957.565333472507 0 1078.49269901709 + endloop + endfacet + facet normal -3.6464484283662E-15 -1 3.28327691222442E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 957.565333472507 0 1078.49269901709 + vertex 962.469320964442 0 1083.93912889819 + endloop + endfacet + facet normal -3.23539246138834E-15 -1 3.35034697077704E-15 + outer loop + vertex 962.469320964442 0 1083.93912889819 + vertex 967.74128633232 0 1089.03020667513 + vertex 813 3.5527136788005E-12 2000 + endloop + endfacet + facet normal -2.86418435303684E-15 -1 3.41340199258369E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 967.74128633232 0 1089.03020667513 + vertex 973.355545090806 0 1093.74112912871 + endloop + endfacet + facet normal -2.52374701560157E-15 -1 3.47363976411713E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 973.355545090806 0 1093.74112912871 + vertex 979.284745135572 0 1098.04894511828 + endloop + endfacet + facet normal -2.2070545227893E-15 -1 3.53202556029599E-15 + outer loop + vertex 979.284745135572 0 1098.04894511828 + vertex 985.5 0 1101.93266739737 + vertex 813 3.5527136788005E-12 2000 + endloop + endfacet + facet normal -1.9085025071628E-15 -1 3.5893711744008E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 985.5 0 1101.93266739737 + vertex 991.971029587147 0 1105.37337486141 + endloop + endfacet + facet normal -1.62347773324785E-15 -1 3.64639069048943E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 991.971029587147 0 1105.37337486141 + vertex 998.666307691329 0 1108.35430472951 + endloop + endfacet + facet normal -1.34805194196833E-15 -1 3.70374227081005E-15 + outer loop + vertex 998.666307691329 0 1108.35430472951 + vertex 1005.55321559063 0 1110.86093421099 + vertex 813 3.5527136788005E-12 2000 + endloop + endfacet + facet normal -1.07875387409304E-15 -1 3.76206184186131E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 1005.55321559063 0 1110.86093421099 + vertex 1012.59820096203 0 1112.88105125898 + endloop + endfacet + facet normal -8.12389632674997E-16 -1 3.82199272651112E-15 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 1012.59820096203 0 1112.88105125898 + vertex 1019.76694134497 0 1114.40481406628 + endloop + endfacet + facet normal 1.17008598040235E-15 -1 8.32559435754092E-15 + outer loop + vertex 1048.9754886431 0 1115.42479901367 + vertex 1056.23305865503 0 1114.40481406628 + vertex 1207 7.54951656745106E-12 2000 + endloop + endfacet + facet normal 1.74872099184734E-15 -1 8.22708543132237E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1056.23305865503 0 1114.40481406628 + vertex 1063.40179903797 0 1112.88105125898 + endloop + endfacet + facet normal 2.33200531787404E-15 -1 8.13266902866779E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1063.40179903797 0 1112.88105125898 + vertex 1070.44678440937 0 1110.86093421099 + endloop + endfacet + facet normal 2.92680139947648E-15 -1 8.04132075628993E-15 + outer loop + vertex 1070.44678440937 0 1110.86093421099 + vertex 1077.33369230867 0 1108.35430472951 + vertex 1207 7.54951656745106E-12 2000 + endloop + endfacet + facet normal 3.54049218541116E-15 -1 7.95207564615438E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1077.33369230867 0 1108.35430472951 + vertex 1084.02897041285 0 1105.37337486141 + endloop + endfacet + facet normal 4.18135537043934E-15 -1 7.86398570620289E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1084.02897041285 0 1105.37337486141 + vertex 1090.5 0 1101.93266739737 + endloop + endfacet + facet normal 4.85903128606941E-15 -1 7.77607554478761E-15 + outer loop + vertex 1090.5 0 1101.93266739737 + vertex 1096.71525486443 0 1098.04894511828 + vertex 1207 7.54951656745106E-12 2000 + endloop + endfacet + facet normal 5.58514396704099E-15 -1 7.68729117946397E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1096.71525486443 0 1098.04894511828 + vertex 1102.64445490919 0 1093.74112912871 + endloop + endfacet + facet normal 6.37416615667983E-15 -1 7.59643541701573E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1102.64445490919 0 1093.74112912871 + vertex 1108.25871366768 0 1089.03020667513 + endloop + endfacet + facet normal 7.24467427741616E-15 -1 7.50207982780292E-15 + outer loop + vertex 1108.25871366768 0 1089.03020667513 + vertex 1113.53067903556 0 1083.93912889819 + vertex 1207 7.54951656745106E-12 2000 + endloop + endfacet + facet normal 8.22123921383871E-15 -1 7.40243703728038E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1113.53067903556 0 1083.93912889819 + vertex 1118.43466652749 0 1078.49269901709 + endloop + endfacet + facet normal 9.33738552907503E-15 -1 7.29516510301835E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1118.43466652749 0 1078.49269901709 + vertex 1122.94678440937 0 1072.71745149071 + endloop + endfacet + facet normal 1.06404174745846E-14 -1 7.17705220936638E-15 + outer loop + vertex 1122.94678440937 0 1072.71745149071 + vertex 1127.04505009642 0 1066.64152274449 + vertex 1207 7.54951656745106E-12 2000 + endloop + endfacet + facet normal 1.21996671263321E-14 -1 7.04348109941169E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1127.04505009642 0 1066.64152274449 + vertex 1130.70949725019 0 1060.29451409252 + endloop + endfacet + facet normal 1.41213950626244E-14 -1 6.88746456805503E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1130.70949725019 0 1060.29451409252 + vertex 1133.92227305247 0 1053.70734752296 + endloop + endfacet + facet normal 1.6577596388046E-14 -1 6.69778370208038E-15 + outer loop + vertex 1133.92227305247 0 1053.70734752296 + vertex 1136.66772518252 0 1046.9121150492 + vertex 1207 7.54951656745106E-12 2000 + endloop + endfacet + facet normal 1.98666626053334E-14 -1 6.45506997888674E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1136.66772518252 0 1046.9121150492 + vertex 1138.93247807352 0 1039.94192236079 + endloop + endfacet + facet normal 2.45563136203537E-14 -1 6.12257663215367E-15 + outer loop + vertex 1207 7.54951656745106E-12 2000 + vertex 1138.93247807352 0 1039.94192236079 + vertex 1140.70549807705 0 1032.83072753586 + endloop + endfacet + facet normal 3.18770240826733E-14 -1 5.62077941046864E-15 + outer loop + vertex 1140.70549807705 0 1032.83072753586 + vertex 1141.97814721786 0 1025.61317560081 + vertex 1207 7.54951656745106E-12 2000 + endloop + endfacet + facet normal 3.1363309419021E-14 -1 -5.53019765488118E-15 + outer loop + vertex 1141.97814721786 0 996.386824399193 + vertex 1140.70549807705 0 989.169272464135 + vertex 1207 7.54951656745106E-12 0 + endloop + endfacet + facet normal 2.41258656416588E-14 -1 -6.01525389729797E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1140.70549807705 0 989.169272464135 + vertex 1138.93247807352 0 982.058077639215 + endloop + endfacet + facet normal 1.94998570365605E-14 -1 -6.3358876249045E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1138.93247807352 0 982.058077639215 + vertex 1136.66772518252 0 975.087884950805 + endloop + endfacet + facet normal 1.62602297047903E-14 -1 -6.56955923883886E-15 + outer loop + vertex 1136.66772518252 0 975.087884950805 + vertex 1133.92227305247 0 968.292652477041 + vertex 1207 7.54951656745106E-12 0 + endloop + endfacet + facet normal 1.38435451669917E-14 -1 -6.75194811922516E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1133.92227305247 0 968.292652477041 + vertex 1130.70949725019 0 961.705485907482 + endloop + endfacet + facet normal 1.19543007386624E-14 -1 -6.90181874944051E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1130.70949725019 0 961.705485907482 + vertex 1127.04505009642 0 955.358477255514 + endloop + endfacet + facet normal 1.04224363467719E-14 -1 -7.03002208214608E-15 + outer loop + vertex 1127.04505009642 0 955.358477255514 + vertex 1122.94678440937 0 949.28254850929 + vertex 1207 7.54951656745106E-12 0 + endloop + endfacet + facet normal 9.14301601715328E-15 -1 -7.14330699712249E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1122.94678440937 0 949.28254850929 + vertex 1118.43466652749 0 943.507300982913 + endloop + endfacet + facet normal 8.04764037293339E-15 -1 -7.24612793884381E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1118.43466652749 0 943.507300982913 + vertex 1113.53067903556 0 938.060871101805 + endloop + endfacet + facet normal 7.08968133102996E-15 -1 -7.34157993339646E-15 + outer loop + vertex 1113.53067903556 0 938.060871101805 + vertex 1108.25871366768 0 932.969793324874 + vertex 1207 7.54951656745106E-12 0 + endloop + endfacet + facet normal 6.23611890167267E-15 -1 -7.43191710491335E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1108.25871366768 0 932.969793324874 + vertex 1102.64445490919 0 928.258870871294 + endloop + endfacet + facet normal 5.46276979421236E-15 -1 -7.51885758044983E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1102.64445490919 0 928.258870871294 + vertex 1096.71525486443 0 923.951054881721 + endloop + endfacet + facet normal 4.75136435244045E-15 -1 -7.6037724332652E-15 + outer loop + vertex 1096.71525486443 0 923.951054881721 + vertex 1090.5 0 920.067332602634 + vertex 1207 7.54951656745106E-12 0 + endloop + endfacet + facet normal 4.08768047977569E-15 -1 -7.68780886019358E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1090.5 0 920.067332602634 + vertex 1084.02897041285 0 916.626625138588 + endloop + endfacet + facet normal 3.46030618171949E-15 -1 -7.77197493310993E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1084.02897041285 0 916.626625138588 + vertex 1077.33369230867 0 913.645695270487 + endloop + endfacet + facet normal 2.85978753048438E-15 -1 -7.85720166444409E-15 + outer loop + vertex 1077.33369230867 0 913.645695270487 + vertex 1070.44678440937 0 911.139065789009 + vertex 1207 7.54951656745106E-12 0 + endloop + endfacet + facet normal 2.27801775275004E-15 -1 -7.94439201426654E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1070.44678440937 0 911.139065789009 + vertex 1063.40179903797 0 909.118948741021 + endloop + endfacet + facet normal 1.70777787247822E-15 -1 -8.03446319916185E-15 + outer loop + vertex 1207 7.54951656745106E-12 0 + vertex 1063.40179903797 0 909.118948741021 + vertex 1056.23305865503 0 907.595185933718 + endloop + endfacet + facet normal 1.14237029100569E-15 -1 -8.12838698037291E-15 + outer loop + vertex 1056.23305865503 0 907.595185933718 + vertex 1048.9754886431 0 906.575200986331 + vertex 1207 7.54951656745106E-12 0 + endloop + endfacet + facet normal -7.93606942815338E-16 -1 -3.73362711826009E-15 + outer loop + vertex 1019.76694134497 0 907.595185933718 + vertex 1012.59820096203 0 909.118948741021 + vertex 813 3.5527136788005E-12 0 + endloop + endfacet + facet normal -1.05419495012809E-15 -1 -3.67641469570094E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 1012.59820096203 0 909.118948741021 + vertex 1005.55321559063 0 911.139065789009 + endloop + endfacet + facet normal -1.31782726149682E-15 -1 -3.62070064370418E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 1005.55321559063 0 911.139065789009 + vertex 998.666307691329 0 913.645695270487 + endloop + endfacet + facet normal -1.58762892888811E-15 -1 -3.56587295759696E-15 + outer loop + vertex 998.666307691329 0 913.645695270487 + vertex 991.971029587147 0 916.626625138588 + vertex 813 3.5527136788005E-12 0 + endloop + endfacet + facet normal -1.86700459657382E-15 -1 -3.51132495569952E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 991.971029587147 0 916.626625138588 + vertex 985.5 0 920.067332602634 + endloop + endfacet + facet normal -2.15981528082504E-15 -1 -3.45642697025485E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 985.5 0 920.067332602634 + vertex 979.284745135572 0 923.951054881721 + endloop + endfacet + facet normal -2.47060349738786E-15 -1 -3.40049398645745E-15 + outer loop + vertex 979.284745135572 0 923.951054881721 + vertex 973.355545090806 0 928.258870871294 + vertex 813 3.5527136788005E-12 0 + endloop + endfacet + facet normal -2.80489636267866E-15 -1 -3.34274531707672E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 973.355545090806 0 928.258870871294 + vertex 967.74128633232 0 932.969793324874 + endloop + endfacet + facet normal -3.16963255629649E-15 -1 -3.28225059562252E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 967.74128633232 0 932.969793324874 + vertex 962.469320964442 0 938.060871101805 + endloop + endfacet + facet normal -3.5737878659051E-15 -1 -3.21785304792349E-15 + outer loop + vertex 962.469320964442 0 938.060871101805 + vertex 957.565333472507 0 943.507300982913 + vertex 813 3.5527136788005E-12 0 + endloop + endfacet + facet normal -4.02932648579098E-15 -1 -3.14805486785132E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 957.565333472507 0 943.507300982913 + vertex 953.053215590631 0 949.28254850929 + endloop + endfacet + facet normal -4.55270435813155E-15 -1 -3.07083786422538E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 953.053215590631 0 949.28254850929 + vertex 948.954949903575 0 955.358477255514 + endloop + endfacet + facet normal -5.16734734617121E-15 -1 -2.9833693813083E-15 + outer loop + vertex 948.954949903575 0 955.358477255514 + vertex 945.290502749813 0 961.705485907482 + vertex 813 3.5527136788005E-12 0 + endloop + endfacet + facet normal -5.90793983798435E-15 -1 -2.88149479027147E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 945.290502749813 0 961.705485907482 + vertex 942.077726947527 0 968.292652477041 + endloop + endfacet + facet normal -6.82828957830147E-15 -1 -2.75880806723068E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 942.077726947527 0 968.292652477041 + vertex 939.33227481748 0 975.087884950805 + endloop + endfacet + facet normal -8.01681886159392E-15 -1 -2.60482234926322E-15 + outer loop + vertex 939.33227481748 0 975.087884950805 + vertex 937.067521926477 0 982.058077639215 + vertex 813 3.5527136788005E-12 0 + endloop + endfacet + facet normal -9.62998331681599E-15 -1 -2.40102450779503E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 937.067521926477 0 982.058077639215 + vertex 935.29450192295 0 989.169272464135 + endloop + endfacet + facet normal -1.19736204602692E-14 -1 -2.11127234390831E-15 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 935.29450192295 0 989.169272464135 + vertex 934.021852782135 0 996.386824399193 + endloop + endfacet + facet normal -1.34082902409995E-13 -1 -1.40926809200082E-14 + outer loop + vertex 2876.31381071989 0 973.211631370391 + vertex 2875.32885321492 0 982.582876044543 + vertex 2813 2.22044604925031E-11 0 + endloop + endfacet + facet normal -2.29761362377436E-13 -1 -8.02344357369188E-15 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2875.32885321492 0 982.582876044543 + vertex 2875 0 992 + endloop + endfacet + facet normal -1.55631779864875E-13 -1 -1.26565424807268E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2875 0 992 + vertex 2813 -3.10862446895044E-12 2000 + endloop + endfacet + facet normal 3.19816885875372E-14 -1 -1.11682517512219E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2875 0 992 + vertex 2875.32885321492 0 1001.41712395546 + endloop + endfacet + facet normal 1.85828998363426E-14 -1 -1.9531414763179E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2875.32885321492 0 1001.41712395546 + vertex 2876.31381071989 0 1010.78836862961 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3024.11134254113 0 857.739544125283 + vertex 3014.71143205484 0 857.082238352422 + vertex 3167.0406138781 0 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3014.71143205484 0 857.082238352422 + vertex 3005.28856794516 0 857.082238352422 + endloop + endfacet + facet normal -6.27172692117979E-14 -1 -1.18362581283174E-14 + outer loop + vertex 3167.0406138781 0 0 + vertex 3005.28856794516 0 857.082238352422 + vertex 2813 2.22044604925031E-11 0 + endloop + endfacet + facet normal -1.78361463658555E-15 -1 -2.55068776483954E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 3005.28856794516 0 857.082238352422 + vertex 2995.88865745887 0 857.739544125283 + endloop + endfacet + facet normal -3.5323545214839E-15 -1 -2.51340084108928E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2995.88865745887 0 857.739544125283 + vertex 2986.55749601496 0 859.050953343352 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3143.68618928011 0 1010.78836862961 + vertex 3144.67114678508 0 1001.41712395546 + vertex 3167.0406138781 0 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3144.67114678508 0 1001.41712395546 + vertex 3145 0 992 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3145 0 992 + vertex 3167.0406138781 0 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3145 0 992 + vertex 3144.67114678508 0 982.582876044543 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3144.67114678508 0 982.582876044543 + vertex 3143.68618928011 0 973.211631370391 + endloop + endfacet + facet normal 4.85732549386901E-16 -1 -3.45616667508412E-15 + outer loop + vertex 2986.55749601496 0 1124.94904665665 + vertex 2995.88865745887 0 1126.26045587472 + vertex 2813 -3.10862446895044E-12 2000 + endloop + endfacet + facet normal 2.45199372354218E-16 -1 -3.50651439039312E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2995.88865745887 0 1126.26045587472 + vertex 3005.28856794516 0 1126.91776164758 + endloop + endfacet + facet normal 8.7804176896517E-15 -1 -1.6267087601359E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 3005.28856794516 0 1126.91776164758 + vertex 3167.0406138781 0 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3005.28856794516 0 1126.91776164758 + vertex 3014.71143205484 0 1126.91776164758 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3014.71143205484 0 1126.91776164758 + vertex 3024.11134254113 0 1126.26045587472 + endloop + endfacet + facet normal 1.3075813659231E-14 -1 -2.30561874283844E-15 + outer loop + vertex 2876.31381071989 0 1010.78836862961 + vertex 2877.95007390094 0 1020.0680782604 + vertex 2813 -3.10862446895044E-12 2000 + endloop + endfacet + facet normal 1.00513428622267E-14 -1 -2.50608124173115E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2877.95007390094 0 1020.0680782604 + vertex 2880.22967104833 0 1029.21104303529 + endloop + endfacet + facet normal 8.12376446117696E-15 -1 -2.63957108099303E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2880.22967104833 0 1029.21104303529 + vertex 2883.1414961939 0 1038.17271934897 + endloop + endfacet + facet normal 6.77636782949636E-15 -1 -2.73783031902247E-15 + outer loop + vertex 2883.1414961939 0 1038.17271934897 + vertex 2886.67136321825 0 1046.90944681523 + vertex 2813 -3.10862446895044E-12 2000 + endloop + endfacet + facet normal 5.77248276740028E-15 -1 -2.81542796259571E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2886.67136321825 0 1046.90944681523 + vertex 2890.80207496404 0 1055.3786609761 + endloop + endfacet + facet normal 4.98832948101919E-15 -1 -2.88001336867321E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2890.80207496404 0 1055.3786609761 + vertex 2895.51350701888 0 1063.53910067148 + endloop + endfacet + facet normal 4.35281378641178E-15 -1 -2.93600997116371E-15 + outer loop + vertex 2895.51350701888 0 1063.53910067148 + vertex 2900.78270575938 0 1071.35100905948 + vertex 2813 -3.10862446895044E-12 2000 + endloop + endfacet + facet normal 3.8221286968916E-15 -1 -2.98617421354022E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2900.78270575938 0 1071.35100905948 + vertex 2906.58400017894 0 1078.77632730768 + endloop + endfacet + facet normal 3.36774729525383E-15 -1 -3.03233328481972E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2906.58400017894 0 1078.77632730768 + vertex 2912.88912695428 0 1085.77888001196 + endloop + endfacet + facet normal 2.97023296799469E-15 -1 -3.07576627737874E-15 + outer loop + vertex 2912.88912695428 0 1085.77888001196 + vertex 2919.66736814155 0 1092.32455143945 + vertex 2813 -3.10862446895044E-12 2000 + endloop + endfacet + facet normal 2.61582226985072E-15 -1 -3.11741558768253E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2919.66736814155 0 1092.32455143945 + vertex 2926.88570083104 0 1098.38145173691 + endloop + endfacet + facet normal 2.29442965516389E-15 -1 -3.1580114951603E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2926.88570083104 0 1098.38145173691 + vertex 2934.50895803145 0 1103.92007229493 + endloop + endfacet + facet normal 1.9984257874258E-15 -1 -3.1981497913436E-15 + outer loop + vertex 2934.50895803145 0 1103.92007229493 + vertex 2942.5 0 1108.9134295109 + vertex 2813 -3.10862446895044E-12 2000 + endloop + endfacet + facet normal 1.72185749538562E-15 -1 -3.23834296112681E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2942.5 0 1108.9134295109 + vertex 2950.81989518347 0 1113.33719625039 + endloop + endfacet + facet normal 1.45992984426913E-15 -1 -3.27905611754868E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2950.81989518347 0 1113.33719625039 + vertex 2959.42810988885 0 1117.16982036652 + endloop + endfacet + facet normal 1.20864840363181E-15 -1 -3.32073419703839E-15 + outer loop + vertex 2959.42810988885 0 1117.16982036652 + vertex 2968.28270575938 0 1120.39262969985 + vertex 2813 -3.10862446895044E-12 2000 + endloop + endfacet + facet normal 9.64561147829862E-16 -1 -3.36382447890969E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2968.28270575938 0 1120.39262969985 + vertex 2977.34054409404 0 1122.98992304726 + endloop + endfacet + facet normal 7.24562218338632E-16 -1 -3.40879722858621E-15 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2977.34054409404 0 1122.98992304726 + vertex 2986.55749601496 0 1124.94904665665 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3024.11134254113 0 1126.26045587472 + vertex 3033.44250398504 0 1124.94904665665 + vertex 3167.0406138781 0 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3033.44250398504 0 1124.94904665665 + vertex 3042.65945590595 0 1122.98992304726 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3042.65945590595 0 1122.98992304726 + vertex 3051.71729424062 0 1120.39262969985 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3051.71729424062 0 1120.39262969985 + vertex 3060.57189011115 0 1117.16982036652 + vertex 3167.0406138781 0 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3060.57189011115 0 1117.16982036652 + vertex 3069.18010481652 0 1113.33719625039 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3069.18010481652 0 1113.33719625039 + vertex 3077.5 0 1108.9134295109 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3077.5 0 1108.9134295109 + vertex 3085.49104196855 0 1103.92007229493 + vertex 3167.0406138781 0 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3085.49104196855 0 1103.92007229493 + vertex 3093.11429916896 0 1098.38145173691 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3093.11429916896 0 1098.38145173691 + vertex 3100.33263185845 0 1092.32455143945 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3100.33263185845 0 1092.32455143945 + vertex 3107.11087304572 0 1085.77888001196 + vertex 3167.0406138781 0 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3107.11087304572 0 1085.77888001196 + vertex 3113.41599982106 0 1078.77632730768 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3113.41599982106 0 1078.77632730768 + vertex 3119.21729424062 0 1071.35100905948 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3119.21729424062 0 1071.35100905948 + vertex 3124.48649298112 0 1063.53910067148 + vertex 3167.0406138781 0 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3124.48649298112 0 1063.53910067148 + vertex 3129.19792503595 0 1055.3786609761 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3129.19792503595 0 1055.3786609761 + vertex 3133.32863678175 0 1046.90944681523 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3133.32863678175 0 1046.90944681523 + vertex 3136.8585038061 0 1038.17271934897 + vertex 3167.0406138781 0 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3136.8585038061 0 1038.17271934897 + vertex 3139.77032895167 0 1029.21104303529 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 2000 + vertex 3139.77032895167 0 1029.21104303529 + vertex 3142.04992609906 0 1020.0680782604 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3142.04992609906 0 1020.0680782604 + vertex 3143.68618928011 0 1010.78836862961 + vertex 3167.0406138781 0 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3143.68618928011 0 973.211631370391 + vertex 3142.04992609906 0 963.931921739603 + vertex 3167.0406138781 0 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3142.04992609906 0 963.931921739603 + vertex 3139.77032895167 0 954.788956964705 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3139.77032895167 0 954.788956964705 + vertex 3136.8585038061 0 945.827280651035 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3136.8585038061 0 945.827280651035 + vertex 3133.32863678175 0 937.090553184767 + vertex 3167.0406138781 0 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3133.32863678175 0 937.090553184767 + vertex 3129.19792503595 0 928.621339023905 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3129.19792503595 0 928.621339023905 + vertex 3124.48649298112 0 920.460899328517 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3124.48649298112 0 920.460899328517 + vertex 3119.21729424062 0 912.648990940516 + vertex 3167.0406138781 0 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3119.21729424062 0 912.648990940516 + vertex 3113.41599982106 0 905.223672692317 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3113.41599982106 0 905.223672692317 + vertex 3107.11087304572 0 898.221119988036 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3107.11087304572 0 898.221119988036 + vertex 3100.33263185845 0 891.675448560552 + vertex 3167.0406138781 0 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3100.33263185845 0 891.675448560552 + vertex 3093.11429916896 0 885.618548263093 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3093.11429916896 0 885.618548263093 + vertex 3085.49104196855 0 880.07992770507 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3085.49104196855 0 880.07992770507 + vertex 3077.5 0 875.086570489101 + vertex 3167.0406138781 0 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3077.5 0 875.086570489101 + vertex 3069.18010481652 0 870.662803749613 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3069.18010481652 0 870.662803749613 + vertex 3060.57189011115 0 866.830179633484 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3060.57189011115 0 866.830179633484 + vertex 3051.71729424062 0 863.607370300155 + vertex 3167.0406138781 0 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3051.71729424062 0 863.607370300155 + vertex 3042.65945590595 0 861.010076952741 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3167.0406138781 0 0 + vertex 3042.65945590595 0 861.010076952741 + vertex 3033.44250398504 0 859.050953343352 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 3033.44250398504 0 859.050953343352 + vertex 3024.11134254113 0 857.739544125283 + vertex 3167.0406138781 0 0 + endloop + endfacet + facet normal -5.26786907688016E-15 -1 -2.47833754718804E-14 + outer loop + vertex 2986.55749601496 0 859.050953343352 + vertex 2977.34054409404 0 861.010076952741 + vertex 2813 2.22044604925031E-11 0 + endloop + endfacet + facet normal -7.01110937611889E-15 -1 -2.44506441056257E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2977.34054409404 0 861.010076952741 + vertex 2968.28270575938 0 863.607370300154 + endloop + endfacet + facet normal -8.78332503831987E-15 -1 -2.41319872105138E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2968.28270575938 0 863.607370300154 + vertex 2959.42810988885 0 866.830179633484 + endloop + endfacet + facet normal -1.06070883391586E-14 -1 -2.38239104738E-14 + outer loop + vertex 2959.42810988885 0 866.830179633484 + vertex 2950.81989518347 0 870.662803749613 + vertex 2813 2.22044604925031E-11 0 + endloop + endfacet + facet normal -1.25074520343237E-14 -1 -2.3523096055003E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2950.81989518347 0 870.662803749613 + vertex 2942.5 0 875.086570489101 + endloop + endfacet + facet normal -1.45133713851262E-14 -1 -2.32262493604139E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2942.5 0 875.086570489101 + vertex 2934.50895803145 0 880.07992770507 + endloop + endfacet + facet normal -1.66595711457287E-14 -1 -2.29299325277847E-14 + outer loop + vertex 2934.50895803145 0 880.07992770507 + vertex 2926.88570083104 0 885.618548263093 + vertex 2813 2.22044604925031E-11 0 + endloop + endfacet + facet normal -1.89891300791066E-14 -1 -2.26303639920135E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2926.88570083104 0 885.618548263093 + vertex 2919.66736814155 0 891.675448560552 + endloop + endfacet + facet normal -2.1557219523367E-14 -1 -2.23231542974845E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2919.66736814155 0 891.675448560552 + vertex 2912.88912695428 0 898.221119988035 + endloop + endfacet + facet normal -2.44367299683285E-14 -1 -2.20029304928975E-14 + outer loop + vertex 2912.88912695428 0 898.221119988035 + vertex 2906.58400017894 0 905.223672692317 + vertex 2813 2.22044604925031E-11 0 + endloop + endfacet + facet normal -2.77270775718644E-14 -1 -2.16627671719338E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2906.58400017894 0 905.223672692317 + vertex 2900.78270575938 0 912.648990940516 + endloop + endfacet + facet normal -3.15685774406172E-14 -1 -2.12932743482951E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2900.78270575938 0 912.648990940516 + vertex 2895.51350701888 0 920.460899328517 + endloop + endfacet + facet normal -3.61670414075403E-14 -1 -2.08810510924376E-14 + outer loop + vertex 2895.51350701888 0 920.460899328517 + vertex 2890.80207496404 0 928.621339023905 + vertex 2813 2.22044604925031E-11 0 + endloop + endfacet + facet normal -4.18382954134497E-14 -1 -2.04059001231829E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2890.80207496404 0 928.621339023905 + vertex 2886.67136321825 0 937.090553184767 + endloop + endfacet + facet normal -4.90944433347936E-14 -1 -1.98354426500369E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2886.67136321825 0 937.090553184767 + vertex 2883.1414961939 0 945.827280651035 + endloop + endfacet + facet normal -5.8826088231627E-14 -1 -1.91137547187882E-14 + outer loop + vertex 2883.1414961939 0 945.827280651035 + vertex 2880.22967104833 0 954.788956964705 + vertex 2813 2.22044604925031E-11 0 + endloop + endfacet + facet normal -7.2733475437218E-14 -1 -1.81344921706059E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2880.22967104833 0 954.788956964705 + vertex 2877.95007390094 0 963.931921739603 + endloop + endfacet + facet normal -9.45203373780118E-14 -1 -1.66664857054084E-14 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2877.95007390094 0 963.931921739603 + vertex 2876.31381071989 0 973.211631370391 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 1803 80.0000000000001 1480.38475772934 + vertex 1803 80.0000000000001 2000 + vertex 1803 380 2000 + endloop + endfacet + facet normal 0 -0.866025403784439 0.499999999999999 + outer loop + vertex 1797 380 2000 + vertex 1797 80.0000000000001 1480.38475772934 + vertex 1803 380 2000 + endloop + endfacet + facet normal 2.31296463463574E-14 -0.866025403784439 0.499999999999999 + outer loop + vertex 1803 380 2000 + vertex 1797 80.0000000000001 1480.38475772934 + vertex 1803 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 1 0 + outer loop + vertex 1783.5 72.0000000000001 2000 + vertex 1822.5 72.0000000000001 2000 + vertex 1783.5 72.0000000000001 0 + endloop + endfacet + facet normal 0 1 0 + outer loop + vertex 1783.5 72.0000000000001 0 + vertex 1822.5 72.0000000000001 2000 + vertex 1822.5 72.0000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 1783.5 8.00000000000001 2000 + vertex 1783.5 72.0000000000001 2000 + vertex 1783.5 8.00000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 1783.5 8.00000000000001 0 + vertex 1783.5 72.0000000000001 2000 + vertex 1783.5 72.0000000000001 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 1797 80.0000000000001 1480.38475772934 + vertex 1797 380 2000 + vertex 1797 80.0000000000001 2000 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 1822.5 72.0000000000001 2000 + vertex 1822.5 80.0000000000001 2000 + vertex 1822.5 72.0000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 1822.5 72.0000000000001 0 + vertex 1822.5 80.0000000000001 2000 + vertex 1822.5 80.0000000000001 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1822.5 8.00000000000001 2000 + vertex 1783.5 8.00000000000001 2000 + vertex 1822.5 8.00000000000001 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1822.5 8.00000000000001 0 + vertex 1783.5 8.00000000000001 2000 + vertex 1783.5 8.00000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 1822.5 0 2000 + vertex 1822.5 8.00000000000001 2000 + vertex 1822.5 0 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 1822.5 0 0 + vertex 1822.5 8.00000000000001 2000 + vertex 1822.5 8.00000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 1803 80.0000000000001 519.615242270664 + vertex 1803 380 1.11022302462516E-13 + vertex 1803 80.0000000000001 0 + endloop + endfacet + facet normal -9.25185853854295E-15 -0.866025403784439 -0.499999999999999 + outer loop + vertex 1797 80.0000000000001 519.615242270664 + vertex 1797 380 1.11022302462516E-13 + vertex 1803 80.0000000000001 519.615242270664 + endloop + endfacet + facet normal 0 -0.866025403784439 -0.499999999999999 + outer loop + vertex 1803 80.0000000000001 519.615242270664 + vertex 1797 380 1.11022302462516E-13 + vertex 1803 380 1.11022302462516E-13 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 1777.5 80.0000000000001 2000 + vertex 1777.5 0 2000 + vertex 1777.5 80.0000000000001 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 1777.5 80.0000000000001 0 + vertex 1777.5 0 2000 + vertex 1777.5 0 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 1797 80.0000000000001 519.615242270664 + vertex 1797 80.0000000000001 0 + vertex 1797 380 1.11022302462516E-13 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1797 80.0000000000001 0 + vertex 1797 80.0000000000001 519.615242270664 + vertex 1777.5 80.0000000000001 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1777.5 80.0000000000001 0 + vertex 1797 80.0000000000001 519.615242270664 + vertex 1797 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1777.5 80.0000000000001 0 + vertex 1797 80.0000000000001 1480.38475772934 + vertex 1777.5 80.0000000000001 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1777.5 80.0000000000001 2000 + vertex 1797 80.0000000000001 1480.38475772934 + vertex 1797 80.0000000000001 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1797 80.0000000000001 519.615242270664 + vertex 1803 80.0000000000001 519.615242270664 + vertex 1797 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1797 80.0000000000001 1480.38475772934 + vertex 1803 80.0000000000001 519.615242270664 + vertex 1803 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1803 80.0000000000001 0 + vertex 1822.5 80.0000000000001 0 + vertex 1803 80.0000000000001 519.615242270664 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1803 80.0000000000001 519.615242270664 + vertex 1822.5 80.0000000000001 0 + vertex 1803 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1822.5 80.0000000000001 0 + vertex 1822.5 80.0000000000001 2000 + vertex 1803 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1803 80.0000000000001 1480.38475772934 + vertex 1822.5 80.0000000000001 2000 + vertex 1803 80.0000000000001 2000 + endloop + endfacet + facet normal -1.13384479110654E-13 -1 0 + outer loop + vertex 2577.5 0 2000 + vertex 2413 1.86517468137026E-11 2000 + vertex 2577.5 0 0 + endloop + endfacet + facet normal -1.13384479110654E-13 -1 0 + outer loop + vertex 2577.5 0 0 + vertex 2413 1.86517468137026E-11 2000 + vertex 2413 1.86517468137026E-11 0 + endloop + endfacet + facet normal 1.20349379363161E-13 -1 0 + outer loop + vertex 2622.5 0 0 + vertex 2807 2.22044604925031E-11 0 + vertex 2622.5 0 2000 + endloop + endfacet + facet normal 1.20349379363161E-13 -1 0 + outer loop + vertex 2622.5 0 2000 + vertex 2807 2.22044604925031E-11 0 + vertex 2807 2.22044604925031E-11 2000 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 603 80.0000000000001 1480.38475772934 + vertex 603 80.0000000000001 2000 + vertex 603 380 2000 + endloop + endfacet + facet normal 0 -0.866025403784439 0.499999999999999 + outer loop + vertex 597 380 2000 + vertex 597 80.0000000000001 1480.38475772934 + vertex 603 380 2000 + endloop + endfacet + facet normal 2.31296463463574E-14 -0.866025403784439 0.499999999999999 + outer loop + vertex 603 380 2000 + vertex 597 80.0000000000001 1480.38475772934 + vertex 603 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 1 0 + outer loop + vertex 583.5 72.0000000000001 2000 + vertex 622.5 72.0000000000001 2000 + vertex 583.5 72.0000000000001 0 + endloop + endfacet + facet normal 0 1 0 + outer loop + vertex 583.5 72.0000000000001 0 + vertex 622.5 72.0000000000001 2000 + vertex 622.5 72.0000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 583.5 8.00000000000001 2000 + vertex 583.5 72.0000000000001 2000 + vertex 583.5 8.00000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 583.5 8.00000000000001 0 + vertex 583.5 72.0000000000001 2000 + vertex 583.5 72.0000000000001 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 597 80.0000000000001 1480.38475772934 + vertex 597 380 2000 + vertex 597 80.0000000000001 2000 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 622.5 72.0000000000001 2000 + vertex 622.5 80.0000000000001 2000 + vertex 622.5 72.0000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 622.5 72.0000000000001 0 + vertex 622.5 80.0000000000001 2000 + vertex 622.5 80.0000000000001 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 622.5 8.00000000000001 2000 + vertex 583.5 8.00000000000001 2000 + vertex 622.5 8.00000000000001 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 622.5 8.00000000000001 0 + vertex 583.5 8.00000000000001 2000 + vertex 583.5 8.00000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 622.5 0 2000 + vertex 622.5 8.00000000000001 2000 + vertex 622.5 0 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 622.5 0 0 + vertex 622.5 8.00000000000001 2000 + vertex 622.5 8.00000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 603 80.0000000000001 519.615242270664 + vertex 603 380 1.11022302462516E-13 + vertex 603 80.0000000000001 0 + endloop + endfacet + facet normal -9.25185853854295E-15 -0.866025403784439 -0.499999999999999 + outer loop + vertex 597 80.0000000000001 519.615242270664 + vertex 597 380 1.11022302462516E-13 + vertex 603 80.0000000000001 519.615242270664 + endloop + endfacet + facet normal 0 -0.866025403784439 -0.499999999999999 + outer loop + vertex 603 80.0000000000001 519.615242270664 + vertex 597 380 1.11022302462516E-13 + vertex 603 380 1.11022302462516E-13 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 577.5 80.0000000000001 2000 + vertex 577.5 0 2000 + vertex 577.5 80.0000000000001 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 577.5 80.0000000000001 0 + vertex 577.5 0 2000 + vertex 577.5 0 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 597 80.0000000000001 519.615242270664 + vertex 597 80.0000000000001 0 + vertex 597 380 1.11022302462516E-13 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 597 80.0000000000001 0 + vertex 597 80.0000000000001 519.615242270664 + vertex 577.5 80.0000000000001 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 577.5 80.0000000000001 0 + vertex 597 80.0000000000001 519.615242270664 + vertex 597 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 577.5 80.0000000000001 0 + vertex 597 80.0000000000001 1480.38475772934 + vertex 577.5 80.0000000000001 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 577.5 80.0000000000001 2000 + vertex 597 80.0000000000001 1480.38475772934 + vertex 597 80.0000000000001 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 597 80.0000000000001 519.615242270664 + vertex 603 80.0000000000001 519.615242270664 + vertex 597 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 597 80.0000000000001 1480.38475772934 + vertex 603 80.0000000000001 519.615242270664 + vertex 603 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 603 80.0000000000001 0 + vertex 622.5 80.0000000000001 0 + vertex 603 80.0000000000001 519.615242270664 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 603 80.0000000000001 519.615242270664 + vertex 622.5 80.0000000000001 0 + vertex 603 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 622.5 80.0000000000001 0 + vertex 622.5 80.0000000000001 2000 + vertex 603 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 603 80.0000000000001 1480.38475772934 + vertex 622.5 80.0000000000001 2000 + vertex 603 80.0000000000001 2000 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 0 0 2000 + vertex 0 750 2000 + vertex 0 0 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 0 0 0 + vertex 0 750 2000 + vertex 0 750 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 407 0 2000 + vertex 0 0 2000 + vertex 407 0 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 407 0 0 + vertex 0 0 2000 + vertex 0 0 0 + endloop + endfacet + facet normal 0.669130606358858 -0.743144825477394 0 + outer loop + vertex 4000 750.000000000002 2000 + vertex 3167.0406138781 0 2000 + vertex 4000 750.000000000002 0 + endloop + endfacet + facet normal 0.669130606358858 -0.743144825477394 0 + outer loop + vertex 4000 750.000000000002 0 + vertex 3167.0406138781 0 2000 + vertex 3167.0406138781 0 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 2807 50.0000000000225 2000 + vertex 2807 2.22044604925031E-11 2000 + vertex 2807 50.0000000000225 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 2807 50.0000000000225 0 + vertex 2807 2.22044604925031E-11 2000 + vertex 2807 2.22044604925031E-11 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2813 -3.10862446895044E-12 2000 + vertex 2813 50.0000000000225 2000 + vertex 2813 2.22044604925031E-11 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2813 2.22044604925031E-11 0 + vertex 2813 50.0000000000225 2000 + vertex 2813 50.0000000000225 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2813 50.0000000000225 2000 + vertex 2807 50.0000000000225 2000 + vertex 2813 50.0000000000225 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2813 50.0000000000225 0 + vertex 2807 50.0000000000225 2000 + vertex 2807 50.0000000000225 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 407 49.9999999999998 2000 + vertex 407 0 2000 + vertex 407 49.9999999999998 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 407 49.9999999999998 0 + vertex 407 0 2000 + vertex 407 0 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 413 0 2000 + vertex 413 49.9999999999998 2000 + vertex 413 0 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 413 0 0 + vertex 413 49.9999999999998 2000 + vertex 413 49.9999999999998 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 413 49.9999999999998 2000 + vertex 407 49.9999999999998 2000 + vertex 413 49.9999999999998 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 413 49.9999999999998 0 + vertex 407 49.9999999999998 2000 + vertex 407 49.9999999999998 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 807 50.0000000000038 2000 + vertex 807 3.5527136788005E-12 2000 + vertex 807 50.0000000000038 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 807 50.0000000000038 0 + vertex 807 3.5527136788005E-12 2000 + vertex 807 3.5527136788005E-12 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 813 3.5527136788005E-12 2000 + vertex 813 50.0000000000038 2000 + vertex 813 3.5527136788005E-12 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 813 3.5527136788005E-12 0 + vertex 813 50.0000000000038 2000 + vertex 813 50.0000000000038 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 813 50.0000000000038 2000 + vertex 807 50.0000000000038 2000 + vertex 813 50.0000000000038 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 813 50.0000000000038 0 + vertex 807 50.0000000000038 2000 + vertex 807 50.0000000000038 0 + endloop + endfacet + facet normal 9.0170397939099E-15 -1 0 + outer loop + vertex 1607 1.11022302462516E-11 2000 + vertex 1213 7.54951656745106E-12 2000 + vertex 1607 1.11022302462516E-11 0 + endloop + endfacet + facet normal 9.0170397939099E-15 -1 0 + outer loop + vertex 1607 1.11022302462516E-11 0 + vertex 1213 7.54951656745106E-12 2000 + vertex 1213 7.54951656745106E-12 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 1207 50.0000000000074 2000 + vertex 1207 7.54951656745106E-12 2000 + vertex 1207 50.0000000000074 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 1207 50.0000000000074 0 + vertex 1207 7.54951656745106E-12 2000 + vertex 1207 7.54951656745106E-12 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 1213 7.54951656745106E-12 2000 + vertex 1213 50.0000000000074 2000 + vertex 1213 7.54951656745106E-12 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 1213 7.54951656745106E-12 0 + vertex 1213 50.0000000000074 2000 + vertex 1213 50.0000000000074 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1213 50.0000000000074 2000 + vertex 1207 50.0000000000074 2000 + vertex 1213 50.0000000000074 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1213 50.0000000000074 0 + vertex 1207 50.0000000000074 2000 + vertex 1207 50.0000000000074 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 1607 50.0000000000114 2000 + vertex 1607 1.11022302462516E-11 2000 + vertex 1607 50.0000000000114 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 1607 50.0000000000114 0 + vertex 1607 1.11022302462516E-11 2000 + vertex 1607 1.11022302462516E-11 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 1613 1.11022302462516E-11 2000 + vertex 1613 50.0000000000114 2000 + vertex 1613 1.11022302462516E-11 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 1613 1.11022302462516E-11 0 + vertex 1613 50.0000000000114 2000 + vertex 1613 50.0000000000114 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1613 50.0000000000114 2000 + vertex 1607 50.0000000000114 2000 + vertex 1613 50.0000000000114 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1613 50.0000000000114 0 + vertex 1607 50.0000000000114 2000 + vertex 1607 50.0000000000114 0 + endloop + endfacet + facet normal 9.0170397939099E-15 -1 0 + outer loop + vertex 2407 1.86517468137026E-11 2000 + vertex 2013 1.50990331349021E-11 2000 + vertex 2407 1.86517468137026E-11 0 + endloop + endfacet + facet normal 9.0170397939099E-15 -1 0 + outer loop + vertex 2407 1.86517468137026E-11 0 + vertex 2013 1.50990331349021E-11 2000 + vertex 2013 1.50990331349021E-11 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 2007 50.0000000000149 2000 + vertex 2007 1.50990331349021E-11 2000 + vertex 2007 50.0000000000149 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 2007 50.0000000000149 0 + vertex 2007 1.50990331349021E-11 2000 + vertex 2007 1.50990331349021E-11 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2013 1.50990331349021E-11 2000 + vertex 2013 50.0000000000149 2000 + vertex 2013 1.50990331349021E-11 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2013 1.50990331349021E-11 0 + vertex 2013 50.0000000000149 2000 + vertex 2013 50.0000000000149 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2013 50.0000000000149 2000 + vertex 2007 50.0000000000149 2000 + vertex 2013 50.0000000000149 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2013 50.0000000000149 0 + vertex 2007 50.0000000000149 2000 + vertex 2007 50.0000000000149 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 2407 50.0000000000185 2000 + vertex 2407 1.86517468137026E-11 2000 + vertex 2407 50.0000000000185 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 2407 50.0000000000185 0 + vertex 2407 1.86517468137026E-11 2000 + vertex 2407 1.86517468137026E-11 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2413 1.86517468137026E-11 2000 + vertex 2413 50.0000000000185 2000 + vertex 2413 1.86517468137026E-11 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2413 1.86517468137026E-11 0 + vertex 2413 50.0000000000185 2000 + vertex 2413 50.0000000000185 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2413 50.0000000000185 2000 + vertex 2407 50.0000000000185 2000 + vertex 2413 50.0000000000185 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2413 50.0000000000185 0 + vertex 2407 50.0000000000185 2000 + vertex 2407 50.0000000000185 0 + endloop + endfacet + facet normal 1.92559006981057E-14 -1 0 + outer loop + vertex 622.5 0 0 + vertex 807 3.5527136788005E-12 0 + vertex 622.5 0 2000 + endloop + endfacet + facet normal 1.92559006981057E-14 -1 0 + outer loop + vertex 622.5 0 2000 + vertex 807 3.5527136788005E-12 0 + vertex 807 3.5527136788005E-12 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 577.5 0 2000 + vertex 413 0 2000 + vertex 577.5 0 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 577.5 0 0 + vertex 413 0 2000 + vertex 413 0 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2597 80.0000000000001 0 + vertex 2597 80.0000000000001 519.615242270664 + vertex 2577.5 80.0000000000001 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2577.5 80.0000000000001 0 + vertex 2597 80.0000000000001 519.615242270664 + vertex 2597 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2577.5 80.0000000000001 0 + vertex 2597 80.0000000000001 1480.38475772934 + vertex 2577.5 80.0000000000001 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2577.5 80.0000000000001 2000 + vertex 2597 80.0000000000001 1480.38475772934 + vertex 2597 80.0000000000001 2000 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2597 80.0000000000001 519.615242270664 + vertex 2603 80.0000000000001 519.615242270664 + vertex 2597 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2597 80.0000000000001 1480.38475772934 + vertex 2603 80.0000000000001 519.615242270664 + vertex 2603 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2603 80.0000000000001 0 + vertex 2622.5 80.0000000000001 0 + vertex 2603 80.0000000000001 519.615242270664 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2603 80.0000000000001 519.615242270664 + vertex 2622.5 80.0000000000001 0 + vertex 2603 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2622.5 80.0000000000001 0 + vertex 2622.5 80.0000000000001 2000 + vertex 2603 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2603 80.0000000000001 1480.38475772934 + vertex 2622.5 80.0000000000001 2000 + vertex 2603 80.0000000000001 2000 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 2597 80.0000000000001 519.615242270664 + vertex 2597 80.0000000000001 0 + vertex 2597 380 1.11022302462516E-13 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 2577.5 80.0000000000001 2000 + vertex 2577.5 0 2000 + vertex 2577.5 80.0000000000001 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 2577.5 80.0000000000001 0 + vertex 2577.5 0 2000 + vertex 2577.5 0 0 + endloop + endfacet + facet normal -9.25185853854329E-15 -0.866025403784439 -0.499999999999999 + outer loop + vertex 2597 80.0000000000001 519.615242270664 + vertex 2597 380 1.11022302462516E-13 + vertex 2603 80.0000000000001 519.615242270664 + endloop + endfacet + facet normal 0 -0.866025403784439 -0.499999999999999 + outer loop + vertex 2603 80.0000000000001 519.615242270664 + vertex 2597 380 1.11022302462516E-13 + vertex 2603 380 1.11022302462516E-13 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2603 80.0000000000001 519.615242270664 + vertex 2603 380 1.11022302462516E-13 + vertex 2603 80.0000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2622.5 0 2000 + vertex 2622.5 8.00000000000001 2000 + vertex 2622.5 0 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2622.5 0 0 + vertex 2622.5 8.00000000000001 2000 + vertex 2622.5 8.00000000000001 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2622.5 8.00000000000001 2000 + vertex 2583.5 8.00000000000001 2000 + vertex 2622.5 8.00000000000001 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 2622.5 8.00000000000001 0 + vertex 2583.5 8.00000000000001 2000 + vertex 2583.5 8.00000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2622.5 72.0000000000001 2000 + vertex 2622.5 80.0000000000001 2000 + vertex 2622.5 72.0000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2622.5 72.0000000000001 0 + vertex 2622.5 80.0000000000001 2000 + vertex 2622.5 80.0000000000001 0 + endloop + endfacet + facet normal 1 0 0 + outer loop + vertex 2597 80.0000000000001 1480.38475772934 + vertex 2597 380 2000 + vertex 2597 80.0000000000001 2000 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2583.5 8.00000000000001 2000 + vertex 2583.5 72.0000000000001 2000 + vertex 2583.5 8.00000000000001 0 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2583.5 8.00000000000001 0 + vertex 2583.5 72.0000000000001 2000 + vertex 2583.5 72.0000000000001 0 + endloop + endfacet + facet normal 0 1 0 + outer loop + vertex 2583.5 72.0000000000001 2000 + vertex 2622.5 72.0000000000001 2000 + vertex 2583.5 72.0000000000001 0 + endloop + endfacet + facet normal 0 1 0 + outer loop + vertex 2583.5 72.0000000000001 0 + vertex 2622.5 72.0000000000001 2000 + vertex 2622.5 72.0000000000001 0 + endloop + endfacet + facet normal 0 -0.866025403784439 0.499999999999999 + outer loop + vertex 2597 380 2000 + vertex 2597 80.0000000000001 1480.38475772934 + vertex 2603 380 2000 + endloop + endfacet + facet normal 2.31296463463582E-14 -0.866025403784439 0.499999999999999 + outer loop + vertex 2603 380 2000 + vertex 2597 80.0000000000001 1480.38475772934 + vertex 2603 80.0000000000001 1480.38475772934 + endloop + endfacet + facet normal -1 0 0 + outer loop + vertex 2603 80.0000000000001 1480.38475772934 + vertex 2603 80.0000000000001 2000 + vertex 2603 380 2000 + endloop + endfacet + facet normal 8.18375779669493E-14 -1 0 + outer loop + vertex 1822.5 0 0 + vertex 2007 1.50990331349021E-11 0 + vertex 1822.5 0 2000 + endloop + endfacet + facet normal 8.18375779669493E-14 -1 0 + outer loop + vertex 1822.5 0 2000 + vertex 2007 1.50990331349021E-11 0 + vertex 2007 1.50990331349021E-11 2000 + endloop + endfacet + facet normal -6.74907613753895E-14 -1 0 + outer loop + vertex 1777.5 0 2000 + vertex 1613 1.11022302462516E-11 2000 + vertex 1777.5 0 0 + endloop + endfacet + facet normal -6.74907613753895E-14 -1 0 + outer loop + vertex 1777.5 0 0 + vertex 1613 1.11022302462516E-11 2000 + vertex 1613 1.11022302462516E-11 0 + endloop + endfacet + facet normal -0.857113923559815 0.515126898967525 -5.90484369075589E-16 + outer loop + vertex -326.886202068019 1064.13868138561 920.236451820835 + vertex -335.058567801204 1050.54077284622 575 + vertex -327.331664316692 1063.39748169962 945 + endloop + endfacet + facet normal -0.857113923559823 0.515126898967513 0 + outer loop + vertex -327.331664316692 1063.39748169962 945 + vertex -335.058567801204 1050.54077284622 575 + vertex -335.058567801204 1050.54077284622 1315 + endloop + endfacet + facet normal -0.857113923559815 0.515126898967525 5.9048436907559E-16 + outer loop + vertex -327.331664316692 1063.39748169962 945 + vertex -335.058567801204 1050.54077284622 1315 + vertex -326.886202068019 1064.13868138561 969.763548179164 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -2.95275457631256E-16 + outer loop + vertex -326.886202068019 1064.13868138561 969.763548179164 + vertex -335.058567801204 1050.54077284622 1315 + vertex -325.551985569299 1066.3586693932 994.406450840823 + endloop + endfacet + facet normal -0.857113923559841 0.515126898967482 1.70837943343789E-15 + outer loop + vertex -326.886202068019 1064.13868138561 920.236451820835 + vertex -325.551985569299 1066.3586693932 895.593549159176 + vertex -335.058567801204 1050.54077284622 575 + endloop + endfacet + facet normal -0.857113923559819 0.515126898967519 -7.85105163394756E-16 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -325.551985569299 1066.3586693932 895.593549159176 + vertex -323.335514989199 1070.04663016398 871.191349759695 + endloop + endfacet + facet normal -0.857113923559829 0.515126898967503 7.00186938505202E-16 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -323.335514989199 1070.04663016398 871.191349759695 + vertex -320.247588749585 1075.18459632378 847.148738684965 + endloop + endfacet + facet normal -0.857113923559824 0.515126898967511 -3.38639251214349E-16 + outer loop + vertex -320.247588749585 1075.18459632378 847.148738684965 + vertex -316.3032509167 1081.74753621794 823.582849119388 + vertex -335.058567801204 1050.54077284622 575 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 1.03458271719863E-16 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -316.3032509167 1081.74753621794 823.582849119388 + vertex -311.521717907983 1089.703475863 800.608491708091 + endloop + endfacet + facet normal -0.857113923559827 0.515126898967505 8.12791740893326E-16 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -311.521717907983 1089.703475863 800.608491708091 + vertex -305.926284871613 1099.01365472074 778.337595211009 + endloop + endfacet + facet normal -0.857113923559823 0.515126898967513 -1.48131126066322E-15 + outer loop + vertex -305.926284871613 1099.01365472074 778.337595211009 + vertex -299.544212194894 1109.63271453561 756.878661197212 + vertex -335.058567801204 1050.54077284622 575 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 1.1017270284121E-16 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -299.544212194894 1109.63271453561 756.878661197212 + vertex -292.406592694381 1121.50892031563 736.336235436172 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 7.44435333314754E-16 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -292.406592694381 1121.50892031563 736.336235436172 + vertex -284.548200134812 1134.58441238003 716.810398561278 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967507 1.38237210025461E-15 + outer loop + vertex -284.548200134812 1134.58441238003 716.810398561278 + vertex -276.007319814813 1148.7954882458 698.396278487056 + vertex -335.058567801204 1050.54077284622 575 + endloop + endfacet + facet normal -0.857113923559825 0.51512689896751 -1.45509081899721E-15 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -276.007319814813 1148.7954882458 698.396278487056 + vertex -266.825562044776 1164.07291297984 681.183586955525 + endloop + endfacet + facet normal -0.857113923559825 0.51512689896751 -1.26154048878741E-15 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -266.825562044776 1164.07291297984 681.183586955525 + vertex -257.047659425611 1180.3422565045 665.256182469614 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967507 3.67255206157128E-15 + outer loop + vertex -257.047659425611 1180.3422565045 665.256182469614 + vertex -246.721248916007 1197.52425621354 650.69166174296 + vertex -335.058567801204 1050.54077284622 575 + endloop + endfacet + facet normal -0.857113923559825 0.51512689896751 -2.25741424552475E-15 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -246.721248916007 1197.52425621354 650.69166174296 + vertex -235.896639749959 1215.53520313149 637.560981656524 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 0 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -235.896639749959 1215.53520313149 637.560981656524 + vertex -224.626568335238 1234.28734973543 625.928113563795 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 4.97368094645884E-15 + outer loop + vertex -224.626568335238 1234.28734973543 625.928113563795 + vertex -212.965941326914 1253.68933745206 615.84973162879 + vertex -335.058567801204 1050.54077284622 575 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 3.51655905738554E-15 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -212.965941326914 1253.68933745206 615.84973162879 + vertex -200.971568127649 1273.6466417475 607.37493671522 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.7222538157351E-15 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -200.971568127649 1273.6466417475 607.37493671522 + vertex -188.701884117999 1294.06203264134 600.545017172021 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.08215327091173E-15 + outer loop + vertex -188.701884117999 1294.06203264134 600.545017172021 + vertex -176.216665965115 1314.83604840127 595.393247680666 + vertex -335.058567801204 1050.54077284622 575 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -4.43729262008601E-15 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -176.216665965115 1314.83604840127 595.393247680666 + vertex -163.576740396828 1335.86748011073 591.944727144263 + endloop + endfacet + facet normal -0.857113923559824 0.51512689896751 -2.79163928242176E-14 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -163.576740396828 1335.86748011073 591.944727144263 + vertex -150.843687859946 1357.05386474848 590.216256408221 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967509 2.4693299263513E-15 + outer loop + vertex -335.058567801204 1050.54077284622 575 + vertex -150.843687859946 1357.05386474848 590.216256408221 + vertex 45.4614683437251 1683.68383298737 575 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967507 -5.52110709419204E-14 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex -150.843687859946 1357.05386474848 590.216256408221 + vertex -138.079542506507 1378.29198437823 590.216256408221 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -6.99500638680879E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex -138.079542506507 1378.29198437823 590.216256408221 + vertex -125.346489969625 1399.47836901599 591.944727144263 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -5.56266317632282E-16 + outer loop + vertex -125.346489969625 1399.47836901599 591.944727144263 + vertex -112.706564401338 1420.50980072545 595.393247680666 + vertex 45.4614683437251 1683.68383298737 575 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -3.34225958141348E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex -112.706564401338 1420.50980072545 595.393247680666 + vertex -100.221346248454 1441.28381648538 600.545017172021 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -2.73182947868285E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex -100.221346248454 1441.28381648538 600.545017172021 + vertex -87.9516622388038 1461.69920737922 607.37493671522 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967509 -3.82392873496077E-15 + outer loop + vertex -87.9516622388038 1461.69920737922 607.37493671522 + vertex -75.9572890395383 1481.65651167466 615.84973162879 + vertex 45.4614683437251 1683.68383298737 575 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 3.15382129646057E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex -75.9572890395383 1481.65651167466 615.84973162879 + vertex -64.2966620312141 1501.05849939129 625.928113563796 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 1.93131503046097E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex -64.2966620312141 1501.05849939129 625.928113563796 + vertex -53.0265906164935 1519.81064599523 637.560981656524 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -4.13828133090584E-15 + outer loop + vertex -53.0265906164935 1519.81064599523 637.560981656524 + vertex -42.2019814504457 1537.82159291318 650.69166174296 + vertex 45.4614683437251 1683.68383298737 575 + endloop + endfacet + facet normal -0.857113923559825 0.51512689896751 1.30237518569879E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex -42.2019814504457 1537.82159291318 650.69166174296 + vertex -31.8755709408414 1555.00359262222 665.256182469613 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 8.4529637444719E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex -31.8755709408414 1555.00359262222 665.256182469613 + vertex -22.0976683216764 1571.27293614688 681.183586955525 + endloop + endfacet + facet normal -0.857113923559827 0.515126898967507 -2.87372178100214E-15 + outer loop + vertex -22.0976683216764 1571.27293614688 681.183586955525 + vertex -12.91591055164 1586.55036088092 698.396278487056 + vertex 45.4614683437251 1683.68383298737 575 + endloop + endfacet + facet normal -0.857113923559825 0.51512689896751 6.29628496426095E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex -12.91591055164 1586.55036088092 698.396278487056 + vertex -4.37503023164065 1600.76143674669 716.810398561278 + endloop + endfacet + facet normal -0.857113923559825 0.51512689896751 7.49127629889046E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex -4.37503023164065 1600.76143674669 716.810398561278 + vertex 3.48336232792887 1613.83692881109 736.336235436172 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -2.7732499762673E-17 + outer loop + vertex 3.48336232792887 1613.83692881109 736.336235436172 + vertex 10.6209818284412 1625.71313459111 756.878661197212 + vertex 45.4614683437251 1683.68383298737 575 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -5.26777263587223E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex 10.6209818284412 1625.71313459111 756.878661197212 + vertex 17.0030545051607 1636.33219440598 778.337595211009 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -3.15260489950079E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex 17.0030545051607 1636.33219440598 778.337595211009 + vertex 22.5984875415303 1645.64237326372 800.608491708091 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -5.13579434680307E-16 + outer loop + vertex 22.5984875415303 1645.64237326372 800.608491708091 + vertex 27.3800205502477 1653.59831290878 823.582849119388 + vertex 45.4614683437251 1683.68383298737 575 + endloop + endfacet + facet normal -0.857113923559824 0.515126898967512 1.7867605689496E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex 27.3800205502477 1653.59831290878 823.582849119388 + vertex 31.3243583831324 1660.16125280294 847.148738684965 + endloop + endfacet + facet normal -0.857113923559827 0.515126898967505 -5.44178790493769E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex 31.3243583831324 1660.16125280294 847.148738684965 + vertex 34.412284622746 1665.29921896274 871.191349759695 + endloop + endfacet + facet normal -0.857113923559821 0.515126898967517 3.95753509073291E-16 + outer loop + vertex 34.412284622746 1665.29921896274 871.191349759695 + vertex 36.6287552028466 1668.98717973352 895.593549159177 + vertex 45.4614683437251 1683.68383298737 575 + endloop + endfacet + facet normal -0.857113923559838 0.515126898967488 -1.40619520767195E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex 36.6287552028466 1668.98717973352 895.593549159177 + vertex 37.9629717015665 1671.20716774111 920.236451820835 + endloop + endfacet + facet normal -0.857113923559801 0.515126898967548 1.58347818213813E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex 37.9629717015665 1671.20716774111 920.236451820835 + vertex 38.4084339502391 1671.9483674271 945 + endloop + endfacet + facet normal -0.857113923559823 0.515126898967512 0 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex 38.4084339502391 1671.9483674271 945 + vertex 45.4614683437251 1683.68383298737 1315 + endloop + endfacet + facet normal -0.857113923559802 0.515126898967548 -1.58347818213812E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex 38.4084339502391 1671.9483674271 945 + vertex 37.9629717015665 1671.20716774111 969.763548179164 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 3.56957245024439E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex 37.9629717015665 1671.20716774111 969.763548179164 + vertex 36.6287552028466 1668.98717973352 994.406450840823 + endloop + endfacet + facet normal -0.85711392355983 0.5151268989675 9.12117611387936E-16 + outer loop + vertex 36.6287552028466 1668.98717973352 994.406450840823 + vertex 34.4122846227461 1665.29921896274 1018.8086502403 + vertex 45.4614683437251 1683.68383298737 1315 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.60259421540498E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex 34.4122846227461 1665.29921896274 1018.8086502403 + vertex 31.3243583831324 1660.16125280294 1042.85126131503 + endloop + endfacet + facet normal -0.857113923559822 0.515126898967514 -4.16910799421572E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex 31.3243583831324 1660.16125280294 1042.85126131503 + vertex 27.3800205502476 1653.59831290878 1066.41715088061 + endloop + endfacet + facet normal -0.857113923559827 0.515126898967506 8.44359409559151E-16 + outer loop + vertex 27.3800205502476 1653.59831290878 1066.41715088061 + vertex 22.5984875415303 1645.64237326372 1089.39150829191 + vertex 45.4614683437251 1683.68383298737 1315 + endloop + endfacet + facet normal -0.857113923559827 0.515126898967506 9.45781469850241E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex 22.5984875415303 1645.64237326372 1089.39150829191 + vertex 17.0030545051607 1636.33219440598 1111.66240478899 + endloop + endfacet + facet normal -0.857113923559824 0.515126898967512 -9.95023720109188E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex 17.0030545051607 1636.33219440598 1111.66240478899 + vertex 10.6209818284411 1625.71313459111 1133.12133880279 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 1.94127498338712E-16 + outer loop + vertex 10.6209818284411 1625.71313459111 1133.12133880279 + vertex 3.48336232792881 1613.83692881109 1153.66376456383 + vertex 45.4614683437251 1683.68383298737 1315 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 3.21054698523877E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex 3.48336232792881 1613.83692881109 1153.66376456383 + vertex -4.37503023164065 1600.76143674669 1173.18960143872 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 0 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex -4.37503023164065 1600.76143674669 1173.18960143872 + vertex -12.9159105516399 1586.55036088092 1191.60372151294 + endloop + endfacet + facet normal -0.857113923559827 0.515126898967506 3.08271972871139E-15 + outer loop + vertex -12.9159105516399 1586.55036088092 1191.60372151294 + vertex -22.0976683216764 1571.27293614688 1208.81641304447 + vertex 45.4614683437251 1683.68383298737 1315 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -8.45296374447189E-16 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex -22.0976683216764 1571.27293614688 1208.81641304447 + vertex -31.8755709408414 1555.00359262222 1224.74381753039 + endloop + endfacet + facet normal -0.857113923559825 0.51512689896751 -3.03887543329719E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex -31.8755709408414 1555.00359262222 1224.74381753039 + vertex -42.2019814504457 1537.82159291318 1239.30833825704 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967507 4.47841404303504E-15 + outer loop + vertex -42.2019814504457 1537.82159291318 1239.30833825704 + vertex -53.0265906164936 1519.81064599523 1252.43901834348 + vertex 45.4614683437251 1683.68383298737 1315 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -3.86263006092198E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex -53.0265906164936 1519.81064599523 1252.43901834348 + vertex -64.2966620312141 1501.05849939129 1264.0718864362 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 5.25636882743419E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex -64.2966620312141 1501.05849939129 1264.0718864362 + vertex -75.9572890395384 1481.65651167466 1274.15026837121 + endloop + endfacet + facet normal -0.857113923559825 0.51512689896751 -6.03004146666897E-15 + outer loop + vertex -75.9572890395384 1481.65651167466 1274.15026837121 + vertex -87.9516622388039 1461.69920737922 1282.62506328478 + vertex 45.4614683437251 1683.68383298737 1315 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 5.46365895736563E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex -87.9516622388039 1461.69920737922 1282.62506328478 + vertex -100.221346248454 1441.28381648538 1289.45498282798 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967509 3.34225958141353E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex -100.221346248454 1441.28381648538 1289.45498282798 + vertex -112.706564401338 1420.50980072545 1294.60675231933 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 1.0012793717381E-14 + outer loop + vertex -112.706564401338 1420.50980072545 1294.60675231933 + vertex -125.346489969625 1399.47836901599 1298.05527285574 + vertex 45.4614683437251 1683.68383298737 1315 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 6.99500638680875E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex -125.346489969625 1399.47836901599 1298.05527285574 + vertex -138.079542506507 1378.29198437823 1299.78374359178 + endloop + endfacet + facet normal -0.857113923559825 0.51512689896751 -5.521107094192E-14 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex -138.079542506507 1378.29198437823 1299.78374359178 + vertex -150.843687859946 1357.05386474848 1299.78374359178 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967509 4.93865985270253E-15 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex -150.843687859946 1357.05386474848 1299.78374359178 + vertex -335.058567801204 1050.54077284622 1315 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -1.39581964121086E-14 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -150.843687859946 1357.05386474848 1299.78374359178 + vertex -163.576740396828 1335.86748011073 1298.05527285574 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 0 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -163.576740396828 1335.86748011073 1298.05527285574 + vertex -176.216665965115 1314.83604840127 1294.60675231933 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -9.57790504619394E-15 + outer loop + vertex -176.216665965115 1314.83604840127 1294.60675231933 + vertex -188.701884117999 1294.06203264134 1289.45498282798 + vertex -335.058567801204 1050.54077284622 1315 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 2.72225381573509E-15 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -188.701884117999 1294.06203264134 1289.45498282798 + vertex -200.971568127649 1273.6466417475 1282.62506328478 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 2.34437270492369E-15 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -200.971568127649 1273.6466417475 1282.62506328478 + vertex -212.965941326914 1253.68933745206 1274.15026837121 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -4.84279460576255E-15 + outer loop + vertex -212.965941326914 1253.68933745206 1274.15026837121 + vertex -224.626568335238 1234.28734973543 1264.0718864362 + vertex -335.058567801204 1050.54077284622 1315 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 0 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -224.626568335238 1234.28734973543 1264.0718864362 + vertex -235.896639749959 1215.53520313149 1252.43901834348 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 9.02965698209901E-16 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -235.896639749959 1215.53520313149 1252.43901834348 + vertex -246.721248916007 1197.52425621354 1239.30833825704 + endloop + endfacet + facet normal -0.857113923559825 0.51512689896751 2.10631662354825E-15 + outer loop + vertex -246.721248916007 1197.52425621354 1239.30833825704 + vertex -257.047659425611 1180.3422565045 1224.74381753039 + vertex -335.058567801204 1050.54077284622 1315 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 1.26154048878739E-15 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -257.047659425611 1180.3422565045 1224.74381753039 + vertex -266.825562044776 1164.07291297984 1208.81641304447 + endloop + endfacet + facet normal -0.857113923559827 0.515126898967505 -4.78101269099081E-15 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -266.825562044776 1164.07291297984 1208.81641304447 + vertex -276.007319814813 1148.7954882458 1191.60372151294 + endloop + endfacet + facet normal -0.857113923559824 0.515126898967511 1.30412462288172E-15 + outer loop + vertex -276.007319814813 1148.7954882458 1191.60372151294 + vertex -284.548200134812 1134.58441238003 1173.18960143872 + vertex -335.058567801204 1050.54077284622 1315 + endloop + endfacet + facet normal -0.857113923559824 0.515126898967511 1.59521857138875E-15 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -284.548200134812 1134.58441238003 1173.18960143872 + vertex -292.406592694382 1121.50892031563 1153.66376456383 + endloop + endfacet + facet normal -0.857113923559827 0.515126898967505 -1.76276324545937E-15 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -292.406592694382 1121.50892031563 1153.66376456383 + vertex -299.544212194894 1109.63271453561 1133.12133880279 + endloop + endfacet + facet normal -0.857113923559823 0.515126898967513 1.46678860124496E-15 + outer loop + vertex -299.544212194894 1109.63271453561 1133.12133880279 + vertex -305.926284871613 1099.01365472074 1111.66240478899 + vertex -335.058567801204 1050.54077284622 1315 + endloop + endfacet + facet normal -0.857113923559827 0.515126898967506 -8.12791740893326E-16 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -305.926284871613 1099.01365472074 1111.66240478899 + vertex -311.521717907983 1089.703475863 1089.39150829191 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -1.03458271719863E-16 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -311.521717907983 1089.703475863 1089.39150829191 + vertex -316.3032509167 1081.74753621794 1066.41715088061 + endloop + endfacet + facet normal -0.857113923559824 0.515126898967511 3.43547066449339E-16 + outer loop + vertex -316.3032509167 1081.74753621794 1066.41715088061 + vertex -320.247588749585 1075.18459632378 1042.85126131503 + vertex -335.058567801204 1050.54077284622 1315 + endloop + endfacet + facet normal -0.857113923559829 0.515126898967503 -7.001869385052E-16 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -320.247588749585 1075.18459632378 1042.85126131503 + vertex -323.335514989199 1070.04663016398 1018.8086502403 + endloop + endfacet + facet normal -0.857113923559829 0.515126898967504 -6.36972113697611E-16 + outer loop + vertex -335.058567801204 1050.54077284622 1315 + vertex -323.335514989199 1070.04663016398 1018.8086502403 + vertex -325.551985569299 1066.3586693932 994.406450840823 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 697.211468181837 1758.6634149482 575 + vertex 110.640672449904 782.67478538312 575 + vertex 45.4614683437251 1683.68383298737 575 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex 110.640672449904 782.67478538312 575 + vertex -335.058567801204 1050.54077284622 575 + endloop + endfacet + facet normal -0.515126898967509 -0.857113923559825 0 + outer loop + vertex 110.640672449904 782.67478538312 1315 + vertex -335.058567801204 1050.54077284622 1315 + vertex 110.640672449904 782.67478538312 575 + endloop + endfacet + facet normal -0.515126898967509 -0.857113923559825 0 + outer loop + vertex 110.640672449904 782.67478538312 575 + vertex -335.058567801204 1050.54077284622 1315 + vertex -335.058567801204 1050.54077284622 575 + endloop + endfacet + facet normal -0.51481309757892 -0.856591792916036 0.0348994967024943 + outer loop + vertex -326.886202068019 1064.13868138561 969.763548179164 + vertex -755.888626096605 1320.96093118338 945 + vertex -327.331664316692 1063.39748169962 945 + endloop + endfacet + facet normal -0.51481309757892 -0.856591792916036 -0.0348994967025047 + outer loop + vertex -327.331664316692 1063.39748169962 945 + vertex -755.888626096605 1320.96093118338 945 + vertex -755.443163847932 1321.70213086936 920.236451820835 + endloop + endfacet + facet normal -0.514813097578921 -0.856591792916036 -0.0348994967024942 + outer loop + vertex -327.331664316692 1063.39748169962 945 + vertex -755.443163847932 1321.70213086936 920.236451820835 + vertex -326.886202068019 1064.13868138561 920.236451820835 + endloop + endfacet + facet normal -0.512304979916348 -0.852418563805255 -0.104528463267656 + outer loop + vertex -326.886202068019 1064.13868138561 920.236451820835 + vertex -755.443163847932 1321.70213086936 920.236451820835 + vertex -754.108947349212 1323.92211887695 895.593549159176 + endloop + endfacet + facet normal -0.512304979916347 -0.852418563805254 -0.104528463267661 + outer loop + vertex -326.886202068019 1064.13868138561 920.236451820835 + vertex -754.108947349212 1323.92211887695 895.593549159176 + vertex -325.551985569299 1066.3586693932 895.593549159176 + endloop + endfacet + facet normal -0.507300963888339 -0.84409243713643 -0.173648177666927 + outer loop + vertex -325.551985569299 1066.3586693932 895.593549159176 + vertex -754.108947349212 1323.92211887695 895.593549159176 + vertex -751.892476769111 1327.61007964773 871.191349759695 + endloop + endfacet + facet normal -0.507300963888339 -0.84409243713643 -0.173648177666928 + outer loop + vertex -325.551985569299 1066.3586693932 895.593549159176 + vertex -751.892476769111 1327.61007964773 871.191349759695 + vertex -323.335514989199 1070.04663016398 871.191349759695 + endloop + endfacet + facet normal -0.49982542855798 -0.83165397696175 -0.241921895599669 + outer loop + vertex -323.335514989199 1070.04663016398 871.191349759695 + vertex -751.892476769111 1327.61007964773 871.191349759695 + vertex -748.804550529498 1332.74804580753 847.148738684965 + endloop + endfacet + facet normal -0.49982542855798 -0.83165397696175 -0.241921895599669 + outer loop + vertex -323.335514989199 1070.04663016398 871.191349759695 + vertex -748.804550529498 1332.74804580753 847.148738684965 + vertex -320.247588749585 1075.18459632378 847.148738684965 + endloop + endfacet + facet normal -0.489914793981964 -0.815163782208879 -0.309016994374947 + outer loop + vertex -320.247588749585 1075.18459632378 847.148738684965 + vertex -748.804550529498 1332.74804580753 847.148738684965 + vertex -744.860212696613 1339.31098570169 823.582849119388 + endloop + endfacet + facet normal -0.489914793981964 -0.815163782208879 -0.309016994374946 + outer loop + vertex -320.247588749585 1075.18459632378 847.148738684965 + vertex -744.860212696613 1339.31098570169 823.582849119388 + vertex -316.3032509167 1081.74753621794 823.582849119388 + endloop + endfacet + facet normal -0.477617343775732 -0.794702191449063 -0.374606593415907 + outer loop + vertex -316.3032509167 1081.74753621794 823.582849119388 + vertex -744.860212696613 1339.31098570169 823.582849119388 + vertex -740.078679687896 1347.26692534675 800.608491708091 + endloop + endfacet + facet normal -0.47761734377573 -0.794702191449061 -0.374606593415914 + outer loop + vertex -316.3032509167 1081.74753621794 823.582849119388 + vertex -740.078679687896 1347.26692534675 800.608491708091 + vertex -311.521717907983 1089.703475863 800.608491708091 + endloop + endfacet + facet normal -0.462992989880548 -0.77036889149569 -0.438371146789079 + outer loop + vertex -311.521717907983 1089.703475863 800.608491708091 + vertex -740.078679687896 1347.26692534675 800.608491708091 + vertex -734.483246651526 1356.57710420449 778.337595211009 + endloop + endfacet + facet normal -0.462992989880548 -0.77036889149569 -0.438371146789078 + outer loop + vertex -311.521717907983 1089.703475863 800.608491708091 + vertex -734.483246651526 1356.57710420449 778.337595211009 + vertex -305.926284871613 1099.01365472074 778.337595211009 + endloop + endfacet + facet normal -0.44611298067856 -0.74228243174016 -0.500000000000006 + outer loop + vertex -305.926284871613 1099.01365472074 778.337595211009 + vertex -734.483246651526 1356.57710420449 778.337595211009 + vertex -728.101173974806 1367.19616401937 756.878661197212 + endloop + endfacet + facet normal -0.446112980678562 -0.742282431740162 -0.5 + outer loop + vertex -305.926284871613 1099.01365472074 778.337595211009 + vertex -728.101173974806 1367.19616401937 756.878661197212 + vertex -299.544212194894 1109.63271453561 756.878661197212 + endloop + endfacet + facet normal -0.42705955387783 -0.710579646591167 -0.559192903470744 + outer loop + vertex -299.544212194894 1109.63271453561 756.878661197212 + vertex -728.101173974806 1367.19616401937 756.878661197212 + vertex -720.963554474294 1379.07236979939 736.336235436172 + endloop + endfacet + facet normal -0.42705955387783 -0.710579646591167 -0.559192903470744 + outer loop + vertex -299.544212194894 1109.63271453561 756.878661197212 + vertex -720.963554474294 1379.07236979939 736.336235436172 + vertex -292.406592694381 1121.50892031563 736.336235436172 + endloop + endfacet + facet normal -0.40592553585848 -0.675414988831192 -0.615661475325659 + outer loop + vertex -292.406592694381 1121.50892031563 736.336235436172 + vertex -720.963554474294 1379.07236979939 736.336235436172 + vertex -713.105161914725 1392.14786186378 716.810398561278 + endloop + endfacet + facet normal -0.40592553585848 -0.675414988831192 -0.615661475325659 + outer loop + vertex -292.406592694381 1121.50892031563 736.336235436172 + vertex -713.105161914725 1392.14786186378 716.810398561278 + vertex -284.548200134812 1134.58441238003 716.810398561278 + endloop + endfacet + facet normal -0.38281388943192 -0.63695977713811 -0.66913060635886 + outer loop + vertex -284.548200134812 1134.58441238003 716.810398561278 + vertex -713.105161914725 1392.14786186378 716.810398561278 + vertex -704.564281594725 1406.35893772956 698.396278487056 + endloop + endfacet + facet normal -0.38281388943192 -0.63695977713811 -0.669130606358859 + outer loop + vertex -284.548200134812 1134.58441238003 716.810398561278 + vertex -704.564281594725 1406.35893772956 698.396278487056 + vertex -276.007319814813 1148.7954882458 698.396278487056 + endloop + endfacet + facet normal -0.357837212216366 -0.595401361437785 -0.719339800338652 + outer loop + vertex -276.007319814813 1148.7954882458 698.396278487056 + vertex -704.564281594725 1406.35893772956 698.396278487056 + vertex -695.382523824689 1421.63636246359 681.183586955525 + endloop + endfacet + facet normal -0.357837212216366 -0.595401361437786 -0.719339800338651 + outer loop + vertex -276.007319814813 1148.7954882458 698.396278487056 + vertex -695.382523824689 1421.63636246359 681.183586955525 + vertex -266.825562044776 1164.07291297984 681.183586955525 + endloop + endfacet + facet normal -0.331117188072566 -0.550942210154074 -0.766044443118976 + outer loop + vertex -266.825562044776 1164.07291297984 681.183586955525 + vertex -695.382523824689 1421.63636246359 681.183586955525 + vertex -685.604621205524 1437.90570598826 665.256182469614 + endloop + endfacet + facet normal -0.331117188072565 -0.550942210154074 -0.766044443118976 + outer loop + vertex -266.825562044776 1164.07291297984 681.183586955525 + vertex -685.604621205524 1437.90570598826 665.256182469614 + vertex -257.047659425611 1180.3422565045 665.256182469614 + endloop + endfacet + facet normal -0.302783994272255 -0.503798923803002 -0.809016994374949 + outer loop + vertex -257.047659425611 1180.3422565045 665.256182469614 + vertex -685.604621205524 1437.90570598826 665.256182469614 + vertex -675.27821069592 1455.08770569729 650.69166174296 + endloop + endfacet + facet normal -0.302783994272255 -0.503798923803002 -0.809016994374949 + outer loop + vertex -257.047659425611 1180.3422565045 665.256182469614 + vertex -675.27821069592 1455.08770569729 650.69166174296 + vertex -246.721248916007 1197.52425621354 650.69166174296 + endloop + endfacet + facet normal -0.272975667287595 -0.454201179736859 -0.848048096156426 + outer loop + vertex -246.721248916007 1197.52425621354 650.69166174296 + vertex -675.27821069592 1455.08770569729 650.69166174296 + vertex -664.453601529872 1473.09865261524 637.560981656524 + endloop + endfacet + facet normal -0.272975667287595 -0.454201179736859 -0.848048096156425 + outer loop + vertex -246.721248916007 1197.52425621354 650.69166174296 + vertex -664.453601529872 1473.09865261524 637.560981656524 + vertex -235.896639749959 1215.53520313149 637.560981656524 + endloop + endfacet + facet normal -0.241837430291327 -0.402390613179179 -0.882947592858926 + outer loop + vertex -235.896639749959 1215.53520313149 637.560981656524 + vertex -664.453601529872 1473.09865261524 637.560981656524 + vertex -653.183530115151 1491.85079921918 625.928113563795 + endloop + endfacet + facet normal -0.241837430291328 -0.402390613179181 -0.882947592858925 + outer loop + vertex -235.896639749959 1215.53520313149 637.560981656524 + vertex -653.183530115151 1491.85079921918 625.928113563795 + vertex -224.626568335238 1234.28734973543 625.928113563795 + endloop + endfacet + facet normal -0.209520985644091 -0.348619640002251 -0.913545457642601 + outer loop + vertex -224.626568335238 1234.28734973543 625.928113563795 + vertex -653.183530115151 1491.85079921918 625.928113563795 + vertex -641.522903106827 1511.25278693581 615.84973162879 + endloop + endfacet + facet normal -0.20952098564409 -0.348619640002249 -0.913545457642602 + outer loop + vertex -224.626568335238 1234.28734973543 625.928113563795 + vertex -641.522903106827 1511.25278693581 615.84973162879 + vertex -212.965941326914 1253.68933745206 615.84973162879 + endloop + endfacet + facet normal -0.176183775815773 -0.293150226982355 -0.93969262078591 + outer loop + vertex -212.965941326914 1253.68933745206 615.84973162879 + vertex -641.522903106827 1511.25278693581 615.84973162879 + vertex -629.528529907562 1531.21009123126 607.37493671522 + endloop + endfacet + facet normal -0.176183775815773 -0.293150226982355 -0.939692620785909 + outer loop + vertex -212.965941326914 1253.68933745206 615.84973162879 + vertex -629.528529907562 1531.21009123126 607.37493671522 + vertex -200.971568127649 1273.6466417475 607.37493671522 + endloop + endfacet + facet normal -0.141988216341617 -0.236252615523967 -0.961261695938318 + outer loop + vertex -200.971568127649 1273.6466417475 607.37493671522 + vertex -629.528529907562 1531.21009123126 607.37493671522 + vertex -617.258845897911 1551.62548212509 600.545017172021 + endloop + endfacet + facet normal -0.141988216341617 -0.236252615523967 -0.961261695938318 + outer loop + vertex -200.971568127649 1273.6466417475 607.37493671522 + vertex -617.258845897911 1551.62548212509 600.545017172021 + vertex -188.701884117999 1294.06203264134 600.545017172021 + endloop + endfacet + facet normal -0.107100904550041 -0.178204005070762 -0.978147600733807 + outer loop + vertex -188.701884117999 1294.06203264134 600.545017172021 + vertex -617.258845897911 1551.62548212509 600.545017172021 + vertex -604.773627745027 1572.39949788503 595.393247680666 + endloop + endfacet + facet normal -0.107100904550041 -0.178204005070762 -0.978147600733807 + outer loop + vertex -188.701884117999 1294.06203264134 600.545017172021 + vertex -604.773627745027 1572.39949788503 595.393247680666 + vertex -176.216665965115 1314.83604840127 595.393247680666 + endloop + endfacet + facet normal -0.0716918079172512 -0.119287202617871 -0.99026806874157 + outer loop + vertex -176.216665965115 1314.83604840127 595.393247680666 + vertex -604.773627745027 1572.39949788503 595.393247680666 + vertex -592.13370217674 1593.43092959448 591.944727144263 + endloop + endfacet + facet normal -0.0716918079172511 -0.11928720261787 -0.99026806874157 + outer loop + vertex -176.216665965115 1314.83604840127 595.393247680666 + vertex -592.13370217674 1593.43092959448 591.944727144263 + vertex -163.576740396828 1335.86748011073 591.944727144263 + endloop + endfacet + facet normal -0.0359334360027187 -0.0597892449045236 -0.997564050259824 + outer loop + vertex -163.576740396828 1335.86748011073 591.944727144263 + vertex -592.13370217674 1593.43092959448 591.944727144263 + vertex -579.400649639859 1614.61731423224 590.216256408221 + endloop + endfacet + facet normal -0.0359334360027188 -0.0597892449045236 -0.997564050259824 + outer loop + vertex -163.576740396828 1335.86748011073 591.944727144263 + vertex -579.400649639859 1614.61731423224 590.216256408221 + vertex -150.843687859946 1357.05386474848 590.216256408221 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -150.843687859946 1357.05386474848 590.216256408221 + vertex -579.400649639859 1614.61731423224 590.216256408221 + vertex -566.636504286419 1635.85543386199 590.216256408221 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -150.843687859946 1357.05386474848 590.216256408221 + vertex -566.636504286419 1635.85543386199 590.216256408221 + vertex -138.079542506507 1378.29198437823 590.216256408221 + endloop + endfacet + facet normal 0.0359334360027181 0.0597892449045226 -0.997564050259825 + outer loop + vertex -138.079542506507 1378.29198437823 590.216256408221 + vertex -566.636504286419 1635.85543386199 590.216256408221 + vertex -553.903451749538 1657.04181849974 591.944727144263 + endloop + endfacet + facet normal 0.0359334360027181 0.0597892449045226 -0.997564050259825 + outer loop + vertex -138.079542506507 1378.29198437823 590.216256408221 + vertex -553.903451749538 1657.04181849974 591.944727144263 + vertex -125.346489969625 1399.47836901599 591.944727144263 + endloop + endfacet + facet normal 0.0716918079172512 0.119287202617871 -0.99026806874157 + outer loop + vertex -125.346489969625 1399.47836901599 591.944727144263 + vertex -553.903451749538 1657.04181849974 591.944727144263 + vertex -541.263526181251 1678.0732502092 595.393247680666 + endloop + endfacet + facet normal 0.0716918079172511 0.11928720261787 -0.99026806874157 + outer loop + vertex -125.346489969625 1399.47836901599 591.944727144263 + vertex -541.263526181251 1678.0732502092 595.393247680666 + vertex -112.706564401338 1420.50980072545 595.393247680666 + endloop + endfacet + facet normal 0.107100904550043 0.178204005070766 -0.978147600733806 + outer loop + vertex -112.706564401338 1420.50980072545 595.393247680666 + vertex -541.263526181251 1678.0732502092 595.393247680666 + vertex -528.778308028367 1698.84726596914 600.545017172021 + endloop + endfacet + facet normal 0.107100904550043 0.178204005070766 -0.978147600733806 + outer loop + vertex -112.706564401338 1420.50980072545 595.393247680666 + vertex -528.778308028367 1698.84726596914 600.545017172021 + vertex -100.221346248454 1441.28381648538 600.545017172021 + endloop + endfacet + facet normal 0.141988216341614 0.236252615523963 -0.961261695938319 + outer loop + vertex -100.221346248454 1441.28381648538 600.545017172021 + vertex -528.778308028367 1698.84726596914 600.545017172021 + vertex -516.508624018717 1719.26265686297 607.37493671522 + endloop + endfacet + facet normal 0.141988216341614 0.236252615523964 -0.961261695938319 + outer loop + vertex -100.221346248454 1441.28381648538 600.545017172021 + vertex -516.508624018717 1719.26265686297 607.37493671522 + vertex -87.9516622388038 1461.69920737922 607.37493671522 + endloop + endfacet + facet normal 0.176183775815777 0.293150226982361 -0.939692620785907 + outer loop + vertex -87.9516622388038 1461.69920737922 607.37493671522 + vertex -516.508624018717 1719.26265686297 607.37493671522 + vertex -504.514250819451 1739.21996115842 615.84973162879 + endloop + endfacet + facet normal 0.176183775815775 0.293150226982359 -0.939692620785908 + outer loop + vertex -87.9516622388038 1461.69920737922 607.37493671522 + vertex -504.514250819451 1739.21996115842 615.84973162879 + vertex -75.9572890395383 1481.65651167466 615.84973162879 + endloop + endfacet + facet normal 0.209520985644089 0.348619640002249 -0.913545457642602 + outer loop + vertex -75.9572890395383 1481.65651167466 615.84973162879 + vertex -504.514250819451 1739.21996115842 615.84973162879 + vertex -492.853623811127 1758.62194887504 625.928113563796 + endloop + endfacet + facet normal 0.209520985644091 0.348619640002251 -0.913545457642601 + outer loop + vertex -75.9572890395383 1481.65651167466 615.84973162879 + vertex -492.853623811127 1758.62194887504 625.928113563796 + vertex -64.2966620312141 1501.05849939129 625.928113563796 + endloop + endfacet + facet normal 0.241837430291326 0.402390613179178 -0.882947592858927 + outer loop + vertex -64.2966620312141 1501.05849939129 625.928113563796 + vertex -492.853623811127 1758.62194887504 625.928113563796 + vertex -481.583552396406 1777.37409547898 637.560981656524 + endloop + endfacet + facet normal 0.241837430291326 0.402390613179178 -0.882947592858927 + outer loop + vertex -64.2966620312141 1501.05849939129 625.928113563796 + vertex -481.583552396406 1777.37409547898 637.560981656524 + vertex -53.0265906164935 1519.81064599523 637.560981656524 + endloop + endfacet + facet normal 0.272975667287594 0.454201179736857 -0.848048096156427 + outer loop + vertex -53.0265906164935 1519.81064599523 637.560981656524 + vertex -481.583552396406 1777.37409547898 637.560981656524 + vertex -470.758943230358 1795.38504239693 650.69166174296 + endloop + endfacet + facet normal 0.272975667287594 0.454201179736858 -0.848048096156426 + outer loop + vertex -53.0265906164935 1519.81064599523 637.560981656524 + vertex -470.758943230358 1795.38504239693 650.69166174296 + vertex -42.2019814504457 1537.82159291318 650.69166174296 + endloop + endfacet + facet normal 0.302783994272257 0.503798923803005 -0.809016994374946 + outer loop + vertex -42.2019814504457 1537.82159291318 650.69166174296 + vertex -470.758943230358 1795.38504239693 650.69166174296 + vertex -460.432532720754 1812.56704210597 665.256182469613 + endloop + endfacet + facet normal 0.302783994272257 0.503798923803005 -0.809016994374946 + outer loop + vertex -42.2019814504457 1537.82159291318 650.69166174296 + vertex -460.432532720754 1812.56704210597 665.256182469613 + vertex -31.8755709408414 1555.00359262222 665.256182469613 + endloop + endfacet + facet normal 0.331117188072566 0.550942210154074 -0.766044443118976 + outer loop + vertex -31.8755709408414 1555.00359262222 665.256182469613 + vertex -460.432532720754 1812.56704210597 665.256182469613 + vertex -450.654630101589 1828.83638563064 681.183586955525 + endloop + endfacet + facet normal 0.331117188072566 0.550942210154074 -0.766044443118976 + outer loop + vertex -31.8755709408414 1555.00359262222 665.256182469613 + vertex -450.654630101589 1828.83638563064 681.183586955525 + vertex -22.0976683216764 1571.27293614688 681.183586955525 + endloop + endfacet + facet normal 0.357837212216366 0.595401361437786 -0.719339800338651 + outer loop + vertex -22.0976683216764 1571.27293614688 681.183586955525 + vertex -450.654630101589 1828.83638563064 681.183586955525 + vertex -441.472872331553 1844.11381036467 698.396278487056 + endloop + endfacet + facet normal 0.357837212216364 0.595401361437783 -0.719339800338655 + outer loop + vertex -22.0976683216764 1571.27293614688 681.183586955525 + vertex -441.472872331553 1844.11381036467 698.396278487056 + vertex -12.91591055164 1586.55036088092 698.396278487056 + endloop + endfacet + facet normal 0.382813889431919 0.636959777138109 -0.669130606358861 + outer loop + vertex -12.91591055164 1586.55036088092 698.396278487056 + vertex -441.472872331553 1844.11381036467 698.396278487056 + vertex -432.931992011553 1858.32488623045 716.810398561278 + endloop + endfacet + facet normal 0.382813889431921 0.636959777138112 -0.669130606358857 + outer loop + vertex -12.91591055164 1586.55036088092 698.396278487056 + vertex -432.931992011553 1858.32488623045 716.810398561278 + vertex -4.37503023164065 1600.76143674669 716.810398561278 + endloop + endfacet + facet normal 0.405925535858481 0.675414988831194 -0.615661475325656 + outer loop + vertex -4.37503023164065 1600.76143674669 716.810398561278 + vertex -432.931992011553 1858.32488623045 716.810398561278 + vertex -425.073599451984 1871.40037829484 736.336235436172 + endloop + endfacet + facet normal 0.405925535858481 0.675414988831194 -0.615661475325656 + outer loop + vertex -4.37503023164065 1600.76143674669 716.810398561278 + vertex -425.073599451984 1871.40037829484 736.336235436172 + vertex 3.48336232792887 1613.83692881109 736.336235436172 + endloop + endfacet + facet normal 0.427059553877828 0.710579646591163 -0.55919290347075 + outer loop + vertex 3.48336232792887 1613.83692881109 736.336235436172 + vertex -425.073599451984 1871.40037829484 736.336235436172 + vertex -417.935979951472 1883.27658407486 756.878661197212 + endloop + endfacet + facet normal 0.42705955387783 0.710579646591166 -0.559192903470746 + outer loop + vertex 3.48336232792887 1613.83692881109 736.336235436172 + vertex -417.935979951472 1883.27658407486 756.878661197212 + vertex 10.6209818284412 1625.71313459111 756.878661197212 + endloop + endfacet + facet normal 0.446112980678564 0.742282431740164 -0.499999999999996 + outer loop + vertex 10.6209818284412 1625.71313459111 756.878661197212 + vertex -417.935979951472 1883.27658407486 756.878661197212 + vertex -411.553907274752 1893.89564388973 778.337595211009 + endloop + endfacet + facet normal 0.446112980678562 0.742282431740162 -0.500000000000002 + outer loop + vertex 10.6209818284412 1625.71313459111 756.878661197212 + vertex -411.553907274752 1893.89564388973 778.337595211009 + vertex 17.0030545051607 1636.33219440598 778.337595211009 + endloop + endfacet + facet normal 0.462992989880549 0.77036889149569 -0.438371146789078 + outer loop + vertex 17.0030545051607 1636.33219440598 778.337595211009 + vertex -411.553907274752 1893.89564388973 778.337595211009 + vertex -405.958474238383 1903.20582274747 800.608491708091 + endloop + endfacet + facet normal 0.462992989880549 0.77036889149569 -0.438371146789078 + outer loop + vertex 17.0030545051607 1636.33219440598 778.337595211009 + vertex -405.958474238383 1903.20582274747 800.608491708091 + vertex 22.5984875415303 1645.64237326372 800.608491708091 + endloop + endfacet + facet normal 0.47761734377573 0.794702191449061 -0.374606593415914 + outer loop + vertex 22.5984875415303 1645.64237326372 800.608491708091 + vertex -405.958474238383 1903.20582274747 800.608491708091 + vertex -401.176941229665 1911.16176239253 823.582849119388 + endloop + endfacet + facet normal 0.47761734377573 0.794702191449061 -0.374606593415914 + outer loop + vertex 22.5984875415303 1645.64237326372 800.608491708091 + vertex -401.176941229665 1911.16176239253 823.582849119388 + vertex 27.3800205502477 1653.59831290878 823.582849119388 + endloop + endfacet + facet normal 0.489914793981964 0.815163782208879 -0.309016994374947 + outer loop + vertex 27.3800205502477 1653.59831290878 823.582849119388 + vertex -401.176941229665 1911.16176239253 823.582849119388 + vertex -397.23260339678 1917.72470228669 847.148738684965 + endloop + endfacet + facet normal 0.489914793981964 0.815163782208879 -0.309016994374946 + outer loop + vertex 27.3800205502477 1653.59831290878 823.582849119388 + vertex -397.23260339678 1917.72470228669 847.148738684965 + vertex 31.3243583831324 1660.16125280294 847.148738684965 + endloop + endfacet + facet normal 0.49982542855798 0.83165397696175 -0.241921895599668 + outer loop + vertex 31.3243583831324 1660.16125280294 847.148738684965 + vertex -397.23260339678 1917.72470228669 847.148738684965 + vertex -394.144677157167 1922.86266844649 871.191349759695 + endloop + endfacet + facet normal 0.49982542855798 0.83165397696175 -0.241921895599668 + outer loop + vertex 31.3243583831324 1660.16125280294 847.148738684965 + vertex -394.144677157167 1922.86266844649 871.191349759695 + vertex 34.412284622746 1665.29921896274 871.191349759695 + endloop + endfacet + facet normal 0.507300963888339 0.84409243713643 -0.173648177666927 + outer loop + vertex 34.412284622746 1665.29921896274 871.191349759695 + vertex -394.144677157167 1922.86266844649 871.191349759695 + vertex -391.928206577066 1926.55062921727 895.593549159177 + endloop + endfacet + facet normal 0.507300963888339 0.84409243713643 -0.173648177666927 + outer loop + vertex 34.412284622746 1665.29921896274 871.191349759695 + vertex -391.928206577066 1926.55062921727 895.593549159177 + vertex 36.6287552028466 1668.98717973352 895.593549159177 + endloop + endfacet + facet normal 0.512304979916347 0.852418563805255 -0.104528463267655 + outer loop + vertex 36.6287552028466 1668.98717973352 895.593549159177 + vertex -391.928206577066 1926.55062921727 895.593549159177 + vertex -390.593990078346 1928.77061722487 920.236451820835 + endloop + endfacet + facet normal 0.512304979916347 0.852418563805254 -0.104528463267662 + outer loop + vertex 36.6287552028466 1668.98717973352 895.593549159177 + vertex -390.593990078346 1928.77061722487 920.236451820835 + vertex 37.9629717015665 1671.20716774111 920.236451820835 + endloop + endfacet + facet normal 0.51481309757892 0.856591792916036 -0.0348994967025026 + outer loop + vertex 37.9629717015665 1671.20716774111 920.236451820835 + vertex -390.593990078346 1928.77061722487 920.236451820835 + vertex -390.148527829674 1929.51181691085 945 + endloop + endfacet + facet normal 0.514813097578921 0.856591792916036 -0.0348994967024955 + outer loop + vertex 37.9629717015665 1671.20716774111 920.236451820835 + vertex -390.148527829674 1929.51181691085 945 + vertex 38.4084339502391 1671.9483674271 945 + endloop + endfacet + facet normal 0.51481309757892 0.856591792916036 0.0348994967025025 + outer loop + vertex 38.4084339502391 1671.9483674271 945 + vertex -390.148527829674 1929.51181691085 945 + vertex -390.593990078346 1928.77061722487 969.763548179164 + endloop + endfacet + facet normal 0.51481309757892 0.856591792916036 0.0348994967024953 + outer loop + vertex 38.4084339502391 1671.9483674271 945 + vertex -390.593990078346 1928.77061722487 969.763548179164 + vertex 37.9629717015665 1671.20716774111 969.763548179164 + endloop + endfacet + facet normal 0.512304979916348 0.852418563805256 0.104528463267647 + outer loop + vertex 37.9629717015665 1671.20716774111 969.763548179164 + vertex -390.593990078346 1928.77061722487 969.763548179164 + vertex -391.928206577066 1926.55062921727 994.406450840823 + endloop + endfacet + facet normal 0.512304979916347 0.852418563805255 0.104528463267655 + outer loop + vertex 37.9629717015665 1671.20716774111 969.763548179164 + vertex -391.928206577066 1926.55062921727 994.406450840823 + vertex 36.6287552028466 1668.98717973352 994.406450840823 + endloop + endfacet + facet normal 0.507300963888338 0.844092437136429 0.173648177666934 + outer loop + vertex 36.6287552028466 1668.98717973352 994.406450840823 + vertex -391.928206577066 1926.55062921727 994.406450840823 + vertex -394.144677157167 1922.86266844649 1018.8086502403 + endloop + endfacet + facet normal 0.507300963888338 0.844092437136429 0.173648177666934 + outer loop + vertex 36.6287552028466 1668.98717973352 994.406450840823 + vertex -394.144677157167 1922.86266844649 1018.8086502403 + vertex 34.4122846227461 1665.29921896274 1018.8086502403 + endloop + endfacet + facet normal 0.49982542855798 0.83165397696175 0.241921895599669 + outer loop + vertex 34.4122846227461 1665.29921896274 1018.8086502403 + vertex -394.144677157167 1922.86266844649 1018.8086502403 + vertex -397.23260339678 1917.72470228669 1042.85126131503 + endloop + endfacet + facet normal 0.49982542855798 0.83165397696175 0.241921895599669 + outer loop + vertex 34.4122846227461 1665.29921896274 1018.8086502403 + vertex -397.23260339678 1917.72470228669 1042.85126131503 + vertex 31.3243583831324 1660.16125280294 1042.85126131503 + endloop + endfacet + facet normal 0.489914793981965 0.815163782208879 0.309016994374944 + outer loop + vertex 31.3243583831324 1660.16125280294 1042.85126131503 + vertex -397.23260339678 1917.72470228669 1042.85126131503 + vertex -401.176941229665 1911.16176239253 1066.41715088061 + endloop + endfacet + facet normal 0.489914793981965 0.815163782208879 0.309016994374944 + outer loop + vertex 31.3243583831324 1660.16125280294 1042.85126131503 + vertex -401.176941229665 1911.16176239253 1066.41715088061 + vertex 27.3800205502476 1653.59831290878 1066.41715088061 + endloop + endfacet + facet normal 0.47761734377573 0.794702191449061 0.374606593415915 + outer loop + vertex 27.3800205502476 1653.59831290878 1066.41715088061 + vertex -401.176941229665 1911.16176239253 1066.41715088061 + vertex -405.958474238383 1903.20582274747 1089.39150829191 + endloop + endfacet + facet normal 0.47761734377573 0.794702191449061 0.374606593415915 + outer loop + vertex 27.3800205502476 1653.59831290878 1066.41715088061 + vertex -405.958474238383 1903.20582274747 1089.39150829191 + vertex 22.5984875415303 1645.64237326372 1089.39150829191 + endloop + endfacet + facet normal 0.462992989880549 0.770368891495691 0.438371146789076 + outer loop + vertex 22.5984875415303 1645.64237326372 1089.39150829191 + vertex -405.958474238383 1903.20582274747 1089.39150829191 + vertex -411.553907274752 1893.89564388973 1111.66240478899 + endloop + endfacet + facet normal 0.462992989880548 0.770368891495688 0.438371146789082 + outer loop + vertex 22.5984875415303 1645.64237326372 1089.39150829191 + vertex -411.553907274752 1893.89564388973 1111.66240478899 + vertex 17.0030545051607 1636.33219440598 1111.66240478899 + endloop + endfacet + facet normal 0.446112980678562 0.742282431740161 0.500000000000002 + outer loop + vertex 17.0030545051607 1636.33219440598 1111.66240478899 + vertex -411.553907274752 1893.89564388973 1111.66240478899 + vertex -417.935979951472 1883.27658407486 1133.12133880279 + endloop + endfacet + facet normal 0.446112980678563 0.742282431740165 0.499999999999996 + outer loop + vertex 17.0030545051607 1636.33219440598 1111.66240478899 + vertex -417.935979951472 1883.27658407486 1133.12133880279 + vertex 10.6209818284411 1625.71313459111 1133.12133880279 + endloop + endfacet + facet normal 0.427059553877828 0.710579646591163 0.55919290347075 + outer loop + vertex 10.6209818284411 1625.71313459111 1133.12133880279 + vertex -417.935979951472 1883.27658407486 1133.12133880279 + vertex -425.073599451984 1871.40037829484 1153.66376456383 + endloop + endfacet + facet normal 0.427059553877828 0.710579646591163 0.55919290347075 + outer loop + vertex 10.6209818284411 1625.71313459111 1133.12133880279 + vertex -425.073599451984 1871.40037829484 1153.66376456383 + vertex 3.48336232792881 1613.83692881109 1153.66376456383 + endloop + endfacet + facet normal 0.405925535858481 0.675414988831195 0.615661475325655 + outer loop + vertex 3.48336232792881 1613.83692881109 1153.66376456383 + vertex -425.073599451984 1871.40037829484 1153.66376456383 + vertex -432.931992011553 1858.32488623045 1173.18960143872 + endloop + endfacet + facet normal 0.405925535858481 0.675414988831195 0.615661475325655 + outer loop + vertex 3.48336232792881 1613.83692881109 1153.66376456383 + vertex -432.931992011553 1858.32488623045 1173.18960143872 + vertex -4.37503023164065 1600.76143674669 1173.18960143872 + endloop + endfacet + facet normal 0.382813889431921 0.636959777138113 0.669130606358856 + outer loop + vertex -4.37503023164065 1600.76143674669 1173.18960143872 + vertex -432.931992011553 1858.32488623045 1173.18960143872 + vertex -441.472872331553 1844.11381036467 1191.60372151294 + endloop + endfacet + facet normal 0.382813889431921 0.636959777138112 0.669130606358857 + outer loop + vertex -4.37503023164065 1600.76143674669 1173.18960143872 + vertex -441.472872331553 1844.11381036467 1191.60372151294 + vertex -12.9159105516399 1586.55036088092 1191.60372151294 + endloop + endfacet + facet normal 0.357837212216366 0.595401361437786 0.719339800338651 + outer loop + vertex -12.9159105516399 1586.55036088092 1191.60372151294 + vertex -441.472872331553 1844.11381036467 1191.60372151294 + vertex -450.654630101589 1828.83638563064 1208.81641304447 + endloop + endfacet + facet normal 0.357837212216364 0.595401361437783 0.719339800338655 + outer loop + vertex -12.9159105516399 1586.55036088092 1191.60372151294 + vertex -450.654630101589 1828.83638563064 1208.81641304447 + vertex -22.0976683216764 1571.27293614688 1208.81641304447 + endloop + endfacet + facet normal 0.331117188072564 0.550942210154071 0.766044443118979 + outer loop + vertex -22.0976683216764 1571.27293614688 1208.81641304447 + vertex -450.654630101589 1828.83638563064 1208.81641304447 + vertex -460.432532720754 1812.56704210597 1224.74381753039 + endloop + endfacet + facet normal 0.331117188072566 0.550942210154074 0.766044443118976 + outer loop + vertex -22.0976683216764 1571.27293614688 1208.81641304447 + vertex -460.432532720754 1812.56704210597 1224.74381753039 + vertex -31.8755709408414 1555.00359262222 1224.74381753039 + endloop + endfacet + facet normal 0.302783994272255 0.503798923803002 0.809016994374949 + outer loop + vertex -31.8755709408414 1555.00359262222 1224.74381753039 + vertex -460.432532720754 1812.56704210597 1224.74381753039 + vertex -470.758943230358 1795.38504239693 1239.30833825704 + endloop + endfacet + facet normal 0.302783994272255 0.503798923803002 0.809016994374949 + outer loop + vertex -31.8755709408414 1555.00359262222 1224.74381753039 + vertex -470.758943230358 1795.38504239693 1239.30833825704 + vertex -42.2019814504457 1537.82159291318 1239.30833825704 + endloop + endfacet + facet normal 0.272975667287594 0.454201179736857 0.848048096156427 + outer loop + vertex -42.2019814504457 1537.82159291318 1239.30833825704 + vertex -470.758943230358 1795.38504239693 1239.30833825704 + vertex -481.583552396406 1777.37409547898 1252.43901834348 + endloop + endfacet + facet normal 0.272975667287594 0.454201179736857 0.848048096156427 + outer loop + vertex -42.2019814504457 1537.82159291318 1239.30833825704 + vertex -481.583552396406 1777.37409547898 1252.43901834348 + vertex -53.0265906164936 1519.81064599523 1252.43901834348 + endloop + endfacet + facet normal 0.241837430291326 0.402390613179178 0.882947592858927 + outer loop + vertex -53.0265906164936 1519.81064599523 1252.43901834348 + vertex -481.583552396406 1777.37409547898 1252.43901834348 + vertex -492.853623811127 1758.62194887504 1264.0718864362 + endloop + endfacet + facet normal 0.241837430291326 0.402390613179178 0.882947592858927 + outer loop + vertex -53.0265906164936 1519.81064599523 1252.43901834348 + vertex -492.853623811127 1758.62194887504 1264.0718864362 + vertex -64.2966620312141 1501.05849939129 1264.0718864362 + endloop + endfacet + facet normal 0.209520985644093 0.348619640002255 0.913545457642599 + outer loop + vertex -64.2966620312141 1501.05849939129 1264.0718864362 + vertex -492.853623811127 1758.62194887504 1264.0718864362 + vertex -504.514250819451 1739.21996115842 1274.15026837121 + endloop + endfacet + facet normal 0.209520985644094 0.348619640002255 0.913545457642599 + outer loop + vertex -64.2966620312141 1501.05849939129 1264.0718864362 + vertex -504.514250819451 1739.21996115842 1274.15026837121 + vertex -75.9572890395384 1481.65651167466 1274.15026837121 + endloop + endfacet + facet normal 0.176183775815773 0.293150226982355 0.93969262078591 + outer loop + vertex -75.9572890395384 1481.65651167466 1274.15026837121 + vertex -504.514250819451 1739.21996115842 1274.15026837121 + vertex -516.508624018717 1719.26265686297 1282.62506328478 + endloop + endfacet + facet normal 0.176183775815774 0.293150226982358 0.939692620785909 + outer loop + vertex -75.9572890395384 1481.65651167466 1274.15026837121 + vertex -516.508624018717 1719.26265686297 1282.62506328478 + vertex -87.9516622388039 1461.69920737922 1282.62506328478 + endloop + endfacet + facet normal 0.141988216341618 0.236252615523969 0.961261695938317 + outer loop + vertex -87.9516622388039 1461.69920737922 1282.62506328478 + vertex -516.508624018717 1719.26265686297 1282.62506328478 + vertex -528.778308028367 1698.84726596914 1289.45498282798 + endloop + endfacet + facet normal 0.141988216341617 0.236252615523967 0.961261695938318 + outer loop + vertex -87.9516622388039 1461.69920737922 1282.62506328478 + vertex -528.778308028367 1698.84726596914 1289.45498282798 + vertex -100.221346248454 1441.28381648538 1289.45498282798 + endloop + endfacet + facet normal 0.107100904550041 0.178204005070762 0.978147600733807 + outer loop + vertex -100.221346248454 1441.28381648538 1289.45498282798 + vertex -528.778308028367 1698.84726596914 1289.45498282798 + vertex -541.263526181251 1678.0732502092 1294.60675231933 + endloop + endfacet + facet normal 0.107100904550041 0.178204005070762 0.978147600733807 + outer loop + vertex -100.221346248454 1441.28381648538 1289.45498282798 + vertex -541.263526181251 1678.0732502092 1294.60675231933 + vertex -112.706564401338 1420.50980072545 1294.60675231933 + endloop + endfacet + facet normal 0.0716918079172513 0.119287202617871 0.99026806874157 + outer loop + vertex -112.706564401338 1420.50980072545 1294.60675231933 + vertex -541.263526181251 1678.0732502092 1294.60675231933 + vertex -553.903451749538 1657.04181849974 1298.05527285574 + endloop + endfacet + facet normal 0.0716918079172512 0.119287202617871 0.99026806874157 + outer loop + vertex -112.706564401338 1420.50980072545 1294.60675231933 + vertex -553.903451749538 1657.04181849974 1298.05527285574 + vertex -125.346489969625 1399.47836901599 1298.05527285574 + endloop + endfacet + facet normal 0.0359334360027181 0.0597892449045225 0.997564050259825 + outer loop + vertex -125.346489969625 1399.47836901599 1298.05527285574 + vertex -553.903451749538 1657.04181849974 1298.05527285574 + vertex -566.636504286419 1635.85543386199 1299.78374359178 + endloop + endfacet + facet normal 0.0359334360027181 0.0597892449045225 0.997564050259825 + outer loop + vertex -125.346489969625 1399.47836901599 1298.05527285574 + vertex -566.636504286419 1635.85543386199 1299.78374359178 + vertex -138.079542506507 1378.29198437823 1299.78374359178 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -138.079542506507 1378.29198437823 1299.78374359178 + vertex -566.636504286419 1635.85543386199 1299.78374359178 + vertex -579.400649639859 1614.61731423224 1299.78374359178 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -138.079542506507 1378.29198437823 1299.78374359178 + vertex -579.400649639859 1614.61731423224 1299.78374359178 + vertex -150.843687859946 1357.05386474848 1299.78374359178 + endloop + endfacet + facet normal -0.0359334360027182 -0.0597892449045228 0.997564050259824 + outer loop + vertex -150.843687859946 1357.05386474848 1299.78374359178 + vertex -579.400649639859 1614.61731423224 1299.78374359178 + vertex -592.13370217674 1593.43092959448 1298.05527285574 + endloop + endfacet + facet normal -0.0359334360027181 -0.0597892449045226 0.997564050259825 + outer loop + vertex -150.843687859946 1357.05386474848 1299.78374359178 + vertex -592.13370217674 1593.43092959448 1298.05527285574 + vertex -163.576740396828 1335.86748011073 1298.05527285574 + endloop + endfacet + facet normal -0.071691807917251 -0.11928720261787 0.99026806874157 + outer loop + vertex -163.576740396828 1335.86748011073 1298.05527285574 + vertex -592.13370217674 1593.43092959448 1298.05527285574 + vertex -604.773627745027 1572.39949788503 1294.60675231933 + endloop + endfacet + facet normal -0.0716918079172511 -0.11928720261787 0.99026806874157 + outer loop + vertex -163.576740396828 1335.86748011073 1298.05527285574 + vertex -604.773627745027 1572.39949788503 1294.60675231933 + vertex -176.216665965115 1314.83604840127 1294.60675231933 + endloop + endfacet + facet normal -0.107100904550041 -0.178204005070763 0.978147600733807 + outer loop + vertex -176.216665965115 1314.83604840127 1294.60675231933 + vertex -604.773627745027 1572.39949788503 1294.60675231933 + vertex -617.258845897911 1551.62548212509 1289.45498282798 + endloop + endfacet + facet normal -0.107100904550041 -0.178204005070763 0.978147600733807 + outer loop + vertex -176.216665965115 1314.83604840127 1294.60675231933 + vertex -617.258845897911 1551.62548212509 1289.45498282798 + vertex -188.701884117999 1294.06203264134 1289.45498282798 + endloop + endfacet + facet normal -0.141988216341617 -0.236252615523967 0.961261695938318 + outer loop + vertex -188.701884117999 1294.06203264134 1289.45498282798 + vertex -617.258845897911 1551.62548212509 1289.45498282798 + vertex -629.528529907562 1531.21009123125 1282.62506328478 + endloop + endfacet + facet normal -0.141988216341616 -0.236252615523967 0.961261695938318 + outer loop + vertex -188.701884117999 1294.06203264134 1289.45498282798 + vertex -629.528529907562 1531.21009123125 1282.62506328478 + vertex -200.971568127649 1273.6466417475 1282.62506328478 + endloop + endfacet + facet normal -0.176183775815774 -0.293150226982357 0.939692620785909 + outer loop + vertex -200.971568127649 1273.6466417475 1282.62506328478 + vertex -629.528529907562 1531.21009123125 1282.62506328478 + vertex -641.522903106827 1511.25278693581 1274.15026837121 + endloop + endfacet + facet normal -0.176183775815775 -0.293150226982358 0.939692620785908 + outer loop + vertex -200.971568127649 1273.6466417475 1282.62506328478 + vertex -641.522903106827 1511.25278693581 1274.15026837121 + vertex -212.965941326914 1253.68933745206 1274.15026837121 + endloop + endfacet + facet normal -0.209520985644091 -0.348619640002251 0.913545457642601 + outer loop + vertex -212.965941326914 1253.68933745206 1274.15026837121 + vertex -641.522903106827 1511.25278693581 1274.15026837121 + vertex -653.183530115151 1491.85079921918 1264.0718864362 + endloop + endfacet + facet normal -0.20952098564409 -0.348619640002249 0.913545457642602 + outer loop + vertex -212.965941326914 1253.68933745206 1274.15026837121 + vertex -653.183530115151 1491.85079921918 1264.0718864362 + vertex -224.626568335238 1234.28734973543 1264.0718864362 + endloop + endfacet + facet normal -0.241837430291327 -0.402390613179179 0.882947592858926 + outer loop + vertex -224.626568335238 1234.28734973543 1264.0718864362 + vertex -653.183530115151 1491.85079921918 1264.0718864362 + vertex -664.453601529872 1473.09865261524 1252.43901834348 + endloop + endfacet + facet normal -0.241837430291328 -0.402390613179181 0.882947592858925 + outer loop + vertex -224.626568335238 1234.28734973543 1264.0718864362 + vertex -664.453601529872 1473.09865261524 1252.43901834348 + vertex -235.896639749959 1215.53520313149 1252.43901834348 + endloop + endfacet + facet normal -0.272975667287595 -0.454201179736859 0.848048096156425 + outer loop + vertex -235.896639749959 1215.53520313149 1252.43901834348 + vertex -664.453601529872 1473.09865261524 1252.43901834348 + vertex -675.27821069592 1455.08770569729 1239.30833825704 + endloop + endfacet + facet normal -0.272975667287595 -0.454201179736859 0.848048096156425 + outer loop + vertex -235.896639749959 1215.53520313149 1252.43901834348 + vertex -675.27821069592 1455.08770569729 1239.30833825704 + vertex -246.721248916007 1197.52425621354 1239.30833825704 + endloop + endfacet + facet normal -0.302783994272256 -0.503798923803003 0.809016994374948 + outer loop + vertex -246.721248916007 1197.52425621354 1239.30833825704 + vertex -675.27821069592 1455.08770569729 1239.30833825704 + vertex -685.604621205524 1437.90570598826 1224.74381753039 + endloop + endfacet + facet normal -0.302783994272255 -0.503798923803002 0.809016994374949 + outer loop + vertex -246.721248916007 1197.52425621354 1239.30833825704 + vertex -685.604621205524 1437.90570598826 1224.74381753039 + vertex -257.047659425611 1180.3422565045 1224.74381753039 + endloop + endfacet + facet normal -0.331117188072564 -0.550942210154071 0.766044443118979 + outer loop + vertex -257.047659425611 1180.3422565045 1224.74381753039 + vertex -685.604621205524 1437.90570598826 1224.74381753039 + vertex -695.382523824689 1421.63636246359 1208.81641304447 + endloop + endfacet + facet normal -0.331117188072565 -0.550942210154074 0.766044443118976 + outer loop + vertex -257.047659425611 1180.3422565045 1224.74381753039 + vertex -695.382523824689 1421.63636246359 1208.81641304447 + vertex -266.825562044776 1164.07291297984 1208.81641304447 + endloop + endfacet + facet normal -0.357837212216368 -0.59540136143779 0.719339800338647 + outer loop + vertex -266.825562044776 1164.07291297984 1208.81641304447 + vertex -695.382523824689 1421.63636246359 1208.81641304447 + vertex -704.564281594725 1406.35893772956 1191.60372151294 + endloop + endfacet + facet normal -0.357837212216365 -0.595401361437783 0.719339800338654 + outer loop + vertex -266.825562044776 1164.07291297984 1208.81641304447 + vertex -704.564281594725 1406.35893772956 1191.60372151294 + vertex -276.007319814813 1148.7954882458 1191.60372151294 + endloop + endfacet + facet normal -0.382813889431919 -0.636959777138109 0.669130606358861 + outer loop + vertex -276.007319814813 1148.7954882458 1191.60372151294 + vertex -704.564281594725 1406.35893772956 1191.60372151294 + vertex -713.105161914725 1392.14786186378 1173.18960143872 + endloop + endfacet + facet normal -0.382813889431921 -0.636959777138112 0.669130606358857 + outer loop + vertex -276.007319814813 1148.7954882458 1191.60372151294 + vertex -713.105161914725 1392.14786186378 1173.18960143872 + vertex -284.548200134812 1134.58441238003 1173.18960143872 + endloop + endfacet + facet normal -0.405925535858481 -0.675414988831194 0.615661475325656 + outer loop + vertex -284.548200134812 1134.58441238003 1173.18960143872 + vertex -713.105161914725 1392.14786186378 1173.18960143872 + vertex -720.963554474294 1379.07236979939 1153.66376456383 + endloop + endfacet + facet normal -0.405925535858481 -0.675414988831194 0.615661475325656 + outer loop + vertex -284.548200134812 1134.58441238003 1173.18960143872 + vertex -720.963554474294 1379.07236979939 1153.66376456383 + vertex -292.406592694382 1121.50892031563 1153.66376456383 + endloop + endfacet + facet normal -0.427059553877829 -0.710579646591164 0.559192903470748 + outer loop + vertex -292.406592694382 1121.50892031563 1153.66376456383 + vertex -720.963554474294 1379.07236979939 1153.66376456383 + vertex -728.101173974806 1367.19616401937 1133.12133880279 + endloop + endfacet + facet normal -0.427059553877829 -0.710579646591164 0.559192903470748 + outer loop + vertex -292.406592694382 1121.50892031563 1153.66376456383 + vertex -728.101173974806 1367.19616401937 1133.12133880279 + vertex -299.544212194894 1109.63271453561 1133.12133880279 + endloop + endfacet + facet normal -0.44611298067856 -0.742282431740159 0.500000000000006 + outer loop + vertex -299.544212194894 1109.63271453561 1133.12133880279 + vertex -728.101173974806 1367.19616401937 1133.12133880279 + vertex -734.483246651526 1356.57710420449 1111.66240478899 + endloop + endfacet + facet normal -0.446112980678562 -0.742282431740163 0.5 + outer loop + vertex -299.544212194894 1109.63271453561 1133.12133880279 + vertex -734.483246651526 1356.57710420449 1111.66240478899 + vertex -305.926284871613 1099.01365472074 1111.66240478899 + endloop + endfacet + facet normal -0.46299298988055 -0.770368891495693 0.438371146789073 + outer loop + vertex -305.926284871613 1099.01365472074 1111.66240478899 + vertex -734.483246651526 1356.57710420449 1111.66240478899 + vertex -740.078679687896 1347.26692534675 1089.39150829191 + endloop + endfacet + facet normal -0.462992989880549 -0.77036889149569 0.438371146789079 + outer loop + vertex -305.926284871613 1099.01365472074 1111.66240478899 + vertex -740.078679687896 1347.26692534675 1089.39150829191 + vertex -311.521717907983 1089.703475863 1089.39150829191 + endloop + endfacet + facet normal -0.47761734377573 -0.794702191449062 0.374606593415912 + outer loop + vertex -311.521717907983 1089.703475863 1089.39150829191 + vertex -740.078679687896 1347.26692534675 1089.39150829191 + vertex -744.860212696613 1339.31098570169 1066.41715088061 + endloop + endfacet + facet normal -0.47761734377573 -0.794702191449062 0.374606593415913 + outer loop + vertex -311.521717907983 1089.703475863 1089.39150829191 + vertex -744.860212696613 1339.31098570169 1066.41715088061 + vertex -316.3032509167 1081.74753621794 1066.41715088061 + endloop + endfacet + facet normal -0.489914793981964 -0.815163782208879 0.309016994374947 + outer loop + vertex -316.3032509167 1081.74753621794 1066.41715088061 + vertex -744.860212696613 1339.31098570169 1066.41715088061 + vertex -748.804550529498 1332.74804580753 1042.85126131503 + endloop + endfacet + facet normal -0.489914793981964 -0.815163782208879 0.309016994374946 + outer loop + vertex -316.3032509167 1081.74753621794 1066.41715088061 + vertex -748.804550529498 1332.74804580753 1042.85126131503 + vertex -320.247588749585 1075.18459632378 1042.85126131503 + endloop + endfacet + facet normal -0.49982542855798 -0.83165397696175 0.241921895599669 + outer loop + vertex -320.247588749585 1075.18459632378 1042.85126131503 + vertex -748.804550529498 1332.74804580753 1042.85126131503 + vertex -751.892476769111 1327.61007964773 1018.8086502403 + endloop + endfacet + facet normal -0.49982542855798 -0.83165397696175 0.241921895599668 + outer loop + vertex -320.247588749585 1075.18459632378 1042.85126131503 + vertex -751.892476769111 1327.61007964773 1018.8086502403 + vertex -323.335514989199 1070.04663016398 1018.8086502403 + endloop + endfacet + facet normal -0.507300963888338 -0.844092437136429 0.173648177666934 + outer loop + vertex -323.335514989199 1070.04663016398 1018.8086502403 + vertex -751.892476769111 1327.61007964773 1018.8086502403 + vertex -754.108947349212 1323.92211887695 994.406450840823 + endloop + endfacet + facet normal -0.507300963888338 -0.844092437136429 0.173648177666934 + outer loop + vertex -323.335514989199 1070.04663016398 1018.8086502403 + vertex -754.108947349212 1323.92211887695 994.406450840823 + vertex -325.551985569299 1066.3586693932 994.406450840823 + endloop + endfacet + facet normal -0.512304979916348 -0.852418563805256 0.104528463267647 + outer loop + vertex -325.551985569299 1066.3586693932 994.406450840823 + vertex -754.108947349212 1323.92211887695 994.406450840823 + vertex -755.443163847932 1321.70213086936 969.763548179164 + endloop + endfacet + facet normal -0.512304979916348 -0.852418563805255 0.104528463267654 + outer loop + vertex -325.551985569299 1066.3586693932 994.406450840823 + vertex -755.443163847932 1321.70213086936 969.763548179164 + vertex -326.886202068019 1064.13868138561 969.763548179164 + endloop + endfacet + facet normal -0.514813097578921 -0.856591792916036 0.034899496702506 + outer loop + vertex -326.886202068019 1064.13868138561 969.763548179164 + vertex -755.443163847932 1321.70213086936 969.763548179164 + vertex -755.888626096605 1320.96093118338 945 + endloop + endfacet + facet normal -0.857113923559824 0.515126898967512 -1.35433003983552E-13 + outer loop + vertex -579.400649639859 1614.61731423224 1299.78374359178 + vertex -566.636504286419 1635.85543386199 1299.78374359178 + vertex -592.13370217674 1593.43092959448 1298.05527285574 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -2.87365246949297E-14 + outer loop + vertex -592.13370217674 1593.43092959448 1298.05527285574 + vertex -566.636504286419 1635.85543386199 1299.78374359178 + vertex -553.903451749538 1657.04181849974 1298.05527285574 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.16050222695802E-14 + outer loop + vertex -592.13370217674 1593.43092959448 1298.05527285574 + vertex -553.903451749538 1657.04181849974 1298.05527285574 + vertex -604.773627745027 1572.39949788503 1294.60675231933 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 3.06006128164338E-14 + outer loop + vertex -604.773627745027 1572.39949788503 1294.60675231933 + vertex -553.903451749538 1657.04181849974 1298.05527285574 + vertex -541.263526181251 1678.0732502092 1294.60675231933 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -1.98008238731127E-14 + outer loop + vertex -604.773627745027 1572.39949788503 1294.60675231933 + vertex -541.263526181251 1678.0732502092 1294.60675231933 + vertex -617.258845897911 1551.62548212509 1289.45498282798 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -1.96038019987997E-15 + outer loop + vertex -617.258845897911 1551.62548212509 1289.45498282798 + vertex -541.263526181251 1678.0732502092 1294.60675231933 + vertex -528.778308028367 1698.84726596914 1289.45498282798 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.95740728461557E-15 + outer loop + vertex -617.258845897911 1551.62548212509 1289.45498282798 + vertex -528.778308028367 1698.84726596914 1289.45498282798 + vertex -629.528529907562 1531.21009123125 1282.62506328478 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -1.62069760746055E-14 + outer loop + vertex -629.528529907562 1531.21009123125 1282.62506328478 + vertex -528.778308028367 1698.84726596914 1289.45498282798 + vertex -516.508624018717 1719.26265686297 1282.62506328478 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 1.30613594496393E-14 + outer loop + vertex -629.528529907562 1531.21009123125 1282.62506328478 + vertex -516.508624018717 1719.26265686297 1282.62506328478 + vertex -641.522903106827 1511.25278693581 1274.15026837121 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967509 1.53920791667781E-15 + outer loop + vertex -641.522903106827 1511.25278693581 1274.15026837121 + vertex -516.508624018717 1719.26265686297 1282.62506328478 + vertex -504.514250819451 1739.21996115842 1274.15026837121 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967509 6.95687406488409E-15 + outer loop + vertex -641.522903106827 1511.25278693581 1274.15026837121 + vertex -504.514250819451 1739.21996115842 1274.15026837121 + vertex -653.183530115151 1491.85079921918 1264.0718864362 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967509 4.42414263270311E-15 + outer loop + vertex -653.183530115151 1491.85079921918 1264.0718864362 + vertex -504.514250819451 1739.21996115842 1274.15026837121 + vertex -492.853623811127 1758.62194887504 1264.0718864362 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -1.48526803943451E-14 + outer loop + vertex -653.183530115151 1491.85079921918 1264.0718864362 + vertex -492.853623811127 1758.62194887504 1264.0718864362 + vertex -664.453601529872 1473.09865261524 1252.43901834348 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -6.72101836114667E-15 + outer loop + vertex -664.453601529872 1473.09865261524 1252.43901834348 + vertex -492.853623811127 1758.62194887504 1264.0718864362 + vertex -481.583552396406 1777.37409547898 1252.43901834348 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 6.0473909783805E-15 + outer loop + vertex -664.453601529872 1473.09865261524 1252.43901834348 + vertex -481.583552396406 1777.37409547898 1252.43901834348 + vertex -675.27821069592 1455.08770569729 1239.30833825704 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 5.32406094313857E-15 + outer loop + vertex -675.27821069592 1455.08770569729 1239.30833825704 + vertex -481.583552396406 1777.37409547898 1252.43901834348 + vertex -470.758943230358 1795.38504239693 1239.30833825704 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.39996022928193E-15 + outer loop + vertex -675.27821069592 1455.08770569729 1239.30833825704 + vertex -470.758943230358 1795.38504239693 1239.30833825704 + vertex -685.604621205524 1437.90570598826 1224.74381753039 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -4.3596709640362E-15 + outer loop + vertex -685.604621205524 1437.90570598826 1224.74381753039 + vertex -470.758943230358 1795.38504239693 1239.30833825704 + vertex -460.432532720754 1812.56704210597 1224.74381753039 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -5.48160326362229E-15 + outer loop + vertex -685.604621205524 1437.90570598826 1224.74381753039 + vertex -460.432532720754 1812.56704210597 1224.74381753039 + vertex -695.382523824689 1421.63636246359 1208.81641304447 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 5.50208435248568E-15 + outer loop + vertex -695.382523824689 1421.63636246359 1208.81641304447 + vertex -460.432532720754 1812.56704210597 1224.74381753039 + vertex -450.654630101589 1828.83638563064 1208.81641304447 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 4.50786768852272E-15 + outer loop + vertex -695.382523824689 1421.63636246359 1208.81641304447 + vertex -450.654630101589 1828.83638563064 1208.81641304447 + vertex -704.564281594725 1406.35893772956 1191.60372151294 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 0 + outer loop + vertex -704.564281594725 1406.35893772956 1191.60372151294 + vertex -450.654630101589 1828.83638563064 1208.81641304447 + vertex -441.472872331553 1844.11381036467 1191.60372151294 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -2.53623530931677E-15 + outer loop + vertex -704.564281594725 1406.35893772956 1191.60372151294 + vertex -441.472872331553 1844.11381036467 1191.60372151294 + vertex -713.105161914725 1392.14786186378 1173.18960143872 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 0 + outer loop + vertex -713.105161914725 1392.14786186378 1173.18960143872 + vertex -441.472872331553 1844.11381036467 1191.60372151294 + vertex -432.931992011553 1858.32488623045 1173.18960143872 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 3.79779257453561E-15 + outer loop + vertex -713.105161914725 1392.14786186378 1173.18960143872 + vertex -432.931992011553 1858.32488623045 1173.18960143872 + vertex -720.963554474294 1379.07236979939 1153.66376456383 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 0 + outer loop + vertex -720.963554474294 1379.07236979939 1153.66376456383 + vertex -432.931992011553 1858.32488623045 1173.18960143872 + vertex -425.073599451984 1871.40037829484 1153.66376456383 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -4.30019754389405E-15 + outer loop + vertex -720.963554474294 1379.07236979939 1153.66376456383 + vertex -425.073599451984 1871.40037829484 1153.66376456383 + vertex -728.101173974806 1367.19616401937 1133.12133880279 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 0 + outer loop + vertex -728.101173974806 1367.19616401937 1133.12133880279 + vertex -425.073599451984 1871.40037829484 1153.66376456383 + vertex -417.935979951472 1883.27658407486 1133.12133880279 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -8.72683241135851E-16 + outer loop + vertex -728.101173974806 1367.19616401937 1133.12133880279 + vertex -417.935979951472 1883.27658407486 1133.12133880279 + vertex -734.483246651526 1356.57710420449 1111.66240478899 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 0 + outer loop + vertex -734.483246651526 1356.57710420449 1111.66240478899 + vertex -417.935979951472 1883.27658407486 1133.12133880279 + vertex -411.553907274752 1893.89564388973 1111.66240478899 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.82670626617399E-15 + outer loop + vertex -734.483246651526 1356.57710420449 1111.66240478899 + vertex -411.553907274752 1893.89564388973 1111.66240478899 + vertex -740.078679687896 1347.26692534675 1089.39150829191 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -3.8428552257087E-15 + outer loop + vertex -740.078679687896 1347.26692534675 1089.39150829191 + vertex -411.553907274752 1893.89564388973 1111.66240478899 + vertex -405.958474238383 1903.20582274747 1089.39150829191 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 8.73091248125746E-17 + outer loop + vertex -740.078679687896 1347.26692534675 1089.39150829191 + vertex -405.958474238383 1903.20582274747 1089.39150829191 + vertex -744.860212696613 1339.31098570169 1066.41715088061 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 1.81076753809864E-15 + outer loop + vertex -744.860212696613 1339.31098570169 1066.41715088061 + vertex -405.958474238383 1903.20582274747 1089.39150829191 + vertex -401.176941229665 1911.16176239253 1066.41715088061 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 1.43431851578508E-15 + outer loop + vertex -744.860212696613 1339.31098570169 1066.41715088061 + vertex -401.176941229665 1911.16176239253 1066.41715088061 + vertex -748.804550529498 1332.74804580753 1042.85126131503 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -3.4514088648536E-15 + outer loop + vertex -748.804550529498 1332.74804580753 1042.85126131503 + vertex -401.176941229665 1911.16176239253 1066.41715088061 + vertex -397.23260339678 1917.72470228669 1042.85126131503 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967508 -2.41829758236058E-15 + outer loop + vertex -748.804550529498 1332.74804580753 1042.85126131503 + vertex -397.23260339678 1917.72470228669 1042.85126131503 + vertex -751.892476769111 1327.61007964773 1018.8086502403 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 1.66228644947753E-15 + outer loop + vertex -751.892476769111 1327.61007964773 1018.8086502403 + vertex -397.23260339678 1917.72470228669 1042.85126131503 + vertex -394.144677157167 1922.86266844649 1018.8086502403 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -1.61220067871422E-15 + outer loop + vertex -751.892476769111 1327.61007964773 1018.8086502403 + vertex -394.144677157167 1922.86266844649 1018.8086502403 + vertex -754.108947349212 1323.92211887695 994.406450840823 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 1.61774528511933E-15 + outer loop + vertex -754.108947349212 1323.92211887695 994.406450840823 + vertex -394.144677157167 1922.86266844649 1018.8086502403 + vertex -391.928206577066 1926.55062921727 994.406450840823 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 6.32016856098093E-15 + outer loop + vertex -754.108947349212 1323.92211887695 994.406450840823 + vertex -391.928206577066 1926.55062921727 994.406450840823 + vertex -755.443163847932 1321.70213086936 969.763548179164 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -3.1804548448678E-15 + outer loop + vertex -755.443163847932 1321.70213086936 969.763548179164 + vertex -391.928206577066 1926.55062921727 994.406450840823 + vertex -390.593990078346 1928.77061722487 969.763548179164 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 2.41390014752613E-15 + outer loop + vertex -755.443163847932 1321.70213086936 969.763548179164 + vertex -390.593990078346 1928.77061722487 969.763548179164 + vertex -755.888626096605 1320.96093118338 945 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967509 0 + outer loop + vertex -755.888626096605 1320.96093118338 945 + vertex -390.593990078346 1928.77061722487 969.763548179164 + vertex -390.148527829674 1929.51181691085 945 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967509 -2.41418651259109E-15 + outer loop + vertex -755.888626096605 1320.96093118338 945 + vertex -390.148527829674 1929.51181691085 945 + vertex -755.443163847932 1321.70213086936 920.236451820835 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -1.58247999428089E-15 + outer loop + vertex -755.443163847932 1321.70213086936 920.236451820835 + vertex -390.148527829674 1929.51181691085 945 + vertex -390.593990078346 1928.77061722487 920.236451820835 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -1.63992202938494E-15 + outer loop + vertex -755.443163847932 1321.70213086936 920.236451820835 + vertex -390.593990078346 1928.77061722487 920.236451820835 + vertex -754.108947349212 1323.92211887695 895.593549159176 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 0 + outer loop + vertex -754.108947349212 1323.92211887695 895.593549159176 + vertex -390.593990078346 1928.77061722487 920.236451820835 + vertex -391.928206577066 1926.55062921727 895.593549159177 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967509 -3.03327240959876E-15 + outer loop + vertex -754.108947349212 1323.92211887695 895.593549159176 + vertex -391.928206577066 1926.55062921727 895.593549159177 + vertex -751.892476769111 1327.61007964773 871.191349759695 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 3.2755823313559E-15 + outer loop + vertex -751.892476769111 1327.61007964773 871.191349759695 + vertex -391.928206577066 1926.55062921727 895.593549159177 + vertex -394.144677157167 1922.86266844649 871.191349759695 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.37655015823742E-15 + outer loop + vertex -751.892476769111 1327.61007964773 871.191349759695 + vertex -394.144677157167 1922.86266844649 871.191349759695 + vertex -748.804550529498 1332.74804580753 847.148738684965 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967508 -3.38297366712737E-15 + outer loop + vertex -748.804550529498 1332.74804580753 847.148738684965 + vertex -394.144677157167 1922.86266844649 871.191349759695 + vertex -397.23260339678 1917.72470228669 847.148738684965 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -1.37517071959012E-15 + outer loop + vertex -748.804550529498 1332.74804580753 847.148738684965 + vertex -397.23260339678 1917.72470228669 847.148738684965 + vertex -744.860212696613 1339.31098570169 823.582849119388 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 1.76531509635087E-15 + outer loop + vertex -744.860212696613 1339.31098570169 823.582849119388 + vertex -397.23260339678 1917.72470228669 847.148738684965 + vertex -401.176941229665 1911.16176239253 823.582849119388 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -5.0644904581196E-15 + outer loop + vertex -744.860212696613 1339.31098570169 823.582849119388 + vertex -401.176941229665 1911.16176239253 823.582849119388 + vertex -740.078679687896 1347.26692534675 800.608491708091 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 0 + outer loop + vertex -740.078679687896 1347.26692534675 800.608491708091 + vertex -401.176941229665 1911.16176239253 823.582849119388 + vertex -405.958474238383 1903.20582274747 800.608491708091 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.28169529026452E-15 + outer loop + vertex -740.078679687896 1347.26692534675 800.608491708091 + vertex -405.958474238383 1903.20582274747 800.608491708091 + vertex -734.483246651526 1356.57710420449 778.337595211009 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 0 + outer loop + vertex -734.483246651526 1356.57710420449 778.337595211009 + vertex -405.958474238383 1903.20582274747 800.608491708091 + vertex -411.553907274752 1893.89564388973 778.337595211009 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 9.02665566363107E-16 + outer loop + vertex -734.483246651526 1356.57710420449 778.337595211009 + vertex -411.553907274752 1893.89564388973 778.337595211009 + vertex -728.101173974806 1367.19616401937 756.878661197212 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 4.29628672559193E-15 + outer loop + vertex -728.101173974806 1367.19616401937 756.878661197212 + vertex -411.553907274752 1893.89564388973 778.337595211009 + vertex -417.935979951472 1883.27658407486 756.878661197212 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -4.20746926482489E-16 + outer loop + vertex -728.101173974806 1367.19616401937 756.878661197212 + vertex -417.935979951472 1883.27658407486 756.878661197212 + vertex -720.963554474294 1379.07236979939 736.336235436172 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -4.70448962067037E-15 + outer loop + vertex -720.963554474294 1379.07236979939 736.336235436172 + vertex -417.935979951472 1883.27658407486 756.878661197212 + vertex -425.073599451984 1871.40037829484 736.336235436172 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967509 1.16002104747415E-15 + outer loop + vertex -720.963554474294 1379.07236979939 736.336235436172 + vertex -425.073599451984 1871.40037829484 736.336235436172 + vertex -713.105161914725 1392.14786186378 716.810398561278 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.61353467494924E-15 + outer loop + vertex -713.105161914725 1392.14786186378 716.810398561278 + vertex -425.073599451984 1871.40037829484 736.336235436172 + vertex -432.931992011553 1858.32488623045 716.810398561278 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.51151034878911E-15 + outer loop + vertex -713.105161914725 1392.14786186378 716.810398561278 + vertex -432.931992011553 1858.32488623045 716.810398561278 + vertex -704.564281594725 1406.35893772956 698.396278487056 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967509 -2.95125563265952E-15 + outer loop + vertex -704.564281594725 1406.35893772956 698.396278487056 + vertex -432.931992011553 1858.32488623045 716.810398561278 + vertex -441.472872331553 1844.11381036467 698.396278487056 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967508 -3.0585862330656E-15 + outer loop + vertex -704.564281594725 1406.35893772956 698.396278487056 + vertex -441.472872331553 1844.11381036467 698.396278487056 + vertex -695.382523824689 1421.63636246359 681.183586955525 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 0 + outer loop + vertex -695.382523824689 1421.63636246359 681.183586955525 + vertex -441.472872331553 1844.11381036467 698.396278487056 + vertex -450.654630101589 1828.83638563064 681.183586955525 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -3.09492244827324E-15 + outer loop + vertex -695.382523824689 1421.63636246359 681.183586955525 + vertex -450.654630101589 1828.83638563064 681.183586955525 + vertex -685.604621205524 1437.90570598826 665.256182469614 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 1.99331027768083E-15 + outer loop + vertex -685.604621205524 1437.90570598826 665.256182469614 + vertex -450.654630101589 1828.83638563064 681.183586955525 + vertex -460.432532720754 1812.56704210597 665.256182469613 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 5.38146884623215E-15 + outer loop + vertex -685.604621205524 1437.90570598826 665.256182469614 + vertex -460.432532720754 1812.56704210597 665.256182469613 + vertex -675.27821069592 1455.08770569729 650.69166174296 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 2.39996022928191E-15 + outer loop + vertex -675.27821069592 1455.08770569729 650.69166174296 + vertex -460.432532720754 1812.56704210597 665.256182469613 + vertex -470.758943230358 1795.38504239693 650.69166174296 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -6.07275701326743E-15 + outer loop + vertex -675.27821069592 1455.08770569729 650.69166174296 + vertex -470.758943230358 1795.38504239693 650.69166174296 + vertex -664.453601529872 1473.09865261524 637.560981656524 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -4.46576564557333E-15 + outer loop + vertex -664.453601529872 1473.09865261524 637.560981656524 + vertex -470.758943230358 1795.38504239693 650.69166174296 + vertex -481.583552396406 1777.37409547898 637.560981656524 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 1.40721321936506E-14 + outer loop + vertex -664.453601529872 1473.09865261524 637.560981656524 + vertex -481.583552396406 1777.37409547898 637.560981656524 + vertex -653.183530115151 1491.85079921918 625.928113563795 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 3.83294977918587E-15 + outer loop + vertex -653.183530115151 1491.85079921918 625.928113563795 + vertex -481.583552396406 1777.37409547898 637.560981656524 + vertex -492.853623811127 1758.62194887504 625.928113563796 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -6.77446840632676E-15 + outer loop + vertex -653.183530115151 1491.85079921918 625.928113563795 + vertex -492.853623811127 1758.62194887504 625.928113563796 + vertex -641.522903106827 1511.25278693581 615.84973162879 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -5.17720860642537E-15 + outer loop + vertex -641.522903106827 1511.25278693581 615.84973162879 + vertex -492.853623811127 1758.62194887504 625.928113563796 + vertex -504.514250819451 1739.21996115842 615.84973162879 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967509 1.53920791667781E-15 + outer loop + vertex -641.522903106827 1511.25278693581 615.84973162879 + vertex -504.514250819451 1739.21996115842 615.84973162879 + vertex -629.528529907562 1531.21009123126 607.37493671522 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 0 + outer loop + vertex -629.528529907562 1531.21009123126 607.37493671522 + vertex -504.514250819451 1739.21996115842 615.84973162879 + vertex -516.508624018717 1719.26265686297 607.37493671522 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 1.1576411481861E-15 + outer loop + vertex -629.528529907562 1531.21009123126 607.37493671522 + vertex -516.508624018717 1719.26265686297 607.37493671522 + vertex -617.258845897911 1551.62548212509 600.545017172021 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 1.47870364230782E-14 + outer loop + vertex -617.258845897911 1551.62548212509 600.545017172021 + vertex -516.508624018717 1719.26265686297 607.37493671522 + vertex -528.778308028367 1698.84726596914 600.545017172021 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 1.22523762492498E-15 + outer loop + vertex -617.258845897911 1551.62548212509 600.545017172021 + vertex -528.778308028367 1698.84726596914 600.545017172021 + vertex -604.773627745027 1572.39949788503 595.393247680666 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -2.73114812042929E-15 + outer loop + vertex -604.773627745027 1572.39949788503 595.393247680666 + vertex -528.778308028367 1698.84726596914 600.545017172021 + vertex -541.263526181251 1678.0732502092 595.393247680666 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 4.59009192246508E-15 + outer loop + vertex -604.773627745027 1572.39949788503 595.393247680666 + vertex -541.263526181251 1678.0732502092 595.393247680666 + vertex -592.13370217674 1593.43092959448 591.944727144263 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -6.77804620222125E-15 + outer loop + vertex -592.13370217674 1593.43092959448 591.944727144263 + vertex -541.263526181251 1678.0732502092 595.393247680666 + vertex -553.903451749538 1657.04181849974 591.944727144263 + endloop + endfacet + facet normal -0.857113923559825 0.515126898967509 -4.73307465563549E-14 + outer loop + vertex -592.13370217674 1593.43092959448 591.944727144263 + vertex -553.903451749538 1657.04181849974 591.944727144263 + vertex -579.400649639859 1614.61731423224 590.216256408221 + endloop + endfacet + facet normal -0.857113923559826 0.515126898967508 -1.51887481103048E-14 + outer loop + vertex -579.400649639859 1614.61731423224 590.216256408221 + vertex -553.903451749538 1657.04181849974 591.944727144263 + vertex -566.636504286419 1635.85543386199 590.216256408221 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 697.211468181837 1758.6634149482 1315 + vertex 45.4614683437251 1683.68383298737 1315 + vertex 110.640672449904 782.67478538312 1315 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 110.640672449904 782.67478538312 1315 + vertex 45.4614683437251 1683.68383298737 1315 + vertex -335.058567801204 1050.54077284622 1315 + endloop + endfacet + facet normal -0.114289644913817 0.993447470712706 0 + outer loop + vertex 45.4614683437251 1683.68383298737 1315 + vertex 697.211468181837 1758.6634149482 1315 + vertex 45.4614683437251 1683.68383298737 575 + endloop + endfacet + facet normal -0.114289644913817 0.993447470712706 0 + outer loop + vertex 45.4614683437251 1683.68383298737 575 + vertex 697.211468181837 1758.6634149482 1315 + vertex 697.211468181837 1758.6634149482 575 + endloop + endfacet +endsolid diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/.gitignore b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/.gitignore new file mode 100644 index 000000000..8ec644b51 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/.gitignore @@ -0,0 +1,15 @@ +sandbox* + +/**/case/[0-9]* +/**/case/constant/ +/**/case/logging/ +/**/case/processors*/ +/**/case/system/ +/**/case/VTK/ +/**/case/*.msh +/**/case/*.sh +/**/case/*.pvsm + +# Maybe commit later +/**/case/postProcessing/ +/**/post/* diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/make-flap.geo b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/make-flap.geo new file mode 100644 index 000000000..5d6758c0b --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/make-flap.geo @@ -0,0 +1,73 @@ +// ----------------------------------------------------------------------------- +// +// Helper for making flaps in the system +// +// ----------------------------------------------------------------------------- + +NEXTFIELD = 0; +NEXTFLAP = #theloops[]; + +Macro AddInternalFlap + // Arguments: + // - xc : (x, y) coordinates of central point [m] (0, 1) + // - dims : thickness, width [m] (2, 3) + // - angle : clockwise angle with horizontal [°] (4) + xc[] = {pars[0], pars[1]}; + dims[] = {pars[2], pars[3]}; + angle = pars[4]; + + theta = Pi/2 * (1 - angle/90); + gamma = Pi/2 - theta; + + reccord = 0.5 * Hypot(dims[0], dims[1]); + alpha = theta + Atan(dims[1] / dims[0]); + + x0[] = {xc[0] - reccord * Cos(alpha), xc[1] - reccord * Sin(alpha)}; + x1[] = {x0[0] + dims[0] * Cos(theta), x0[1] + dims[0] * Sin(theta)}; + x2[] = {x1[0] - dims[1] * Cos(gamma), x1[1] + dims[1] * Sin(gamma)}; + x3[] = {x2[0] - dims[0] * Cos(theta), x2[1] - dims[0] * Sin(theta)}; + + Printf("*** Flap No. %d", NEXTFLAP); + Printf("Center ---> (%.3f, %.3f)", xc[0], xc[1]); + Printf(" x0 ---> (%.3f, %.3f)", x0[0], x0[1]); + Printf(" x1 ---> (%.3f, %.3f)", x1[0], x1[1]); + Printf(" x2 ---> (%.3f, %.3f)", x2[0], x2[1]); + Printf(" x3 ---> (%.3f, %.3f)", x3[0], x3[1]); + + p0 = newp; Point(p0) = {x0[0], x0[1], 0}; + p1 = newp; Point(p1) = {x1[0], x1[1], 0}; + p2 = newp; Point(p2) = {x2[0], x2[1], 0}; + p3 = newp; Point(p3) = {x3[0], x3[1], 0}; + + l0 = newl; Line(l0) = {p0, p1}; + l1 = newl; Line(l1) = {p1, p2}; + l2 = newl; Line(l2) = {p2, p3}; + l3 = newl; Line(l3) = {p3, p0}; + + ck = newl; Curve Loop(ck) = {l0, l1, l2, l3}; + theloops[NEXTFLAP++] = ck; + + // Ends. + Transfinite Curve{l0} = 4; + Transfinite Curve{l2} = 4; + + // Main direction. + Transfinite Curve{l1} = 50 * dims[1]; + Transfinite Curve{l3} = 50 * dims[1]; + + // XXX: Fixed size/thickness values. + idf = NEXTFIELD++; + Field[idf] = BoundaryLayer; + Field[idf].CurvesList = {l0, l1, l2, l3}; + Field[idf].Quads = 1; + Field[idf].Ratio = 1.2; + Field[idf].Size = 0.001; + Field[idf].Thickness = 0.025; + BoundaryLayer Field = idf; +Return + +// ----------------------------------------------------------------------------- +// +// EOF +// +// ----------------------------------------------------------------------------- diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/post.sh b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/post.sh new file mode 100644 index 000000000..9bd460d1f --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/post.sh @@ -0,0 +1,7 @@ +HERE=$(pwd) +cd 001/case && reconstructPar -newTimes && cd $HERE +cd 002/case && reconstructPar -newTimes && cd $HERE +cd 003/case && reconstructPar -newTimes && cd $HERE +cd 004/case && reconstructPar -newTimes && cd $HERE + +# Manually do foamToVTC cause newTimes not supported! diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/Allrun.sh b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/Allrun.sh new file mode 100644 index 000000000..87dc4748c --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/Allrun.sh @@ -0,0 +1,42 @@ +#!/bin/env bash + +# Run from strictly this directory. +cd ${0%/*} || exit 1 + +# Log at another folder to keep things clean. +mkdir logging/ + +if [ -f "../geometry.msh" ]; then + echo "Copy existing mesh:" + cp ../geometry.msh tmp.msh +else + echo "Generate MSH2 file:" + gmsh -3 ../geometry.geo -o tmp.msh | tee logging/log.gmsh +fi + +# Create constant/polyMesh in case +gmshToFoam tmp.msh | tee logging/log.gmshToFoam + +# Confirm mesh quality is acceptable. +checkMesh | tee logging/log.checkMesh + +# Remove mesh cause non longer required. +rm -rf tmp.msh + +# Fix patches for the present case. +chmod u+x patches.sh && ./patches.sh + +# Improve parallelization efficiency. +renumberMesh -overwrite | tee logging/log.renumberMesh + +# Manage type of execution. +if [ "$(nproc --all)" -gt 10 ]; then + echo "Running in parallel:" + decomposePar | tee logging/log.decomposePar + mpirun -np 10 foamRun -parallel | tee logging/log.foamRun +else + echo "Running sequential" + foamRun | tee logging/log.foamRun +fi + +#------------------------------------------------------------------------------ \ No newline at end of file diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/cloudProperties b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/cloudProperties new file mode 100644 index 000000000..0d853b6df --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/cloudProperties @@ -0,0 +1,189 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object cloudProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type MPPICCloud; + +solution +{ + coupled true; + transient yes; + cellValueSourceCorrection on; + maxCo 0.7; + + interpolationSchemes + { + rho.air cell; + U.air cellPoint; + mu.air cell; + alpha.air cell; + } + + averagingMethod dual; + + integrationSchemes + { + U Euler; + } + + sourceTerms + { + schemes + { + U semiImplicit 1; + } + } +} + +constantProperties +{ + rho0 2450; +} + +subModels +{ + particleForces + { + gravity; + + ErgunWenYuDrag + { + alphac alpha.air; + } + } + + // ------------------------------------------------------------------------ + + injectionModels + { + model1 + { + type patchInjection; + patchName inlet; + + U0 (32.50 -19.53 0.00); + flowRateProfile constant 1; + uniformParcelSize nParticle; + + parcelsPerSecond 22648; + nParticle 1; + + SOI 0; + duration 1.0e+09; + + sizeDistribution + { + type tabulatedDensity; + Q 3; + + distribution + ( + (1.500000000000e-04 1.045855018587e-01) + (2.600000000000e-04 1.839956629492e-01) + (4.100000000000e-04 1.945686493185e-01) + (7.500000000000e-04 2.911006195787e-01) + (1.250000000000e-03 1.457625774473e-01) + (1.750000000000e-03 4.834299876084e-02) + (3.000000000000e-03 2.662899628253e-02) + (4.000000000000e-03 4.914993804213e-03) + ); + } + } + } + + // ------------------------------------------------------------------------ + + packingModel implicit; + + implicitCoeffs + { + alphaMin 0.0001; + rhoMin 1.0; + applyLimiting true; + applyGravity true; // TODO disable -> unphysical?! Validate! + + particleStressModel + { + type HarrisCrighton; + alphaPacked 0.6; + pSolid 5.0; + beta 2.0; + eps 1.0e-02; + } + } + + dampingModel relaxation; + + relaxationCoeffs + { + timeScaleModel + { + type nonEquilibrium; + alphaPacked 0.6; + e 0.9; + } + } + + isotropyModel stochastic; + + stochasticCoeffs + { + timeScaleModel + { + type isotropic; + alphaPacked 0.6; + e 0.9; + } + } + + patchInteractionModel standardWallInteraction; + + standardWallInteractionCoeffs + { + type rebound; + e 0.97; + mu 0.09; + } + + // ------------------------------------------------------------------------ + + dispersionModel none; + stochasticCollisionModel none; + surfaceFilmModel none; + heatTransferModel none; + radiation off; + + // ------------------------------------------------------------------------ +} + +cloudFunctions +{ + massFlux1 + { + type massFlux; + } + patchPostProcessing1 + { + type patchPostProcessing; + maxStoredParcels 10000; + + patches ( + outlet-screw-1 + outlet-screw-2 + outlet-cyclone + ); + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/g b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/g new file mode 100644 index 000000000..c0e689bd0 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/g @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class uniformDimensionedVectorField; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; + +value ( 0 -9.81 0 ); + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/momentumTransport.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/momentumTransport.air new file mode 100644 index 000000000..0798d55a1 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/momentumTransport.air @@ -0,0 +1,25 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object momentumTransport.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + RASModel kOmegaSST; + turbulence on; + printCoeffs on; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/physicalProperties b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/physicalProperties new file mode 100644 index 000000000..fd3ecd5a9 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/constant/physicalProperties @@ -0,0 +1,23 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object physicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +continuousPhaseName air; + +viscosityModel constant; + +nu 7.2010773006e-05; +rho.air 4.7821845233e-01; + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/controlDict b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/controlDict new file mode 100644 index 000000000..29ae98a4d --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/controlDict @@ -0,0 +1,78 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application foamRun; + +solver incompressibleDenseParticleFluid + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 30; + +deltaT 1.0e-04; + +writeControl adjustableRunTime; + +writeInterval 0.2; + +purgeWrite 0; + +writeFormat binary; + +writePrecision 12; + +writeCompression off; + +timeFormat fixed; + +timePrecision 6; + +runTimeModifiable true; + +adjustTimeStep yes; + +maxCo 0.7; + +maxDeltaT 0.0001; + +functions +{ + #includeFunc residuals(p, U.air, omega.air, k.air, cloud:alpha) + + #includeFunc patchAverage(patch=inlet, fields=( p )) + + #includeFunc patchFlowRate(patch=inlet, phi.air, cloud:massFlux) + + #includeFunc patchFlowRate(patch=outlet-screw-1, phi.air, cloud:massFlux) + + #includeFunc patchFlowRate(patch=outlet-screw-2, phi.air, cloud:massFlux) + + #includeFunc patchFlowRate(patch=outlet-cyclone, phi.air, cloud:massFlux) + + #includeFunc fieldAverage(U.air, alpha.air, p) + + #includeFunc yPlus(phase=air) +} + +OptimisationSwitches +{ + fileHandler collated; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/decomposeParDict b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/decomposeParDict new file mode 100644 index 000000000..0d4e53837 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/decomposeParDict @@ -0,0 +1,38 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 10; + +method scotch; + +simpleCoeffs +{ + n ( 2 5 1 ); + delta 0.001; +} + +hierarchicalCoeffs +{ + n ( 4 5 1 ); + delta 0.001; + order xyz; +} + +manualCoeffs +{ + dataFile "cellDecomposition"; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/fvSchemes b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/fvSchemes new file mode 100644 index 000000000..216def54b --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/fvSchemes @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default cellLimited Gauss linear 1; +} + +divSchemes +{ + default none; + div(alphaPhi.air,U.air) Gauss linearUpwind grad(U); + div(alphaPhi.air,k.air) Gauss upwind; + div(alphaPhi.air,epsilon.air) Gauss upwind; + div(alphaPhi.air,omega.air) Gauss upwind; + div(phiGByA,cloud:alpha) Gauss linear; + div(((alpha.air*nuEff.air)*dev2(T(grad(U.air))))) Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear limited 1; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default limited 1; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/fvSolution b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/fvSolution new file mode 100644 index 000000000..55d98eea7 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/reference/system/fvSolution @@ -0,0 +1,96 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + alpha.air + { + max 0.9; + } + + p + { + solver GAMG; + tolerance 1e-6; + relTol 0.01; + smoother GaussSeidel; + // nPreSweeps 0; + // nPostSweeps 2; + cacheAgglomeration true; + agglomerator faceAreaPair; + nCellsInCoarsestLevel 10; + mergeLevels 1; + minIter 3; + } + + pFinal + { + $p; + tolerance 1e-06; + relTol 0; + minIter 3; + } + + "(U|k|omega|epsilon).*" + { + solver PBiCGStab; + preconditioner DILU; + tolerance 1e-08; + relTol 0.01; + minIter 3; + } + + //Use with packingModel implicit + "cloud:alpha.*" + { + solver GAMG; + tolerance 1e-06; + relTol 0.0; + smoother GaussSeidel; + minIter 3; + + // Avoid unconverged iterations but it will slow down the computation + // maxIter 1000; + } +} + +PIMPLE +{ + momentumPredictor yes; + consistent yes; + nOuterCorrectors 1; + nCorrectors 2; + nNonOrthogonalCorrectors 1; + + residualControl + { + "(p|U).*" 1.0e-05; + "(k|omega).*" 1.0e-05; + } +} + +relaxationFactors +{ + fields + { + ".*" 0.9; + } + equations + { + ".*" 0.9; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/run.sh b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/run.sh new file mode 100644 index 000000000..5b801df6e --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/run.sh @@ -0,0 +1,4 @@ +cd 001/ && rm -rf case/ && ./run.sh & +cd 002/ && rm -rf case/ && ./run.sh & +cd 003/ && rm -rf case/ && ./run.sh & +cd 004/ && rm -rf case/ && ./run.sh & \ No newline at end of file diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/track.sh b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/track.sh new file mode 100644 index 000000000..8bb23e9df --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mass/track.sh @@ -0,0 +1,15 @@ +extract () +{ + if [ -d "$1/case/logging/" ]; then + echo "\nCASE $1" + tail -50 $1/case/logging/log.foamRun | grep ^Time | tail -1 + tail -50 $1/case/logging/log.foamRun | grep ^deltaT | tail -1 + tail -50 $1/case/logging/log.foamRun | grep ^Courant | tail -1 + tail -50 $1/case/logging/log.foamRun | grep ^ExecutionTime | tail -1 + fi +} + +extract "001" +extract "002" +extract "003" +extract "004" diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/.gitignore b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/.gitignore new file mode 100644 index 000000000..2ed73bab7 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/.gitignore @@ -0,0 +1,14 @@ +sandbox* + +/**/case/[0-9]* +/**/case/constant/ +/**/case/logging/ +/**/case/processors*/ +/**/case/system/ +/**/case/VTK/ +/**/case/*.msh +/**/case/*.sh +/**/case/*.pvsm + +# Maybe commit later +/**/case/postProcessing/ diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/make-flap.geo b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/make-flap.geo new file mode 100644 index 000000000..5d6758c0b --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/make-flap.geo @@ -0,0 +1,73 @@ +// ----------------------------------------------------------------------------- +// +// Helper for making flaps in the system +// +// ----------------------------------------------------------------------------- + +NEXTFIELD = 0; +NEXTFLAP = #theloops[]; + +Macro AddInternalFlap + // Arguments: + // - xc : (x, y) coordinates of central point [m] (0, 1) + // - dims : thickness, width [m] (2, 3) + // - angle : clockwise angle with horizontal [°] (4) + xc[] = {pars[0], pars[1]}; + dims[] = {pars[2], pars[3]}; + angle = pars[4]; + + theta = Pi/2 * (1 - angle/90); + gamma = Pi/2 - theta; + + reccord = 0.5 * Hypot(dims[0], dims[1]); + alpha = theta + Atan(dims[1] / dims[0]); + + x0[] = {xc[0] - reccord * Cos(alpha), xc[1] - reccord * Sin(alpha)}; + x1[] = {x0[0] + dims[0] * Cos(theta), x0[1] + dims[0] * Sin(theta)}; + x2[] = {x1[0] - dims[1] * Cos(gamma), x1[1] + dims[1] * Sin(gamma)}; + x3[] = {x2[0] - dims[0] * Cos(theta), x2[1] - dims[0] * Sin(theta)}; + + Printf("*** Flap No. %d", NEXTFLAP); + Printf("Center ---> (%.3f, %.3f)", xc[0], xc[1]); + Printf(" x0 ---> (%.3f, %.3f)", x0[0], x0[1]); + Printf(" x1 ---> (%.3f, %.3f)", x1[0], x1[1]); + Printf(" x2 ---> (%.3f, %.3f)", x2[0], x2[1]); + Printf(" x3 ---> (%.3f, %.3f)", x3[0], x3[1]); + + p0 = newp; Point(p0) = {x0[0], x0[1], 0}; + p1 = newp; Point(p1) = {x1[0], x1[1], 0}; + p2 = newp; Point(p2) = {x2[0], x2[1], 0}; + p3 = newp; Point(p3) = {x3[0], x3[1], 0}; + + l0 = newl; Line(l0) = {p0, p1}; + l1 = newl; Line(l1) = {p1, p2}; + l2 = newl; Line(l2) = {p2, p3}; + l3 = newl; Line(l3) = {p3, p0}; + + ck = newl; Curve Loop(ck) = {l0, l1, l2, l3}; + theloops[NEXTFLAP++] = ck; + + // Ends. + Transfinite Curve{l0} = 4; + Transfinite Curve{l2} = 4; + + // Main direction. + Transfinite Curve{l1} = 50 * dims[1]; + Transfinite Curve{l3} = 50 * dims[1]; + + // XXX: Fixed size/thickness values. + idf = NEXTFIELD++; + Field[idf] = BoundaryLayer; + Field[idf].CurvesList = {l0, l1, l2, l3}; + Field[idf].Quads = 1; + Field[idf].Ratio = 1.2; + Field[idf].Size = 0.001; + Field[idf].Thickness = 0.025; + BoundaryLayer Field = idf; +Return + +// ----------------------------------------------------------------------------- +// +// EOF +// +// ----------------------------------------------------------------------------- diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/post.sh b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/post.sh new file mode 100644 index 000000000..9bd460d1f --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/post.sh @@ -0,0 +1,7 @@ +HERE=$(pwd) +cd 001/case && reconstructPar -newTimes && cd $HERE +cd 002/case && reconstructPar -newTimes && cd $HERE +cd 003/case && reconstructPar -newTimes && cd $HERE +cd 004/case && reconstructPar -newTimes && cd $HERE + +# Manually do foamToVTC cause newTimes not supported! diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/Allrun.sh b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/Allrun.sh new file mode 100644 index 000000000..87dc4748c --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/Allrun.sh @@ -0,0 +1,42 @@ +#!/bin/env bash + +# Run from strictly this directory. +cd ${0%/*} || exit 1 + +# Log at another folder to keep things clean. +mkdir logging/ + +if [ -f "../geometry.msh" ]; then + echo "Copy existing mesh:" + cp ../geometry.msh tmp.msh +else + echo "Generate MSH2 file:" + gmsh -3 ../geometry.geo -o tmp.msh | tee logging/log.gmsh +fi + +# Create constant/polyMesh in case +gmshToFoam tmp.msh | tee logging/log.gmshToFoam + +# Confirm mesh quality is acceptable. +checkMesh | tee logging/log.checkMesh + +# Remove mesh cause non longer required. +rm -rf tmp.msh + +# Fix patches for the present case. +chmod u+x patches.sh && ./patches.sh + +# Improve parallelization efficiency. +renumberMesh -overwrite | tee logging/log.renumberMesh + +# Manage type of execution. +if [ "$(nproc --all)" -gt 10 ]; then + echo "Running in parallel:" + decomposePar | tee logging/log.decomposePar + mpirun -np 10 foamRun -parallel | tee logging/log.foamRun +else + echo "Running sequential" + foamRun | tee logging/log.foamRun +fi + +#------------------------------------------------------------------------------ \ No newline at end of file diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/cloudProperties b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/cloudProperties new file mode 100644 index 000000000..4088876d6 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/cloudProperties @@ -0,0 +1,189 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object cloudProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type MPPICCloud; + +solution +{ + coupled true; + transient yes; + cellValueSourceCorrection on; + maxCo 0.7; + + interpolationSchemes + { + rho.air cell; + U.air cellPoint; + mu.air cell; + alpha.air cell; + } + + averagingMethod dual; + + integrationSchemes + { + U Euler; + } + + sourceTerms + { + schemes + { + U semiImplicit 1; + } + } +} + +constantProperties +{ + rho0 2450; +} + +subModels +{ + particleForces + { + gravity; + + ErgunWenYuDrag + { + alphac alpha.air; + } + } + + // ------------------------------------------------------------------------ + + injectionModels + { + model1 + { + type patchInjection; + patchName inlet; + + U0 (32.50 -19.53 0.00); + flowRateProfile constant 1; + uniformParcelSize nParticle; + + parcelsPerSecond 1040595; + nParticle 1; + + SOI 0; + duration 1.0e+09; + + sizeDistribution + { + type tabulatedDensity; + Q 3; + + distribution + ( + (1.500000000000e-04 6.877932423625e-01) + (2.600000000000e-04 2.323527084252e-01) + (4.100000000000e-04 6.265871596741e-02) + (7.500000000000e-04 1.531508940994e-02) + (1.250000000000e-03 1.656441860012e-03) + (1.750000000000e-03 2.002071749440e-04) + (3.000000000000e-03 2.189027562200e-05) + (4.000000000000e-03 1.704524302694e-06) + ); + } + } + } + + // ------------------------------------------------------------------------ + + packingModel implicit; + + implicitCoeffs + { + alphaMin 0.0001; + rhoMin 1.0; + applyLimiting true; + applyGravity true; // TODO disable -> unphysical?! Validate! + + particleStressModel + { + type HarrisCrighton; + alphaPacked 0.6; + pSolid 5.0; + beta 2.0; + eps 1.0e-02; + } + } + + dampingModel relaxation; + + relaxationCoeffs + { + timeScaleModel + { + type nonEquilibrium; + alphaPacked 0.6; + e 0.9; + } + } + + isotropyModel stochastic; + + stochasticCoeffs + { + timeScaleModel + { + type isotropic; + alphaPacked 0.6; + e 0.9; + } + } + + patchInteractionModel standardWallInteraction; + + standardWallInteractionCoeffs + { + type rebound; + e 0.97; + mu 0.09; + } + + // ------------------------------------------------------------------------ + + dispersionModel none; + stochasticCollisionModel none; + surfaceFilmModel none; + heatTransferModel none; + radiation off; + + // ------------------------------------------------------------------------ +} + +cloudFunctions +{ + massFlux1 + { + type massFlux; + } + patchPostProcessing1 + { + type patchPostProcessing; + maxStoredParcels 10000; + + patches ( + outlet-screw-1 + outlet-screw-2 + outlet-cyclone + ); + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/g b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/g new file mode 100644 index 000000000..c0e689bd0 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/g @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class uniformDimensionedVectorField; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; + +value ( 0 -9.81 0 ); + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/momentumTransport.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/momentumTransport.air new file mode 100644 index 000000000..0798d55a1 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/momentumTransport.air @@ -0,0 +1,25 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object momentumTransport.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + RASModel kOmegaSST; + turbulence on; + printCoeffs on; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/physicalProperties b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/physicalProperties new file mode 100644 index 000000000..fd3ecd5a9 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/constant/physicalProperties @@ -0,0 +1,23 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object physicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +continuousPhaseName air; + +viscosityModel constant; + +nu 7.2010773006e-05; +rho.air 4.7821845233e-01; + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/controlDict b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/controlDict new file mode 100644 index 000000000..29ae98a4d --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/controlDict @@ -0,0 +1,78 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application foamRun; + +solver incompressibleDenseParticleFluid + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 30; + +deltaT 1.0e-04; + +writeControl adjustableRunTime; + +writeInterval 0.2; + +purgeWrite 0; + +writeFormat binary; + +writePrecision 12; + +writeCompression off; + +timeFormat fixed; + +timePrecision 6; + +runTimeModifiable true; + +adjustTimeStep yes; + +maxCo 0.7; + +maxDeltaT 0.0001; + +functions +{ + #includeFunc residuals(p, U.air, omega.air, k.air, cloud:alpha) + + #includeFunc patchAverage(patch=inlet, fields=( p )) + + #includeFunc patchFlowRate(patch=inlet, phi.air, cloud:massFlux) + + #includeFunc patchFlowRate(patch=outlet-screw-1, phi.air, cloud:massFlux) + + #includeFunc patchFlowRate(patch=outlet-screw-2, phi.air, cloud:massFlux) + + #includeFunc patchFlowRate(patch=outlet-cyclone, phi.air, cloud:massFlux) + + #includeFunc fieldAverage(U.air, alpha.air, p) + + #includeFunc yPlus(phase=air) +} + +OptimisationSwitches +{ + fileHandler collated; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/decomposeParDict b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/decomposeParDict new file mode 100644 index 000000000..0d4e53837 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/decomposeParDict @@ -0,0 +1,38 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 10; + +method scotch; + +simpleCoeffs +{ + n ( 2 5 1 ); + delta 0.001; +} + +hierarchicalCoeffs +{ + n ( 4 5 1 ); + delta 0.001; + order xyz; +} + +manualCoeffs +{ + dataFile "cellDecomposition"; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/fvSchemes b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/fvSchemes new file mode 100644 index 000000000..216def54b --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/fvSchemes @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default cellLimited Gauss linear 1; +} + +divSchemes +{ + default none; + div(alphaPhi.air,U.air) Gauss linearUpwind grad(U); + div(alphaPhi.air,k.air) Gauss upwind; + div(alphaPhi.air,epsilon.air) Gauss upwind; + div(alphaPhi.air,omega.air) Gauss upwind; + div(phiGByA,cloud:alpha) Gauss linear; + div(((alpha.air*nuEff.air)*dev2(T(grad(U.air))))) Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear limited 1; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default limited 1; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/fvSolution b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/fvSolution new file mode 100644 index 000000000..55d98eea7 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/reference/system/fvSolution @@ -0,0 +1,96 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + alpha.air + { + max 0.9; + } + + p + { + solver GAMG; + tolerance 1e-6; + relTol 0.01; + smoother GaussSeidel; + // nPreSweeps 0; + // nPostSweeps 2; + cacheAgglomeration true; + agglomerator faceAreaPair; + nCellsInCoarsestLevel 10; + mergeLevels 1; + minIter 3; + } + + pFinal + { + $p; + tolerance 1e-06; + relTol 0; + minIter 3; + } + + "(U|k|omega|epsilon).*" + { + solver PBiCGStab; + preconditioner DILU; + tolerance 1e-08; + relTol 0.01; + minIter 3; + } + + //Use with packingModel implicit + "cloud:alpha.*" + { + solver GAMG; + tolerance 1e-06; + relTol 0.0; + smoother GaussSeidel; + minIter 3; + + // Avoid unconverged iterations but it will slow down the computation + // maxIter 1000; + } +} + +PIMPLE +{ + momentumPredictor yes; + consistent yes; + nOuterCorrectors 1; + nCorrectors 2; + nNonOrthogonalCorrectors 1; + + residualControl + { + "(p|U).*" 1.0e-05; + "(k|omega).*" 1.0e-05; + } +} + +relaxationFactors +{ + fields + { + ".*" 0.9; + } + equations + { + ".*" 0.9; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/run.sh b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/run.sh new file mode 100644 index 000000000..5b801df6e --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/run.sh @@ -0,0 +1,4 @@ +cd 001/ && rm -rf case/ && ./run.sh & +cd 002/ && rm -rf case/ && ./run.sh & +cd 003/ && rm -rf case/ && ./run.sh & +cd 004/ && rm -rf case/ && ./run.sh & \ No newline at end of file diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/track.sh b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/track.sh new file mode 100644 index 000000000..8bb23e9df --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/dustCollector/runtime-mole/track.sh @@ -0,0 +1,15 @@ +extract () +{ + if [ -d "$1/case/logging/" ]; then + echo "\nCASE $1" + tail -50 $1/case/logging/log.foamRun | grep ^Time | tail -1 + tail -50 $1/case/logging/log.foamRun | grep ^deltaT | tail -1 + tail -50 $1/case/logging/log.foamRun | grep ^Courant | tail -1 + tail -50 $1/case/logging/log.foamRun | grep ^ExecutionTime | tail -1 + fi +} + +extract "001" +extract "002" +extract "003" +extract "004" diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/.gitignore b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/.gitignore new file mode 100644 index 000000000..90e97757d --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/.gitignore @@ -0,0 +1,20 @@ +# Generated mesh +*.msh +polyMesh/ + +# Time directories +/*/[0-9]* + +# Logging +logging/ + +# Decomposed cases +processor* + +# Postprocessing +animation/ +postProcessing/ +VTK/ +*.tmp +*.mp4 +*.pvsm diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/Allclean b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/Allclean new file mode 100644 index 000000000..c11a7d603 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/Allclean @@ -0,0 +1,11 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +rm -rf [0-9]* +rm -rf constant/polyMesh/ +rm -rf logging +rm -rf postProcessing +rm -rf processors* +rm -rf VTK + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/Allpost b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/Allpost new file mode 100644 index 000000000..34f33d3b3 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/Allpost @@ -0,0 +1,11 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Activate the following if running in parallel: +# reconstructPar + +foamToVTK + +rm -rf [0-9]* + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/Allrun b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/Allrun new file mode 100644 index 000000000..5707ae5f9 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/Allrun @@ -0,0 +1,26 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +mkdir logging/ + +if [ ! -f "../geometry.msh" ]; then + gmsh -3 ../geometry.geo -o ../geometry.msh | tee logging/log.gmsh +fi + +gmshToFoam ../geometry.msh | tee logging/log.gmshToFoam + +checkMesh | tee logging/log.checkMesh + +boundary=constant/polyMesh/boundary +foamDictionary $boundary -entry entry0/frontAndBack/type -set empty +foamDictionary $boundary -entry entry0/walls/type -set wall + +renumberMesh -overwrite | tee logging/log.renumberMesh + +# Activate the following if running in parallel: +# decomposePar | tee logging/log.decomposePar +# mpirun -np 16 foamRun -parallel | tee logging/log.foamRun + +foamRun | tee logging/log.foamRun + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/constant/g b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/constant/g new file mode 100644 index 000000000..9c045294c --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/constant/g @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 -9.81 0); + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/constant/momentumTransport.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/constant/momentumTransport.air new file mode 100644 index 000000000..013a6a766 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/constant/momentumTransport.air @@ -0,0 +1,38 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object momentumTransport.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + model kOmegaSST; + turbulence on; + printCoeffs on; +} + +LES +{ + model kEqn; + turbulence on; + printCoeffs on; + delta cubeRootVol; + + cubeRootVolCoeffs + { + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/constant/physicalProperties b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/constant/physicalProperties new file mode 100644 index 000000000..dcef8554e --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/constant/physicalProperties @@ -0,0 +1,25 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object physicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +continuousPhaseName air; + +viscosityModel constant; + +nu 1.568e-05; + +rho.air 1.2; + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/controlDict b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/controlDict new file mode 100644 index 000000000..1677de542 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/controlDict @@ -0,0 +1,67 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application foamRun; + +solver incompressibleDenseParticleFluid; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 10.0; + +deltaT 1.0e-04; + +writeControl adjustableRunTime; + +writeInterval 0.25; + +purgeWrite 0; + +writeFormat binary; + +writePrecision 12; + +writeCompression off; + +timeFormat scientific; + +timePrecision 8; + +runTimeModifiable true; + +adjustTimeStep yes; + +maxCo 1.0; + +maxDeltaT 0.01; + +functions +{ + #includeFunc residuals; + + #includeFunc patchFlowRate(patch=outlet, cloud:massFlux) +} + +OptimisationSwitches +{ + fileHandler collated; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/decomposeParDict b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/decomposeParDict new file mode 100644 index 000000000..05a23e02b --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/decomposeParDict @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method simple; + +simpleCoeffs +{ + n (4 4 1); +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/fvSchemes b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/fvSchemes new file mode 100644 index 000000000..81a1cc8d2 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/fvSchemes @@ -0,0 +1,67 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + + // div(alphaPhi.air,U.air) Gauss linearUpwindV grad(U); + // div(alphaPhi.air,U.air) Gauss linearUpwindV unlimited; + div(alphaPhi.air,U.air) Gauss linearUpwind grad(U); + + // div(alphaPhi.air,k.air) Gauss limitedLinear 1; + // div(alphaPhi.air,epsilon.air) Gauss limitedLinear 1; + // div(alphaPhi.air,omega.air) Gauss limitedLinear 1; + div(alphaPhi.air,k.air) Gauss upwind; + div(alphaPhi.air,epsilon.air) Gauss upwind; + div(alphaPhi.air,omega.air) Gauss upwind; + + div(phiGByA,cloud:alpha) Gauss linear; + div(((alpha.air*nuEff.air)*dev2(T(grad(U.air))))) Gauss linear; +} + +laplacianSchemes +{ + // default Gauss linear corrected; + default Gauss linear limited 1; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + // default corrected; + default limited 1; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/fvSolution b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/fvSolution new file mode 100644 index 000000000..ee780041e --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/fvSolution @@ -0,0 +1,89 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + alpha.air + { + max 0.9; + } + + p + { + solver GAMG; + tolerance 1e-06; + relTol 0.01; + smoother GaussSeidel; + } + + pFinal + { + solver GAMG; + tolerance 1e-06; + relTol 0; + smoother GaussSeidel; + } + + "(U|k|epsilon|omega).air" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "(U|k|epsilon|omega).airFinal" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "cloud:alpha.*" + { + //!!! Use with packingModel implicit + solver GAMG; + tolerance 1e-06; + relTol 0.0; + smoother GaussSeidel; + minIter 3; + + // Avoid unconverged iterations but it will slow down the computation + maxIter 1000; + } +} + +PIMPLE +{ + nOuterCorrectors 1; + nCorrectors 2; + momentumPredictor yes; + nNonOrthogonalCorrectors 0; + pRefCell 0; + pRefValue 0; + + residualControl + { + p 1.0e-05; + U.air 1.0e-04; + k.air 1.0e-05; + epsilon.air 1.0e-05; + omega.air 1.0e-05; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/residuals b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/residuals new file mode 100644 index 000000000..ff141da87 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/system/residuals @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object funcResiduals; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#includeEtc "caseDicts/postProcessing/numerical/residuals.cfg" + +fields ( + p + U.air + omega.air + k.air + cloud:alpha +); + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/U.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/U.air new file mode 100644 index 000000000..bbd40270e --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/U.air @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volVectorField; + location "0"; + object U.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (2.0 0.0 0.0); + } + outlet + { + type pressureInletOutletVelocity; + phi phi.air; + value uniform (0 0 0); + } + walls + { + type noSlip; + } + frontAndBack + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/epsilon.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/epsilon.air new file mode 100644 index 000000000..0dc40be5e --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/epsilon.air @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 1.0e-06; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + phi phi.air; + inletValue $internalField; + value $internalField; + } + walls + { + type epsilonWallFunction; + value $internalField; + Cmu 0.09; + kappa 0.41; + E 9.8; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/k.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/k.air new file mode 100644 index 000000000..5d4ec1fda --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/k.air @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object k.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.001; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + phi phi.air; + inletValue $internalField; + value $internalField; + } + walls + { + type kqRWallFunction; + value $internalField; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/nut.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/nut.air new file mode 100644 index 000000000..cceb1f516 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/nut.air @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object nut.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0.04; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + walls + { + type nutkWallFunction; + value $internalField; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/omega.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/omega.air new file mode 100644 index 000000000..a85d31bb9 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/omega.air @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object omega.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 100; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + phi phi.air; + inletValue $internalField; + value $internalField; + } + walls + { + type omegaWallFunction; + value $internalField; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/p b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/p new file mode 100644 index 000000000..71b4eeb04 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/case/zero/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type fixedFluxPressure; + gradient uniform 0; + value uniform 0; + } + outlet + { + type fixedValue; + value uniform 0; + } + walls + { + type fixedFluxPressure; + gradient uniform 0; + value uniform 0; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/geometry.geo b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/geometry.geo new file mode 100644 index 000000000..db072d736 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/geometry.geo @@ -0,0 +1,145 @@ +// ----------------------------------------------------------------------------- +// +// Geometry assembly +// +// ----------------------------------------------------------------------------- + +General.AbortOnError = 1; +General.BackgroundGradient = 0; +General.Color.Background = {0, 0, 0}; +General.Color.Foreground = White; +General.Color.Text = White; +General.Color.Axes = White; +General.Color.SmallAxes = White; +General.Axes = 0; +General.SmallAxes = 1; +Geometry.OldNewReg = 0; +Geometry.Surfaces = 1; + +OPENFOAM = 1; + +RECOMBINESURFACE = 0; + +// ----------------------------------------------------------------------------- +// +// Main coordinates +// +// ----------------------------------------------------------------------------- + +x0 = 0.0; +x1 = 0.2; +x2 = 1.5; +x3 = 1.8; +x4 = 2.0; + +y0 = 0.0; +y1 = 0.5; +y2 = 1.5; +y3 = 1.2; +y4 = 1.5; +y5 = 1.8; + +rc = 0.05; + +// ----------------------------------------------------------------------------- +// +// Points, lines, and plane +// +// ----------------------------------------------------------------------------- + +Point(1) = {x0, y2, 0}; +Point(2) = {x1, y2, 0}; +Point(3) = {x1, y0+rc, 0}; +Point(4) = {x1+rc, y0+rc, 0}; +Point(5) = {x1+rc, y0, 0}; +Point(6) = {x2, y0, 0}; +Point(7) = {x4, y1, 0}; +Point(8) = {x4, y4, 0}; +Point(9) = {x3, y4, 0}; +Point(10) = {x3, y3, 0}; +Point(11) = {x0, y5, 0}; + +Line(1) = {1, 2}; +Line(2) = {2, 3}; +Circle(3) = {3, 4, 5}; +Line(4) = {5, 6}; +Line(5) = {6, 7}; +Line(6) = {7, 8}; +Line(7) = {8, 9}; +Line(8) = {9, 10}; +Line(9) = {10, 11}; +Line(10) = {11, 1}; + +Curve Loop(1) = {1:10}; +Plane Surface(1) = {1}; + +// ----------------------------------------------------------------------------- +// +// Structuring mesh +// +// ----------------------------------------------------------------------------- + +// Refine bottom radius +Transfinite Curve(3) = 5; + +// Recombine if required +If (RECOMBINESURFACE) + Recombine Surface {1}; +EndIf + +// ----------------------------------------------------------------------------- +// +// Boundary modeling +// +// ----------------------------------------------------------------------------- + +no = 1; +Field[no] = BoundaryLayer; +Field[no].CurvesList = {1:6, 8:9}; +Field[no].PointsList = {1, 8, 9, 11}; +Field[no].Quads = 1; +Field[no].Ratio = 1.2; +Field[no].Size = 0.003; +Field[no].Thickness = 0.05; +BoundaryLayer Field = no; + +// ----------------------------------------------------------------------------- +// +// Preparing for OpenFOAM +// +// ----------------------------------------------------------------------------- + +If (OPENFOAM) + Extrude {0, 0, 0.01} { Surface{1}; Layers{1}; Recombine; } + + Physical Volume("volume") = {1}; + Physical Surface("frontAndBack") = {1, 13}; + Physical Surface("inlet") = {12}; + Physical Surface("outlet") = {9}; + Physical Surface("walls") = {3:8, 10:11}; +EndIf + +// ----------------------------------------------------------------------------- +// +// Meshing controls +// +// ----------------------------------------------------------------------------- + +Mesh.SaveAll = 0; +Mesh.MshFileVersion = 2.2; + +Mesh.Algorithm = 8; +Mesh.MeshSizeMax = 0.05; +Mesh.MeshSizeFromPoints = 0; +Mesh.MeshSizeFromCurvature = 0; +Mesh.MeshSizeExtendFromBoundary = 1; +Mesh.Smoothing = 100; + +Mesh 3; +Save "geometry.msh"; + +// ----------------------------------------------------------------------------- +// +// EOF +// +// ----------------------------------------------------------------------------- diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/notebook.jl b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/notebook.jl new file mode 100644 index 000000000..1fbc40229 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/notebook.jl @@ -0,0 +1,529 @@ +### A Pluto.jl notebook ### +# v0.19.36 + +using Markdown +using InteractiveUtils + +# ╔═╡ 8273a6d4-bdb3-11ee-045f-5b85676020b6 +begin + @info "Loading required external tools" + + # Install locally parent OpenFOAM.jl and local modules. + push!(LOAD_PATH, joinpath(@__DIR__, "../../..")) + + using OpenFOAM + using DelimitedFiles + using LightXML + using NaturalSort + using PlutoUI + using Statistics +end + +# ╔═╡ 03271849-3097-42f4-9167-6ef040d162bd +md""" +# Cases horizontalMixer + +$(TableOfContents()) +""" + +# ╔═╡ 4f0d5f0e-a19a-40d4-8534-4446fa0b32e1 +md""" +## Cases setup + +In the *conceptual* phase of the study we build cases with a single particle per parcel and with multiple particles per cell. A discussion is provided in [this article](https://wallytutor.github.io/medium-articles/notes/OpenFOAM/Particle-Flows/). + +Below we compute the entries required to set up the patch injection model. +""" + +# ╔═╡ 1959b148-1242-44bd-a8be-92a1664a49ac +md""" +To check the correctness we test the function with conditions from tutorial case `injectionChannel` provided with OpenFOAM 11, retrieving the same number of parcels. +""" + +# ╔═╡ a91dd7d3-757a-4210-bcdf-5ba33592a662 +md""" +## Processing outlet flow +""" + +# ╔═╡ 81ecf46e-dd55-4dd5-9b85-4f08a6985697 +md""" +## ParaView state file +""" + +# ╔═╡ a98cadf1-380c-4045-917d-75daf65e97ef +md""" +## Shared conditions +""" + +# ╔═╡ f7843ef0-9ada-42ba-a185-4174b1961f9b +"Mass flow rate per meter of mixer [kg/s]" +const mdot::Float64 = 0.1 + +# ╔═╡ 95cf5ceb-e02e-4496-9ed3-ff0caf3f7f45 +"Extrusion depth of generated 2D grid [m]" +const depth2d::Float64 = 0.01 + +# ╔═╡ 84484cd4-6e4c-46bc-a258-65e9c917d4aa +"Particle material specific mass [kg/m³]" +const rhop::Float64 = 2500. + +# ╔═╡ 3560cf08-811e-420c-82a2-00109698268c +md""" +## Tools +""" + +# ╔═╡ 1157123b-15d2-46bb-852e-5adb76a576cd +""" + parcelstoinject2d(; + mdot::Float64, + rhop::Float64, + diam::Float64, + nParticles::Int64 = 1, + depth2d::Float64 = 0.01 + ) + +Computes the flow rate of parcels for a given mean particle size and number of +particles per parcels. This is inteded as a helper to create a `patchInjection` +element in the `injectionModels` of `cloudProperties` file. +""" +function parcelstoinject2d(; + mdot::Float64, + rhop::Float64, + diam::Float64, + nParticles::Int64 = 1, + depth2d::Float64 = 0.01 + ) + # Total number of particles per second corresponding to `mdot`. + np = asint(mdot / spheremass(rhop, diam)) + + # Number of particles to inject in 2D grid of depth `depth2d`. + nd = asint(np * depth2d) + + # Group `nd` particles in parcels of size `nParticles`. + parcelsPerSecond = asint(nd / nParticles) + + @info """ + + - 3D values + + Target mass flow rate ................ $(mdot) + Corresponding particles per second ... $(np) + + - 2D values + + Target mass flow rate ................ $(mdot * depth2d) + Corresponding particles per second ... $(nd) + + - Values to fill in cloudProperties injection + + Total parcels .................. $(parcelsPerSecond) + Parcel size .................... $(nParticles) + """ + + return nothing +end + +# ╔═╡ 8d75b81d-531e-428d-af9f-643c56f4be5c +parcelstoinject2d(; mdot, rhop, diam = 0.0001, depth2d) + +# ╔═╡ 0bf44e98-34bd-4e80-9df1-daece2844d4e +parcelstoinject2d(; mdot, rhop, diam = 0.0001, nParticles = 100, depth2d) + +# ╔═╡ 56e6a8fa-39bb-491f-9fa8-36c8213f23c8 +parcelstoinject2d(; mdot = 0.2, rhop = 1000.0, diam = 650e-06, depth2d = 1.0) + +# ╔═╡ d99cd011-570a-4719-be00-19c729b50bb3 +"Process cloud post-processing file to tabular format." +function cleancloudpost(src; dst = "proc.tmp") + # All substitutions to make in file. + subs = ["# " => "", "(" => "", ")" => "", " " => "\t"] + + # Array to store processed rows. + rows = [] + + # Read raw OpenFOAM post-processing file. + open(src, "r") do fp + for line in readlines(fp) + for (k, v) in subs + line = replace(line, k => v) + end + push!(rows, line) + end + end + + # Dump results for processing. + open(dst, "w") do fp + write(fp, join(rows, "\n")) + end +end + +# ╔═╡ dfc4add0-263d-4e65-ac0f-6208522f508a +begin + # TODO improve these + + function varindex(head, varname) + return findfirst(name -> name == varname, head).I[2] + end + + function varname(head, index) + return head[index] + end +end + +# ╔═╡ e7894205-cf08-4566-a9d9-f74788fa2962 +let + case = "004" + time = "2.00000000e+00" + ppost = "patchPostProcessing1" + patch = "outlet" + + src = "$(case)/postProcessing/lagrangian/cloud" + src = "$(src)/$(ppost)/$(time)/$(patch).post" + + dst = "proc.tmp" + + cleancloudpost(src; dst) + + data, head = readdlm(dst; header = true) + + age = varindex(head, "age") + dia = varindex(head, "d") + + # mean(data[:, dia]) + mean(data[:, age]), std(data[:, age]) +end + +# ╔═╡ 00000000-0000-0000-0000-000000000001 +PLUTO_PROJECT_TOML_CONTENTS = """ +[deps] +DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" +LightXML = "9c8b4983-aa76-5018-a973-4c85ecc9e179" +NaturalSort = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" +PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" +Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[compat] +DelimitedFiles = "~1.9.1" +LightXML = "~0.9.1" +NaturalSort = "~1.0.0" +PlutoUI = "~0.7.55" +""" + +# ╔═╡ 00000000-0000-0000-0000-000000000002 +PLUTO_MANIFEST_TOML_CONTENTS = """ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.9.4" +manifest_format = "2.0" +project_hash = "549f2a4e22407239508cabb62956ff0de7c927ed" + +[[deps.AbstractPlutoDingetjes]] +deps = ["Pkg"] +git-tree-sha1 = "c278dfab760520b8bb7e9511b968bf4ba38b7acc" +uuid = "6e696c72-6542-2067-7265-42206c756150" +version = "1.2.3" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Hyperscript]] +deps = ["Test"] +git-tree-sha1 = "179267cfa5e712760cd43dcae385d7ea90cc25a4" +uuid = "47d2ed2b-36de-50cf-bf87-49c2cf4b8b91" +version = "0.0.5" + +[[deps.HypertextLiteral]] +deps = ["Tricks"] +git-tree-sha1 = "7134810b1afce04bbc1045ca1985fbe81ce17653" +uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" +version = "0.9.5" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "8b72179abc660bfab5e28472e019392b97d0985c" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.4" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.LightXML]] +deps = ["Libdl", "XML2_jll"] +git-tree-sha1 = "3a994404d3f6709610701c7dabfc03fed87a81f8" +uuid = "9c8b4983-aa76-5018-a973-4c85ecc9e179" +version = "0.9.1" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.MIMEs]] +git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" +uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" +version = "0.1.4" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2022.10.11" + +[[deps.NaturalSort]] +git-tree-sha1 = "eda490d06b9f7c00752ee81cfa451efe55521e21" +uuid = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" +version = "1.0.0" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.21+4" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.9.2" + +[[deps.PlutoUI]] +deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "FixedPointNumbers", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "JSON", "Logging", "MIMEs", "Markdown", "Random", "Reexport", "URIs", "UUIDs"] +git-tree-sha1 = "68723afdb616445c6caaef6255067a8339f91325" +uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8" +version = "0.7.55" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA", "Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.9.0" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "5.10.1+6" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.Tricks]] +git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f" +uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" +version = "0.1.8" + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.12.2+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+0" +""" + +# ╔═╡ Cell order: +# ╟─03271849-3097-42f4-9167-6ef040d162bd +# ╟─4f0d5f0e-a19a-40d4-8534-4446fa0b32e1 +# ╟─8d75b81d-531e-428d-af9f-643c56f4be5c +# ╟─0bf44e98-34bd-4e80-9df1-daece2844d4e +# ╟─1959b148-1242-44bd-a8be-92a1664a49ac +# ╟─56e6a8fa-39bb-491f-9fa8-36c8213f23c8 +# ╟─a91dd7d3-757a-4210-bcdf-5ba33592a662 +# ╟─e7894205-cf08-4566-a9d9-f74788fa2962 +# ╟─81ecf46e-dd55-4dd5-9b85-4f08a6985697 +# ╟─a98cadf1-380c-4045-917d-75daf65e97ef +# ╟─f7843ef0-9ada-42ba-a185-4174b1961f9b +# ╟─95cf5ceb-e02e-4496-9ed3-ff0caf3f7f45 +# ╟─84484cd4-6e4c-46bc-a258-65e9c917d4aa +# ╟─3560cf08-811e-420c-82a2-00109698268c +# ╟─8273a6d4-bdb3-11ee-045f-5b85676020b6 +# ╟─1157123b-15d2-46bb-852e-5adb76a576cd +# ╟─d99cd011-570a-4719-be00-19c729b50bb3 +# ╟─dfc4add0-263d-4e65-ac0f-6208522f508a +# ╟─00000000-0000-0000-0000-000000000001 +# ╟─00000000-0000-0000-0000-000000000002 diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/Allclean b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/Allclean new file mode 100644 index 000000000..c11a7d603 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/Allclean @@ -0,0 +1,11 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +rm -rf [0-9]* +rm -rf constant/polyMesh/ +rm -rf logging +rm -rf postProcessing +rm -rf processors* +rm -rf VTK + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/Allpost b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/Allpost new file mode 100644 index 000000000..f7e1b8c24 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/Allpost @@ -0,0 +1,10 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +reconstructPar + +foamToVTK + +rm -rf [0-9]* + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/Allrun b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/Allrun new file mode 100644 index 000000000..7fc295b05 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/Allrun @@ -0,0 +1,22 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +cp -avr zero/ 0/ + +mkdir logging/ + +gmshToFoam ../geometry.msh | tee logging/log.gmshToFoam + +checkMesh | tee logging/log.checkMesh + +boundary=constant/polyMesh/boundary +foamDictionary $boundary -entry entry0/frontAndBack/type -set empty +foamDictionary $boundary -entry entry0/walls/type -set wall + +renumberMesh -overwrite | tee logging/log.renumberMesh + +decomposePar | tee logging/log.decomposePar + +mpirun -np 16 foamRun -parallel | tee logging/log.foamRun + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/cloudProperties b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/cloudProperties new file mode 100644 index 000000000..c6e10d4db --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/cloudProperties @@ -0,0 +1,240 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object cloudProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type MPPICCloud; + +solution +{ + coupled true; + transient yes; + cellValueSourceCorrection on; + maxCo 0.7; + + interpolationSchemes + { + rho.air cell; + U.air cellPoint; + mu.air cell; + alpha.air cell; + } + + averagingMethod dual; + + integrationSchemes + { + U Euler; + } + + sourceTerms + { + schemes + { + U semiImplicit 1; + } + } +} + +constantProperties +{ + rho0 2500; +} + +subModels +{ + particleForces + { + gravity; + + sphereDrag; + + // ErgunWenYuDrag + // { + // alphac alpha.air; + // } + // PlessisMasliyahDrag + // { + // alphac alpha.air; + // } + // WenYuDrag + // { + // alphac alpha.air; + // } + } + + injectionModels + { + model1 + { + type patchInjection; + patchName inlet; + + // Same as fluid in this case with homogeneous distribution. + U0 (2.0 0.0 0.0); + flowRateProfile constant 1; + + // NOTE: mass flow rate must be scaled by the width of the + // 2-D extruded mesh, otherwise absurd flow rates will make + // convergence impossible! + + parcelsPerSecond 7639; + + // uniformParcelSize volume; + // massFlowRate 0.001; + + uniformParcelSize nParticle; + nParticle 100; + + SOI 1.0; + duration 1.0e+09; + + sizeDistribution + { + type fixedValue; + value 0.0001; + } + } + } + + // ------------------------------------------------------------------------ + + patchInteractionModel localInteraction; + + localInteractionCoeffs + { + patches + ( + inlet + { + type rebound; + e 0.97; + mu 0.09; + } + outlet + { + type escape; + } + walls + { + type rebound; + e 0.97; + mu 0.09; + } + ); + } + + // ------------------------------------------------------------------------ + + packingModel implicit; + + explicitCoeffs + { + particleStressModel + { + type HarrisCrighton; + alphaPacked 0.6; + pSolid 10.0; + beta 2.0; + eps 1.0e-07; + } + correctionLimitingMethod + { + type absolute; + e 0.9; + } + } + + implicitCoeffs + { + alphaMin 0.0001; + rhoMin 1.0; + applyLimiting true; + applyGravity false; + + particleStressModel + { + type HarrisCrighton; + alphaPacked 0.6; + pSolid 5.0; + beta 2.0; + eps 1.0e-02; + } + } + + // ------------------------------------------------------------------------ + + dampingModel relaxation; + + relaxationCoeffs + { + timeScaleModel + { + type nonEquilibrium; + alphaPacked 0.6; + e 0.9; + } + } + + // ------------------------------------------------------------------------ + + isotropyModel stochastic; + + stochasticCoeffs + { + timeScaleModel + { + type isotropic; + alphaPacked 0.6; + e 0.9; + } + } + + // ------------------------------------------------------------------------ + + dispersionModel none; + + heatTransferModel none; + + surfaceFilmModel none; + + stochasticCollisionModel none; + + radiation off; + +} + +cloudFunctions +{ + massFlux1 + { + type massFlux; + } + patchPostProcessing1 + { + type patchPostProcessing; + maxStoredParcels 1000; + patches ( outlet ); + } + particleTracks1 + { + type particleTracks; + trackInterval 5; + maxSamples 1000000; + resetOnWrite yes; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/g b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/g new file mode 100644 index 000000000..9c045294c --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/g @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 -9.81 0); + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/momentumTransport.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/momentumTransport.air new file mode 100644 index 000000000..d32cb5137 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/momentumTransport.air @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object momentumTransport.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// simulationType laminar; +// simulationType LES; +simulationType RAS; + +RAS +{ + // model kEpsilon; + model kOmegaSST; + turbulence on; + printCoeffs on; +} + +LES +{ + model kEqn; + turbulence on; + printCoeffs on; + delta cubeRootVol; + + cubeRootVolCoeffs + { + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/physicalProperties b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/physicalProperties new file mode 100644 index 000000000..51d856d40 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/constant/physicalProperties @@ -0,0 +1,25 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object physicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +continuousPhaseName air; + +transportModel Newtonian; +// viscosityModel constant; + +nu 1.568e-05; +rho.air 1.2; + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/controlDict b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/controlDict new file mode 100644 index 000000000..c037266de --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/controlDict @@ -0,0 +1,68 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application foamRun; + +solver incompressibleDenseParticleFluid; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 20.0; + +deltaT 1.0e-04; + +writeControl adjustableRunTime; + +writeInterval 0.25; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 12; + +writeCompression off; + +timeFormat scientific; + +timePrecision 8; + +runTimeModifiable true; + +adjustTimeStep yes; + +maxCo 0.3; + +maxDeltaT 0.01; + +functions +{ + #includeFunc residuals; + + // Is this equivalent to the `cloudFunctions`? + #includeFunc patchFlowRate(patch=outlet, cloud:massFlux) +} + +OptimisationSwitches +{ + fileHandler collated; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/decomposeParDict b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/decomposeParDict new file mode 100644 index 000000000..05a23e02b --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/decomposeParDict @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method simple; + +simpleCoeffs +{ + n (4 4 1); +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/fvSchemes b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/fvSchemes new file mode 100644 index 000000000..81a1cc8d2 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/fvSchemes @@ -0,0 +1,67 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + + // div(alphaPhi.air,U.air) Gauss linearUpwindV grad(U); + // div(alphaPhi.air,U.air) Gauss linearUpwindV unlimited; + div(alphaPhi.air,U.air) Gauss linearUpwind grad(U); + + // div(alphaPhi.air,k.air) Gauss limitedLinear 1; + // div(alphaPhi.air,epsilon.air) Gauss limitedLinear 1; + // div(alphaPhi.air,omega.air) Gauss limitedLinear 1; + div(alphaPhi.air,k.air) Gauss upwind; + div(alphaPhi.air,epsilon.air) Gauss upwind; + div(alphaPhi.air,omega.air) Gauss upwind; + + div(phiGByA,cloud:alpha) Gauss linear; + div(((alpha.air*nuEff.air)*dev2(T(grad(U.air))))) Gauss linear; +} + +laplacianSchemes +{ + // default Gauss linear corrected; + default Gauss linear limited 1; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + // default corrected; + default limited 1; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/fvSolution b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/fvSolution new file mode 100644 index 000000000..0f523ff50 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/fvSolution @@ -0,0 +1,84 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + alpha.air + { + max 0.9; + } + + p + { + solver GAMG; + tolerance 1e-06; + relTol 0.01; + smoother GaussSeidel; + } + + pFinal + { + solver GAMG; + tolerance 1e-06; + relTol 0; + smoother GaussSeidel; + } + + "(U|k|epsilon|omega).air" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "(U|k|epsilon|omega).airFinal" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "cloud:alpha.*" + { + solver GAMG; + tolerance 1e-06; + relTol 0.1; + smoother GaussSeidel; + } +} + +PIMPLE +{ + nOuterCorrectors 1; + nCorrectors 2; + momentumPredictor yes; + nNonOrthogonalCorrectors 0; + pRefCell 0; + pRefValue 0; + + residualControl + { + p 1.0e-05; + U.air 1.0e-04; + k.air 1.0e-05; + epsilon.air 1.0e-05; + omega.air 1.0e-05; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/residuals b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/residuals new file mode 100644 index 000000000..ba38cbdf6 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/residuals @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object funcResiduals; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#includeEtc "caseDicts/postProcessing/numerical/residuals.cfg" + +fields ( p U.air ); + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/snappyHexMeshDict b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/snappyHexMeshDict new file mode 100644 index 000000000..f72adbf23 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/system/snappyHexMeshDict @@ -0,0 +1,268 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object snappyHexMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// Which of the steps to run +castellatedMesh true; +snap true; +addLayers false; + + + +// Geometry. Definition of all surfaces. All surfaces are of class +// searchableSurface. +// Surfaces are used +// - to specify refinement for any mesh cell intersecting it +// - to specify refinement for any mesh cell inside/outside/near +// - to 'snap' the mesh boundary to the surface +geometry +{ + walls + { + type triSurfaceMesh; + file "cyclone.stl"; + } +}; + + + +// Settings for the castellatedMesh generation. +castellatedMeshControls +{ + // Refinement parameters + // ~~~~~~~~~~~~~~~~~~~~~ + + // If local number of cells is >= maxLocalCells on any processor + // switches from from refinement followed by balancing + // (current method) to (weighted) balancing before refinement. + maxLocalCells 100000; + + // Overall cell limit (approximately). Refinement will stop immediately + // upon reaching this number so a refinement level might not complete. + // Note that this is the number of cells before removing the part which + // is not 'visible' from the keepPoint. The final number of cells might + // actually be a lot less. + maxGlobalCells 2000000; + + // The surface refinement loop might spend lots of iterations refining just a + // few cells. This setting will cause refinement to stop if <= minimumRefine + // are selected for refinement. Note: it will at least do one iteration + // (unless the number of cells to refine is 0) + minRefinementCells 0; + + // Allow a certain level of imbalance during refining + // (since balancing is quite expensive) + // Expressed as fraction of perfect balance (= overall number of cells / + // nProcs). 0=balance always. + maxLoadUnbalance 0.10; + + // Number of buffer layers between different levels. + // 1 means normal 2:1 refinement restriction, larger means slower + // refinement. + nCellsBetweenLevels 2; + + + // Explicit feature edge refinement + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + // Specifies a level for any cell intersected by its edges. + // This is a featureEdgeMesh, read from constant/geometry for now. + features + ( + ); + + + // Surface based refinement + // ~~~~~~~~~~~~~~~~~~~~~~~~ + + // Specifies two levels for every surface. The first is the minimum level, + // every cell intersecting a surface gets refined up to the minimum level. + // The second level is the maximum level. Cells that 'see' multiple + // intersections where the intersections make an + // angle > resolveFeatureAngle get refined up to the maximum level. + + refinementSurfaces + { + walls + { + level (0 0); + patchInfo + { + type wall; + } + } + } + + // Resolve sharp angles + resolveFeatureAngle 30; + + // Mesh selection + // ~~~~~~~~~~~~~~ + + // After refinement patches get added for all refinementSurfaces and + // all cells intersecting the surfaces get put into these patches. The + // section reachable from the insidePoint is kept. + // NOTE: This point should never be on a face, always inside a cell, even + // after refinement. + insidePoint (0.001 0.001 0.001); + + + // Whether any faceZones (as specified in the refinementSurfaces) + // are only on the boundary of corresponding cellZones or also allow + // free-standing zone faces. Not used if there are no faceZones. + allowFreeStandingZoneFaces true; +} + + + +// Settings for the snapping. +snapControls +{ + //- Number of patch smoothing iterations before finding correspondence + // to surface + nSmoothPatch 3; + + //- Relative distance for points to be attracted by surface feature point + // or edge. True distance is this factor times local + // maximum edge length. + tolerance 2.0; + + //- Number of mesh displacement relaxation iterations. + nSolveIter 300; + + //- Maximum number of snapping relaxation iterations. Should stop + // before upon reaching a correct mesh. + nRelaxIter 5; + + // Feature snapping + + //- Number of feature edge snapping iterations. + // Leave out altogether to disable. + nFeatureSnapIter 10; + + //- Detect (geometric only) features by sampling the surface + // (default=false). + implicitFeatureSnap true; + + //- Use castellatedMeshControls::features (default = true) + explicitFeatureSnap false; + + //- Detect points on multiple surfaces (only for explicitFeatureSnap) + multiRegionFeatureSnap false; +} + + + +// Settings for the layer addition. +addLayersControls +{ + // Are the thickness parameters below relative to the undistorted + // size of the refined cell outside layer (true) or absolute sizes (false). + relativeSizes true; + + // Per final patch (so not geometry!) the layer information + layers + { + } + + // Expansion factor for layer mesh + expansionRatio 1.0; + + // Wanted thickness of final added cell layer. If multiple layers + // is the thickness of the layer furthest away from the wall. + // Relative to undistorted size of cell outside layer. + // See relativeSizes parameter. + finalLayerThickness 0.5; + + // Minimum thickness of cell layer. If for any reason layer + // cannot be above minThickness do not add layer. + // Relative to undistorted size of cell outside layer. + minThickness 0.2; + + // If points get not extruded do nGrow layers of connected faces that are + // also not grown. This helps convergence of the layer addition process + // close to features. + // Note: changed(corrected) w.r.t 17x! (didn't do anything in 17x) + nGrow 0; + + // Advanced settings + + // When not to extrude surface. 0 is flat surface, 90 is when two faces + // are perpendicular + featureAngle 60; + + // At non-patched sides allow mesh to slip if extrusion direction makes + // angle larger than slipFeatureAngle. + slipFeatureAngle 30; + + // Maximum number of snapping relaxation iterations. Should stop + // before upon reaching a correct mesh. + nRelaxIter 5; + + // Number of smoothing iterations of surface normals + nSmoothSurfaceNormals 1; + + // Number of smoothing iterations of interior mesh movement direction + nSmoothNormals 3; + + // Smooth layer thickness over surface patches + nSmoothThickness 10; + + // Stop layer growth on highly warped cells + maxFaceThicknessRatio 0.5; + + // Reduce layer growth where ratio thickness to medial + // distance is large + maxThicknessToMedialRatio 0.3; + + // Angle used to pick up medial axis points + // Note: changed(corrected) w.r.t 17x! 90 degrees corresponds to 130 in 17x. + minMedianAxisAngle 90; + + + // Create buffer region for new layer terminations + nBufferCellsNoExtrude 0; + + + // Overall max number of layer addition iterations. The mesher will exit + // if it reaches this number of iterations; possibly with an illegal + // mesh. + nLayerIter 50; +} + + + +// Generic mesh quality settings. At any undoable phase these determine +// where to undo. +meshQualityControls +{ + #includeEtc "caseDicts/mesh/generation/meshQualityDict" +} + + + +// Advanced + +// Write flags +writeFlags +( + layerSets +); + +// Merge tolerance. Is fraction of overall bounding box of initial mesh. +// Note: the write tolerance needs to be higher than this. +mergeTolerance 1e-6; + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/U.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/U.air new file mode 100644 index 000000000..bbd40270e --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/U.air @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volVectorField; + location "0"; + object U.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (2.0 0.0 0.0); + } + outlet + { + type pressureInletOutletVelocity; + phi phi.air; + value uniform (0 0 0); + } + walls + { + type noSlip; + } + frontAndBack + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/epsilon.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/epsilon.air new file mode 100644 index 000000000..63c3d73f9 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/epsilon.air @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 1.0e-06; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + phi phi.air; + inletValue $internalField; + value $internalField; + } + walls + { + type epsilonWallFunction; + value $internalField; + // Cmu 0.09; + // kappa 0.41; + // E 9.8; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/k.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/k.air new file mode 100644 index 000000000..5d4ec1fda --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/k.air @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object k.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.001; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + phi phi.air; + inletValue $internalField; + value $internalField; + } + walls + { + type kqRWallFunction; + value $internalField; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/nut.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/nut.air new file mode 100644 index 000000000..cceb1f516 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/nut.air @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object nut.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0.04; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + walls + { + type nutkWallFunction; + value $internalField; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/omega.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/omega.air new file mode 100644 index 000000000..a85d31bb9 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/omega.air @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object omega.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 100; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + phi phi.air; + inletValue $internalField; + value $internalField; + } + walls + { + type omegaWallFunction; + value $internalField; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/p b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/p new file mode 100644 index 000000000..71b4eeb04 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/orig/zero/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type fixedFluxPressure; + gradient uniform 0; + value uniform 0; + } + outlet + { + type fixedValue; + value uniform 0; + } + walls + { + type fixedFluxPressure; + gradient uniform 0; + value uniform 0; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/procstate.jl b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/procstate.jl new file mode 100644 index 000000000..f07d78a55 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/horizontalMixer/procstate.jl @@ -0,0 +1,100 @@ +#!/usr/bin/env julia +using LightXML +using NaturalSort + +# Constants identified in first file of `000/`. +const PID1 = "11907" +const PID2 = "12150" +const ORIG = "../000/state.xml" + +function getvtkfiles(dirname) + files = readdir(dirname) + files = filter(n->endswith(n, ".vtk"), files) + files = sort(files, lt=natural) + return joinpath.(dirname, files) +end + +function getvtktags(dirname, formatter) + files = getvtkfiles(dirname) + tags = join([formatter(k, f) for (k, f) in enumerate(files)], "\n") + return tags +end + +function filterattr(proxy, attr, value) + return attribute(proxy, attr) == value +end + +function proxyfilter(proxy, pid) + test1 = filterattr(proxy, "group", "sources") + test2 = filterattr(proxy, "id", pid) + return test1 && test2 +end + +findpid(proxies, pid) = filter(p->proxyfilter(p, pid), proxies)[1] +findfni(props) = filter(p->filterattr(p, "name", "FileNameInfo"), props)[1] +findfns(props) = filter(p->filterattr(p, "name", "FileNames"), props)[1] + +function processpid(proxies, pidn, files) + pid = findpid(proxies, pidn) + fni = findfni(pid["Property"]) + fns = findfns(pid["Property"]) + + set_attributes(fni["Element"][1], value=files[1]) + + # XXX: error if not same length for safety! + for (e, fname) in zip(fns["Element"], files) + set_attributes(e, value=fname) + end +end + +function workflow(case; saveas = "state.pvsm") + cd(case) + + @info "Working from $(pwd())" + + # Parse file and get root. + xdoc = parse_file(ORIG) + xroot = root(xdoc) + + # Ensure data was processed. + !isdir("VTK")&& run(`foamToVTK`) + + # Path of VTK files. + eulerian = joinpath(pwd(), "VTK/") + lagrangian = joinpath(eulerian, "lagrangian/cloud/") + + # Get and manipulate Proxy entries. + proxies = xroot["ServerManagerState"][1]["Proxy"] + processpid(proxies, PID1, getvtkfiles(eulerian)) + processpid(proxies, PID2, getvtkfiles(lagrangian)) + + # Just fix as string the regexes. + text = replace(string(xdoc), "000_*" => "$(case)_*") + + # Reparse as XML and dump. + saveas = joinpath(pwd(), saveas) + @info "Dumping results at $(saveas)" + save_file(parse_string(text), saveas) + + # Open paraview for post-processing. + try + @info "Running ParaView" + run(`paraview --state state.pvsm`) + catch e + @warn e + end + + cd(@__DIR__) + + try + @info "Trying to convert images to GIF" + run(`convert -delay 10 -loop 0 "$(case)/animation/*.png" \ + animation-$(case).gif`) + catch e + @warn e + end + + return nothing +end + +workflow("012") diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/manager.jl b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/manager.jl new file mode 100644 index 000000000..370ddaaa8 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/manager.jl @@ -0,0 +1,2667 @@ +### A Pluto.jl notebook ### +# v0.19.37 + +using Markdown +using InteractiveUtils + +# ╔═╡ f4d77b00-c12c-11ee-150b-cb97fa9d2c03 +begin + @info "Loading required external tools" + + # Install locally parent OpenFOAM.jl and local modules. + push!(LOAD_PATH, joinpath(@__DIR__, "../../..")) + + # TODO: is OpenFOAM install broken? + using NaturalSort + using SumTypes + + using CairoMakie + using CSV + using DataFrames + using DelimitedFiles + using DifferentialEquations + using Mustache + using PlutoUI + using PrettyTables + using Printf + using Statistics + using OpenFOAM +end + +# ╔═╡ 3befec01-5817-445f-bed5-b47909eaf464 +md""" +# Case manager + +$(TableOfContents()) +""" + +# ╔═╡ aab9fc6b-c8f0-4b9b-b7dd-138c03058532 +md""" +Drag models: + +- `sphereDrag` +- `WenYuDrag` +- `ErgunWenYuDrag` + +Apply gravity: + +- true +- false + +Particle sizes: + +- 100 μm +- 500 μm +- 1000 μm + +Gas density: + +- 0.5 kg/m³ +- 1.2 kg/m³ + +""" + +# ╔═╡ 3eae7bc9-1de9-4b20-b57c-6f332168feb6 +md""" +## Reference solution + +Computations performed as per [Amsden](https://doi.org/10.2172/6228444) to match the implementation of [`sphereDrag`](https://cpp.openfoam.org/v11/classFoam_1_1SphereDragForce.html#details) in OpenFOAM. +""" + +# ╔═╡ fa625b66-bb31-4365-82f7-b0f1191d53c5 +let + reynolds(U, D, ν) = U * D / ν + + # Valid for Re < 1000.0, else 0.424Re! + dragcoef(Re) = 24 * (1 + (1/6) * Re^(2/3)) + + function particleforce(U, ν, ρ, ρₚ, D, mode) + if mode == :openfoam + Re = reynolds(U, D, ν) + Cd = dragcoef(Re) + # Cd = 0.424Re + Fd = (3/4) * (ρ / ρₚ) * (ν * U / D^2) * Cd + else + # Re ~ 10^6, so 0.424Re in the above case! + Cd = 0.47 + Fd = (3/4) * (ρ / ρₚ) * U^2 / D * Cd + end + + return -Fd + 9.81 + end + + function freefall!(du, u, p, t) + du[1] = u[2] + du[2] = particleforce(u[2], p...) + end + + # Air properties. + ρ = 1.2 + ν = 1.568e-05 + + # Particle properties. + ρₚ = 2450 + D = 500e-06 + + # Expected terminal velocity. + Uterm = sqrt((4/3) * (ρₚ / ρ) * D * 9.81 / 0.47) + + u0 = [0.0; 0.0] + tspan = (0.0, 1.0) + p = [ν, ρ, ρₚ, D] + + prob = ODEProblem(freefall!, u0, tspan, (p..., :openfoam)) + sol1 = solve(prob; saveat=LinRange(tspan..., 100)) + + prob = ODEProblem(freefall!, u0, tspan, (p..., :constant)) + sol2 = solve(prob; saveat=LinRange(tspan..., 100)) + + let + f = Figure(size = (700, 600)) + + ax1 = Axis(f[1, 1]) + ax2 = Axis(f[2, 1]) + + lines!(ax1, sol1.t, sol1[1, :]; label = "KIVA-II") + lines!(ax1, sol2.t, sol2[1, :]; label = "Constant") + + lines!(ax2, sol1.t, sol1[2, :]; label = "KIVA-II") + lines!(ax2, sol2.t, sol2[2, :]; label = "Constant") + + scatter!(ax2, sol2.t[end], Uterm; color = :red) + + + ax1.ylabel = "Position [m]" + ax2.ylabel = "Velocity [m/s]" + ax2.xlabel = "Time [s]" + + axislegend(ax1; position = :lt) + axislegend(ax2; position = :lt) + + f + end +end + +# ╔═╡ 69d86b14-5064-474e-85df-791007fe8bcf +md""" +## Creating cases +""" + +# ╔═╡ 26910a15-95e2-4ae0-a61f-3ff5521bfc27 +# let +# @info "Creating planned cases" + +# sphereDrag = "sphereDrag;" +# WenYuDrag = "WenYuDrag\n{\nalphac alpha.air;\n}" +# ErgunWenYuDrag = "ErgunWenYuDrag\n{\nalphac alpha.air;\n}" + +# createcase(; +# casename = "000-reference", +# dragmodel = sphereDrag, +# applygravity = "true", +# particlesize = 500e-06, +# rho = 1.2) + +# createcase(; +# casename = "001-drag-model", +# dragmodel = WenYuDrag, +# applygravity = "true", +# particlesize = 500e-06, +# rho = 1.2) + +# createcase(; +# casename = "002-drag-model", +# dragmodel = ErgunWenYuDrag, +# applygravity = "true", +# particlesize = 500e-06, +# rho = 1.2) + +# createcase(; +# casename = "003-gravity", +# dragmodel = sphereDrag, +# applygravity = "false", +# particlesize = 500e-06, +# rho = 1.2) + +# createcase(; +# casename = "004-particlesize", +# dragmodel = sphereDrag, +# applygravity = "true", +# particlesize = 100e-06, +# rho = 1.2) + +# createcase(; +# casename = "005-particlesize", +# dragmodel = sphereDrag, +# applygravity = "true", +# particlesize = 1000e-06, +# rho = 1.2) + +# createcase(; +# casename = "006-rho-air", +# dragmodel = sphereDrag, +# applygravity = "true", +# particlesize = 500e-06, +# rho = 0.5) + +# end; + +# ╔═╡ 6d85a352-e169-4016-aa4d-6e9ae392748a +md""" +## Functions +""" + +# ╔═╡ 69a3d832-59a0-46f4-a7ff-9287a9eba5db +"Manages edition of a template with options." +function edittemplate(options, original; filled = nothing, drop = true) + filled = isnothing(filled) ? splitext(original)[1] : filled + + open(filled, "w") do fp + template = Mustache.load(original) + write(fp, Mustache.render(template, options)) + end + + drop && rm(original) +end + +# ╔═╡ b36f0c7c-5478-4c86-b5c1-51da7f29e29f +"Manages creation of case for numerical experiment." +function createcase(; casename, dragmodel, applygravity, particlesize, rho) + src = joinpath(@__DIR__, "reference") + dst = joinpath(@__DIR__, "runtime", casename) + + if isdir(dst) + @warn "Not overwritting existing case $(casename)" + return + end + + cp(src, dst; force = true) + + data = Dict( + "OPENFOAMBANNER" => OpenFOAM.OPENFOAMBANNER, + "dragModel" => dragmodel, + "applyGravity" => applygravity, + "particleSize" => particlesize, + "rho" => rho + ) + + original = joinpath(dst, "constant/cloudProperties.template") + edittemplate(data, original; drop = true) + + original = joinpath(dst, "constant/physicalProperties.template") + edittemplate(data, original; drop = true) + + cmd = Cmd(`./Allrun`, dir=dst) + run(pipeline(cmd, stdout=tempname())) +end + +# ╔═╡ 00000000-0000-0000-0000-000000000001 +PLUTO_PROJECT_TOML_CONTENTS = """ +[deps] +CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" +DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" +Mustache = "ffc61752-8dc7-55ee-8c37-f3e9cdd09e70" +NaturalSort = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" +PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" +PrettyTables = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" +Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" +Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +SumTypes = "8e1ec7a9-0e02-4297-b0fe-6433085c89f2" + +[compat] +CSV = "~0.10.12" +CairoMakie = "~0.11.5" +DataFrames = "~1.6.1" +DelimitedFiles = "~1.9.1" +DifferentialEquations = "~7.12.0" +Mustache = "~1.0.19" +NaturalSort = "~1.0.0" +PlutoUI = "~0.7.55" +PrettyTables = "~2.3.1" +SumTypes = "~0.5.5" +""" + +# ╔═╡ 00000000-0000-0000-0000-000000000002 +PLUTO_MANIFEST_TOML_CONTENTS = """ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.10.0" +manifest_format = "2.0" +project_hash = "60178bd34200c14ca2ecc208c801af7a582dc700" + +[[deps.ADTypes]] +git-tree-sha1 = "41c37aa88889c171f1300ceac1313c06e891d245" +uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +version = "0.2.6" + +[[deps.AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.5.0" +weakdeps = ["ChainRulesCore", "Test"] + + [deps.AbstractFFTs.extensions] + AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + AbstractFFTsTestExt = "Test" + +[[deps.AbstractLattices]] +git-tree-sha1 = "222ee9e50b98f51b5d78feb93dd928880df35f06" +uuid = "398f06c4-4d28-53ec-89ca-5b2656b7603d" +version = "0.3.0" + +[[deps.AbstractPlutoDingetjes]] +deps = ["Pkg"] +git-tree-sha1 = "c278dfab760520b8bb7e9511b968bf4ba38b7acc" +uuid = "6e696c72-6542-2067-7265-42206c756150" +version = "1.2.3" + +[[deps.AbstractTrees]] +git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.4" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "cde29ddf7e5726c9fb511f340244ea3481267608" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "3.7.2" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[deps.Animations]] +deps = ["Colors"] +git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d" +uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" +version = "0.4.1" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.ArnoldiMethod]] +deps = ["LinearAlgebra", "Random", "StaticArrays"] +git-tree-sha1 = "62e51b39331de8911e4a7ff6f5aaf38a5f4cc0ae" +uuid = "ec485272-7323-5ecc-a04f-4719b315124d" +version = "0.2.0" + +[[deps.ArrayInterface]] +deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "bbec08a37f8722786d87bedf84eae19c020c4efa" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "7.7.0" + + [deps.ArrayInterface.extensions] + ArrayInterfaceBandedMatricesExt = "BandedMatrices" + ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" + ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" + ArrayInterfaceTrackerExt = "Tracker" + + [deps.ArrayInterface.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ArrayLayouts]] +deps = ["FillArrays", "LinearAlgebra"] +git-tree-sha1 = "a45ec4acc9d905f94b47243cff666820bb107789" +uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" +version = "1.5.2" +weakdeps = ["SparseArrays"] + + [deps.ArrayLayouts.extensions] + ArrayLayoutsSparseArraysExt = "SparseArrays" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Automa]] +deps = ["PrecompileTools", "TranscodingStreams"] +git-tree-sha1 = "588e0d680ad1d7201d4c6a804dcb1cd9cba79fbb" +uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" +version = "1.0.3" + +[[deps.AxisAlgorithms]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] +git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712" +uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" +version = "1.1.0" + +[[deps.AxisArrays]] +deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] +git-tree-sha1 = "16351be62963a67ac4083f748fdb3cca58bfd52f" +uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" +version = "0.4.7" + +[[deps.BandedMatrices]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] +git-tree-sha1 = "27baf04c642465b4289179f29bb7127f0673d4f1" +uuid = "aae01518-5342-5314-be14-df237901396f" +version = "1.4.0" +weakdeps = ["SparseArrays"] + + [deps.BandedMatrices.extensions] + BandedMatricesSparseArraysExt = "SparseArrays" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.BitTwiddlingConvenienceFunctions]] +deps = ["Static"] +git-tree-sha1 = "0c5f81f47bbbcf4aea7b2959135713459170798b" +uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" +version = "0.1.5" + +[[deps.BoundaryValueDiffEq]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "BandedMatrices", "ConcreteStructs", "DiffEqBase", "FastAlmostBandedMatrices", "ForwardDiff", "LinearAlgebra", "LinearSolve", "NonlinearSolve", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Setfield", "SparseArrays", "SparseDiffTools", "Tricks", "TruncatedStacktraces", "UnPack"] +git-tree-sha1 = "dd234c9a030350d5ff4c45761d6cad0cfb358cb9" +uuid = "764a87c0-6b3e-53db-9096-fe964310641d" +version = "5.6.0" + + [deps.BoundaryValueDiffEq.extensions] + BoundaryValueDiffEqODEInterfaceExt = "ODEInterface" + BoundaryValueDiffEqOrdinaryDiffEqExt = "OrdinaryDiffEq" + + [deps.BoundaryValueDiffEq.weakdeps] + ODEInterface = "54ca160b-1b9f-5127-a996-1867f4bc2a2c" + OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+1" + +[[deps.CEnum]] +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.5.0" + +[[deps.CPUSummary]] +deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] +git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" +uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" +version = "0.2.4" + +[[deps.CRC32c]] +uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc" + +[[deps.CRlibm]] +deps = ["CRlibm_jll"] +git-tree-sha1 = "32abd86e3c2025db5172aa182b982debed519834" +uuid = "96374032-68de-5a5b-8d9e-752f78720389" +version = "1.0.1" + +[[deps.CRlibm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e329286945d0cfc04456972ea732551869af1cfc" +uuid = "4e9b3aee-d8a1-5a3d-ad8b-7d824db253f0" +version = "1.0.1+0" + +[[deps.CSV]] +deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] +git-tree-sha1 = "679e69c611fff422038e9e21e270c4197d49d918" +uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +version = "0.10.12" + +[[deps.Cairo]] +deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] +git-tree-sha1 = "d0b3f8b4ad16cb0a2988c6788646a5e6a17b6b1b" +uuid = "159f3aea-2a34-519c-b102-8c37f9878175" +version = "1.0.5" + +[[deps.CairoMakie]] +deps = ["CRC32c", "Cairo", "Colors", "FFTW", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"] +git-tree-sha1 = "ec7c21818710774e72195bda25c70fd6c56bc005" +uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +version = "0.11.5" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "c1deebd76f7a443d527fc0430d5758b8b2112ed8" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.19.1" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CloseOpenIntervals]] +deps = ["Static", "StaticArrayInterface"] +git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" +uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" +version = "0.1.12" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "cd67fc487743b2f0fd4380d4cbd3a24660d0eec8" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.3" + +[[deps.ColorBrewer]] +deps = ["Colors", "JSON", "Test"] +git-tree-sha1 = "61c5334f33d91e570e1d0c3eb5465835242582c4" +uuid = "a2cac450-b92f-5266-8821-25eda20663c8" +version = "0.4.0" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.Combinatorics]] +git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" +uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" +version = "1.0.2" + +[[deps.CommonSolve]] +git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" +uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" +version = "0.2.4" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.0" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "75bd5b6fc5089df449b5d35fa501c846c9b6549b" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.12.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+1" + +[[deps.ConcreteStructs]] +git-tree-sha1 = "f749037478283d372048690eb3b5f92a79432b34" +uuid = "2569d6c7-a4a2-43d3-a901-331e8e4be471" +version = "0.2.3" + +[[deps.ConstructionBase]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.4" +weakdeps = ["IntervalSets", "StaticArrays"] + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseStaticArraysExt = "StaticArrays" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.CpuId]] +deps = ["Markdown"] +git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" +uuid = "adafc99b-e345-5852-983c-f28acb93d879" +version = "0.3.1" + +[[deps.Crayons]] +git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" +uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +version = "4.1.1" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataFrames]] +deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] +git-tree-sha1 = "04c738083f29f86e62c8afc341f0967d8717bdb8" +uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +version = "1.6.1" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "ac67408d9ddf207de5cfa9a97e114352430f01ed" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.16" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DelaunayTriangulation]] +deps = ["DataStructures", "EnumX", "ExactPredicates", "Random", "SimpleGraphs"] +git-tree-sha1 = "26eb8e2331b55735c3d305d949aabd7363f07ba7" +uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" +version = "0.8.11" + +[[deps.DelayDiffEq]] +deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SimpleUnPack"] +git-tree-sha1 = "6725c56e3e3d563e37d8fd5e6c5eb66ac19321fd" +uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" +version = "5.46.0" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.DiffEqBase]] +deps = ["ArrayInterface", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces"] +git-tree-sha1 = "6af33c2eb7478db06bcf5c810e6f3dda53aac2ac" +uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" +version = "6.146.0" + + [deps.DiffEqBase.extensions] + DiffEqBaseChainRulesCoreExt = "ChainRulesCore" + DiffEqBaseDistributionsExt = "Distributions" + DiffEqBaseEnzymeExt = ["ChainRulesCore", "Enzyme"] + DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated" + DiffEqBaseMPIExt = "MPI" + DiffEqBaseMeasurementsExt = "Measurements" + DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" + DiffEqBaseReverseDiffExt = "ReverseDiff" + DiffEqBaseTrackerExt = "Tracker" + DiffEqBaseUnitfulExt = "Unitful" + + [deps.DiffEqBase.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.DiffEqCallbacks]] +deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "cf334da651a6e42c50e1477d6ab978f1b8be3057" +uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" +version = "2.36.1" +weakdeps = ["OrdinaryDiffEq", "Sundials"] + +[[deps.DiffEqNoiseProcess]] +deps = ["DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] +git-tree-sha1 = "319377c927a4aa1f491228b2ac23f3554a3497c6" +uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" +version = "5.20.0" + + [deps.DiffEqNoiseProcess.extensions] + DiffEqNoiseProcessReverseDiffExt = "ReverseDiff" + + [deps.DiffEqNoiseProcess.weakdeps] + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.15.1" + +[[deps.DifferentialEquations]] +deps = ["BoundaryValueDiffEq", "DelayDiffEq", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "JumpProcesses", "LinearAlgebra", "LinearSolve", "NonlinearSolve", "OrdinaryDiffEq", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "SteadyStateDiffEq", "StochasticDiffEq", "Sundials"] +git-tree-sha1 = "8864b6a953eeba7890d23258aca468d90ca73fd6" +uuid = "0c46a032-eb83-5123-abaf-570d42b7fbaa" +version = "7.12.0" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.11" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "7c302d7a5fec5214eb8a5a4c466dcf7a51fcf169" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.107" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[deps.EarCut_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e3290f2d49e661fbd94046d7e3726ffcb2d41053" +uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" +version = "2.2.4+0" + +[[deps.EnumX]] +git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.4" + +[[deps.EnzymeCore]] +git-tree-sha1 = "59c44d8fbc651c0395d8a6eda64b05ce316f58b4" +uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" +version = "0.6.5" +weakdeps = ["Adapt"] + + [deps.EnzymeCore.extensions] + AdaptExt = "Adapt" + +[[deps.ExactPredicates]] +deps = ["IntervalArithmetic", "Random", "StaticArrays"] +git-tree-sha1 = "e8b8c949551f417e040f16e5c431b6e83e306e54" +uuid = "429591f6-91af-11e9-00e2-59fbe8cec110" +version = "2.2.7" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.ExponentialUtilities]] +deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] +git-tree-sha1 = "602e4585bcbd5a25bc06f514724593d13ff9e862" +uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" +version = "1.25.0" + +[[deps.ExprTools]] +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.10" + +[[deps.Extents]] +git-tree-sha1 = "2140cd04483da90b2da7f99b2add0750504fc39c" +uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" +version = "0.1.2" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.4+1" + +[[deps.FFTW]] +deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] +git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "1.8.0" + +[[deps.FFTW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" +uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" +version = "3.3.10+0" + +[[deps.FastAlmostBandedMatrices]] +deps = ["ArrayInterface", "ArrayLayouts", "BandedMatrices", "ConcreteStructs", "LazyArrays", "LinearAlgebra", "MatrixFactorizations", "PrecompileTools", "Reexport"] +git-tree-sha1 = "178316d87f883f0702e79d9c83a8049484c9f619" +uuid = "9d29842c-ecb8-4973-b1e9-a27b1157504e" +version = "0.1.0" + +[[deps.FastBroadcast]] +deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] +git-tree-sha1 = "a6e756a880fc419c8b41592010aebe6a5ce09136" +uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" +version = "0.2.8" + +[[deps.FastClosures]] +git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" +uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" +version = "0.3.2" + +[[deps.FastLapackInterface]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "b12f05108e405dadcc2aff0008db7f831374e051" +uuid = "29a986be-02c6-4525-aec4-84b980013641" +version = "2.0.0" + +[[deps.FileIO]] +deps = ["Pkg", "Requires", "UUIDs"] +git-tree-sha1 = "c5c28c245101bd59154f649e19b038d15901b5dc" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.16.2" + +[[deps.FilePaths]] +deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"] +git-tree-sha1 = "919d9412dbf53a2e6fe74af62a73ceed0bce0629" +uuid = "8fc22ac5-c921-52a6-82fd-178b2807b824" +version = "0.8.3" + +[[deps.FilePathsBase]] +deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] +git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa" +uuid = "48062228-2e41-5def-b9a4-89aafe57970f" +version = "0.9.21" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.9.3" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FiniteDiff]] +deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] +git-tree-sha1 = "73d1214fec245096717847c62d389a5d2ac86504" +uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" +version = "2.22.0" + + [deps.FiniteDiff.extensions] + FiniteDiffBandedMatricesExt = "BandedMatrices" + FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffStaticArraysExt = "StaticArrays" + + [deps.FiniteDiff.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.36" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FreeType]] +deps = ["CEnum", "FreeType2_jll"] +git-tree-sha1 = "907369da0f8e80728ab49c1c7e09327bf0d6d999" +uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" +version = "4.1.1" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FreeTypeAbstraction]] +deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] +git-tree-sha1 = "055626e1a35f6771fe99060e835b72ca61a52621" +uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" +version = "0.10.1" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.FunctionWrappers]] +git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" +uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" +version = "1.1.3" + +[[deps.FunctionWrappersWrappers]] +deps = ["FunctionWrappers"] +git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" +uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" +version = "0.1.3" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.5" + +[[deps.GenericSchur]] +deps = ["LinearAlgebra", "Printf"] +git-tree-sha1 = "fb69b2a645fa69ba5f474af09221b9308b160ce6" +uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" +version = "0.5.3" + +[[deps.GeoInterface]] +deps = ["Extents"] +git-tree-sha1 = "d4f85701f569584f2cff7ba67a137d03f0cfb7d0" +uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" +version = "1.3.3" + +[[deps.GeometryBasics]] +deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "424a5a6ce7c5d97cca7bcc4eac551b97294c54af" +uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +version = "0.4.9" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.5+0" + +[[deps.Graphics]] +deps = ["Colors", "LinearAlgebra", "NaNMath"] +git-tree-sha1 = "d61890399bc535850c4bf08e4e0d3a7ad0f21cbd" +uuid = "a2bd30eb-e257-5431-a919-1863eab51364" +version = "1.1.2" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.Graphs]] +deps = ["ArnoldiMethod", "Compat", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] +git-tree-sha1 = "899050ace26649433ef1af25bc17a815b3db52b7" +uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" +version = "1.9.0" + +[[deps.GridLayoutBase]] +deps = ["GeometryBasics", "InteractiveUtils", "Observables"] +git-tree-sha1 = "af13a277efd8a6e716d79ef635d5342ccb75be61" +uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" +version = "0.10.0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HostCPUFeatures]] +deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] +git-tree-sha1 = "eb8fed28f4994600e29beef49744639d985a04b2" +uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" +version = "0.1.16" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[deps.Hyperscript]] +deps = ["Test"] +git-tree-sha1 = "179267cfa5e712760cd43dcae385d7ea90cc25a4" +uuid = "47d2ed2b-36de-50cf-bf87-49c2cf4b8b91" +version = "0.0.5" + +[[deps.HypertextLiteral]] +deps = ["Tricks"] +git-tree-sha1 = "7134810b1afce04bbc1045ca1985fbe81ce17653" +uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" +version = "0.9.5" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "8b72179abc660bfab5e28472e019392b97d0985c" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.4" + +[[deps.IfElse]] +git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" +uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" +version = "0.1.1" + +[[deps.ImageAxes]] +deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"] +git-tree-sha1 = "2e4520d67b0cef90865b3ef727594d2a58e0e1f8" +uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" +version = "0.6.11" + +[[deps.ImageBase]] +deps = ["ImageCore", "Reexport"] +git-tree-sha1 = "eb49b82c172811fd2c86759fa0553a2221feb909" +uuid = "c817782e-172a-44cc-b673-b171935fbb9e" +version = "0.1.7" + +[[deps.ImageCore]] +deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "PrecompileTools", "Reexport"] +git-tree-sha1 = "fc5d1d3443a124fde6e92d0260cd9e064eba69f8" +uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" +version = "0.10.1" + +[[deps.ImageIO]] +deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] +git-tree-sha1 = "bca20b2f5d00c4fbc192c3212da8fa79f4688009" +uuid = "82e4d734-157c-48bb-816b-45c225c6df19" +version = "0.6.7" + +[[deps.ImageMetadata]] +deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"] +git-tree-sha1 = "355e2b974f2e3212a75dfb60519de21361ad3cb7" +uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" +version = "0.9.9" + +[[deps.Imath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "3d09a9f60edf77f8a4d99f9e015e8fbf9989605d" +uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" +version = "3.1.7+0" + +[[deps.IndirectArrays]] +git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" +uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" +version = "1.0.0" + +[[deps.Inflate]] +git-tree-sha1 = "ea8031dea4aff6bd41f1df8f2fdfb25b33626381" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.4" + +[[deps.InlineStrings]] +deps = ["Parsers"] +git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" +uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" +version = "1.4.0" + +[[deps.IntegerMathUtils]] +git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" +uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" +version = "0.1.2" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5fdf2fe6724d8caabf43b557b84ce53f3b7e2f6b" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2024.0.2+0" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.Interpolations]] +deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "88a101217d7cb38a7b481ccd50d21876e1d1b0e0" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.15.1" + + [deps.Interpolations.extensions] + InterpolationsUnitfulExt = "Unitful" + + [deps.Interpolations.weakdeps] + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.IntervalArithmetic]] +deps = ["CRlibm", "RoundingEmulator"] +git-tree-sha1 = "c274ec586ea58eb7b42afd0c5d67e50ff50229b5" +uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" +version = "0.22.5" +weakdeps = ["DiffRules", "RecipesBase"] + + [deps.IntervalArithmetic.extensions] + IntervalArithmeticDiffRulesExt = "DiffRules" + IntervalArithmeticRecipesBaseExt = "RecipesBase" + +[[deps.IntervalSets]] +deps = ["Dates", "Random"] +git-tree-sha1 = "3d8866c029dd6b16e69e0d4a939c4dfcb98fac47" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.7.8" +weakdeps = ["Statistics"] + + [deps.IntervalSets.extensions] + IntervalSetsStatisticsExt = "Statistics" + +[[deps.InvertedIndices]] +git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" +uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" +version = "1.3.0" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.Isoband]] +deps = ["isoband_jll"] +git-tree-sha1 = "f9b6d97355599074dc867318950adaa6f9946137" +uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4" +version = "0.1.1" + +[[deps.IterTools]] +git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.10.0" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo]] +deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] +git-tree-sha1 = "fa6d0bcff8583bac20f1ffa708c3913ca605c611" +uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" +version = "0.1.5" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60b1194df0a3298f460063de985eae7b01bc011a" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.1+0" + +[[deps.JumpProcesses]] +deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "Markdown", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays", "UnPack"] +git-tree-sha1 = "c451feb97251965a9fe40bacd62551a72cc5902c" +uuid = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5" +version = "9.10.1" +weakdeps = ["FastBroadcast"] + + [deps.JumpProcesses.extensions] + JumpProcessFastBroadcastExt = "FastBroadcast" + +[[deps.KLU]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] +git-tree-sha1 = "884c2968c2e8e7e6bf5956af88cb46aa745c854b" +uuid = "ef3ab10e-7fda-4108-b977-705223b18434" +version = "0.4.1" + +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] +git-tree-sha1 = "fee018a29b60733876eb557804b5b109dd3dd8a7" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.8" + +[[deps.Krylov]] +deps = ["LinearAlgebra", "Printf", "SparseArrays"] +git-tree-sha1 = "8a6837ec02fe5fb3def1abc907bb802ef11a0729" +uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" +version = "0.9.5" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d986ce2d884d49126836ea94ed5bfb0f12679713" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.7+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.LayoutPointers]] +deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "62edfee3211981241b57ff1cedf4d74d79519277" +uuid = "10f19ff3-798f-405d-979b-55457f8fc047" +version = "0.1.15" + +[[deps.Lazy]] +deps = ["MacroTools"] +git-tree-sha1 = "1370f8202dac30758f3c345f9909b97f53d87d3f" +uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" +version = "0.15.1" + +[[deps.LazyArrays]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "MacroTools", "MatrixFactorizations", "SparseArrays"] +git-tree-sha1 = "9cfca23ab83b0dfac93cb1a1ef3331ab9fe596a5" +uuid = "5078a376-72f3-5289-bfd5-ec5146d43c02" +version = "1.8.3" +weakdeps = ["StaticArrays"] + + [deps.LazyArrays.extensions] + LazyArraysStaticArraysExt = "StaticArrays" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[deps.LazyModules]] +git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" +uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e" +version = "0.3.1" + +[[deps.LevyArea]] +deps = ["LinearAlgebra", "Random", "SpecialFunctions"] +git-tree-sha1 = "56513a09b8e0ae6485f34401ea9e2f31357958ec" +uuid = "2d8b4e74-eb68-11e8-0fb9-d5eb67b50637" +version = "1.0.0" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.6.4+0" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LightXML]] +deps = ["Libdl", "XML2_jll"] +git-tree-sha1 = "3a994404d3f6709610701c7dabfc03fed87a81f8" +uuid = "9c8b4983-aa76-5018-a973-4c85ecc9e179" +version = "0.9.1" + +[[deps.LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] +git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.2.0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.LinearAlgebraX]] +deps = ["LinearAlgebra", "Mods", "Primes", "SimplePolynomials"] +git-tree-sha1 = "d76cec8007ec123c2b681269d40f94b053473fcf" +uuid = "9b3f67b0-2d00-526e-9884-9e4938f8fb88" +version = "0.2.7" + +[[deps.LinearSolve]] +deps = ["ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "Libdl", "LinearAlgebra", "MKL_jll", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "StaticArraysCore", "UnPack"] +git-tree-sha1 = "6f8e084deabe3189416c4e505b1c53e1b590cae8" +uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" +version = "2.22.1" + + [deps.LinearSolve.extensions] + LinearSolveBandedMatricesExt = "BandedMatrices" + LinearSolveBlockDiagonalsExt = "BlockDiagonals" + LinearSolveCUDAExt = "CUDA" + LinearSolveEnzymeExt = ["Enzyme", "EnzymeCore"] + LinearSolveFastAlmostBandedMatricesExt = ["FastAlmostBandedMatrices"] + LinearSolveHYPREExt = "HYPRE" + LinearSolveIterativeSolversExt = "IterativeSolvers" + LinearSolveKernelAbstractionsExt = "KernelAbstractions" + LinearSolveKrylovKitExt = "KrylovKit" + LinearSolveMetalExt = "Metal" + LinearSolvePardisoExt = "Pardiso" + LinearSolveRecursiveArrayToolsExt = "RecursiveArrayTools" + + [deps.LinearSolve.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + FastAlmostBandedMatrices = "9d29842c-ecb8-4973-b1e9-a27b1157504e" + HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" + IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" + KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" + KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" + RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.26" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoopVectorization]] +deps = ["ArrayInterface", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] +git-tree-sha1 = "0f5648fbae0d015e3abe5867bca2b362f67a5894" +uuid = "bdcacae8-1622-11e9-2a5c-532679323890" +version = "0.12.166" +weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] + + [deps.LoopVectorization.extensions] + ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.MIMEs]] +git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" +uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" +version = "0.1.4" + +[[deps.MKL_jll]] +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2024.0.0+0" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.13" + +[[deps.Makie]] +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Formatting", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "Setfield", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "StableHashTraits", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun"] +git-tree-sha1 = "a37c6610dd20425b131caf65d52abdf859da5ab1" +uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +version = "0.20.4" + +[[deps.MakieCore]] +deps = ["Observables", "REPL"] +git-tree-sha1 = "ec5db7bb2dc9b85072658dcb2d3ad09569b09ac9" +uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" +version = "0.7.2" + +[[deps.ManualMemory]] +git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" +uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" +version = "0.1.8" + +[[deps.MappedArrays]] +git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e" +uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" +version = "0.4.2" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MathTeXEngine]] +deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "UnicodeFun"] +git-tree-sha1 = "96ca8a313eb6437db5ffe946c457a401bbb8ce1d" +uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" +version = "0.5.7" + +[[deps.MatrixFactorizations]] +deps = ["ArrayLayouts", "LinearAlgebra", "Printf", "Random"] +git-tree-sha1 = "78f6e33434939b0ac9ba1df81e6d005ee85a7396" +uuid = "a3b82374-2e81-5b9e-98ce-41277c0e4c87" +version = "2.1.0" + +[[deps.MaybeInplace]] +deps = ["ArrayInterface", "LinearAlgebra", "MacroTools", "SparseArrays"] +git-tree-sha1 = "a85c6a98c9e5a2a7046bc1bb89f28a3241e1de4d" +uuid = "bb5d69b7-63fc-4a16-80bd-7e42200c7bdb" +version = "0.1.1" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+1" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.Mods]] +git-tree-sha1 = "924f962b524a71eef7a21dae1e6853817f9b658f" +uuid = "7475f97c-0381-53b1-977b-4c60186c8d62" +version = "2.2.4" + +[[deps.MosaicViews]] +deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] +git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe" +uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389" +version = "0.3.4" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.1.10" + +[[deps.MuladdMacro]] +git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" +uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +version = "0.2.4" + +[[deps.Multisets]] +git-tree-sha1 = "8d852646862c96e226367ad10c8af56099b4047e" +uuid = "3b2b4ff1-bcff-5658-a3ee-dbcf1ce5ac09" +version = "0.4.4" + +[[deps.Mustache]] +deps = ["Printf", "Tables"] +git-tree-sha1 = "a7cefa21a2ff993bff0456bf7521f46fc077ddf1" +uuid = "ffc61752-8dc7-55ee-8c37-f3e9cdd09e70" +version = "1.0.19" + +[[deps.NLSolversBase]] +deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] +git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.8.3" + +[[deps.NLsolve]] +deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] +git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" +uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" +version = "4.5.1" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NaturalSort]] +git-tree-sha1 = "eda490d06b9f7c00752ee81cfa451efe55521e21" +uuid = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" +version = "1.0.0" + +[[deps.Netpbm]] +deps = ["FileIO", "ImageCore", "ImageMetadata"] +git-tree-sha1 = "d92b107dbb887293622df7697a2223f9f8176fcd" +uuid = "f09324ee-3d7c-5217-9330-fc30815ba969" +version = "1.1.1" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.NonlinearSolve]] +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "LazyArrays", "LineSearches", "LinearAlgebra", "LinearSolve", "MaybeInplace", "PrecompileTools", "Preferences", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "TimerOutputs"] +git-tree-sha1 = "78bdd3a4a62865cf43c53d63783b0cbfddcdbbe6" +uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" +version = "3.5.0" + + [deps.NonlinearSolve.extensions] + NonlinearSolveBandedMatricesExt = "BandedMatrices" + NonlinearSolveFastLevenbergMarquardtExt = "FastLevenbergMarquardt" + NonlinearSolveFixedPointAccelerationExt = "FixedPointAcceleration" + NonlinearSolveLeastSquaresOptimExt = "LeastSquaresOptim" + NonlinearSolveMINPACKExt = "MINPACK" + NonlinearSolveNLsolveExt = "NLsolve" + NonlinearSolveSIAMFANLEquationsExt = "SIAMFANLEquations" + NonlinearSolveSpeedMappingExt = "SpeedMapping" + NonlinearSolveSymbolicsExt = "Symbolics" + NonlinearSolveZygoteExt = "Zygote" + + [deps.NonlinearSolve.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + FastLevenbergMarquardt = "7a0df574-e128-4d35-8cbd-3d84502bf7ce" + FixedPointAcceleration = "817d07cb-a79a-5c30-9a31-890123675176" + LeastSquaresOptim = "0fc2ff8b-aaa3-5acd-a817-1944a5e08891" + MINPACK = "4854310b-de5a-5eb6-a2a5-c1dee2bd17f9" + NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" + SIAMFANLEquations = "084e46ad-d928-497d-ad5e-07fa361a48c4" + SpeedMapping = "f1835b91-879b-4a3f-a438-e4baacf14412" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Observables]] +git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225" +uuid = "510215fc-4207-5dde-b226-833fc4488ee2" +version = "0.5.5" + +[[deps.OffsetArrays]] +git-tree-sha1 = "6a731f2b5c03157418a20c12195eb4b74c8f8621" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.13.0" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.23+2" + +[[deps.OpenEXR]] +deps = ["Colors", "FileIO", "OpenEXR_jll"] +git-tree-sha1 = "327f53360fdb54df7ecd01e96ef1983536d1e633" +uuid = "52e1d378-f018-4a11-a4be-720524705ac7" +version = "0.3.2" + +[[deps.OpenEXR_jll]] +deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "a4ca623df1ae99d09bc9868b008262d0c0ac1e4f" +uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" +version = "3.1.4+0" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+2" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "cc6e1927ac521b659af340e0ca45828a3ffc748f" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.12+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Optim]] +deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] +git-tree-sha1 = "01f85d9269b13fedc61e63cc72ee2213565f7a72" +uuid = "429524aa-4258-5aef-a3af-852621145aeb" +version = "1.7.8" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.OrdinaryDiffEq]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FillArrays", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "MacroTools", "MuladdMacro", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] +git-tree-sha1 = "7c6738f21fba2ccd07b7eaa9d23b437a8a97f1a1" +uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +version = "6.69.0" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.PNGFiles]] +deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] +git-tree-sha1 = "67186a2bc9a90f9f85ff3cc8277868961fb57cbd" +uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" +version = "0.4.3" + +[[deps.PackageExtensionCompat]] +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" +uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" +version = "1.0.2" +weakdeps = ["Requires", "TOML"] + +[[deps.Packing]] +deps = ["GeometryBasics"] +git-tree-sha1 = "ec3edfe723df33528e085e632414499f26650501" +uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" +version = "0.5.0" + +[[deps.PaddedViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "0fac6313486baae819364c52b4f483450a9d793f" +uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" +version = "0.5.12" + +[[deps.Pango_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4745216e94f71cb768d58330b059c9b76f32cb66" +uuid = "36c8627f-9965-5494-a995-c6b170f724f3" +version = "1.50.14+0" + +[[deps.Parameters]] +deps = ["OrderedCollections", "UnPack"] +git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" +uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" +version = "0.12.3" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.Permutations]] +deps = ["Combinatorics", "LinearAlgebra", "Random"] +git-tree-sha1 = "eb3f9df2457819bf0a9019bd93cc451697a0751e" +uuid = "2ae35dd2-176d-5d53-8349-f30d82d94d4f" +version = "0.4.20" + +[[deps.PikaParser]] +deps = ["DocStringExtensions"] +git-tree-sha1 = "d6ff87de27ff3082131f31a714d25ab6d0a88abf" +uuid = "3bbf5609-3e7b-44cd-8549-7c69f321e792" +version = "0.6.1" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.10.0" + +[[deps.PkgVersion]] +deps = ["Pkg"] +git-tree-sha1 = "f9501cc0430a26bc3d156ae1b5b0c1b47af4d6da" +uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" +version = "0.3.3" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "862942baf5663da528f66d24996eb6da85218e76" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.0" + +[[deps.PlutoUI]] +deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "FixedPointNumbers", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "JSON", "Logging", "MIMEs", "Markdown", "Random", "Reexport", "URIs", "UUIDs"] +git-tree-sha1 = "68723afdb616445c6caaef6255067a8339f91325" +uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8" +version = "0.7.55" + +[[deps.PoissonRandom]] +deps = ["Random"] +git-tree-sha1 = "a0f1159c33f846aa77c3f30ebbc69795e5327152" +uuid = "e409e4f3-bfea-5376-8464-e040bb5c01ab" +version = "0.4.4" + +[[deps.Polyester]] +deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] +git-tree-sha1 = "fca25670784a1ae44546bcb17288218310af2778" +uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" +version = "0.7.9" + +[[deps.PolyesterWeave]] +deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] +git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" +uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" +version = "0.2.1" + +[[deps.PolygonOps]] +git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" +uuid = "647866c9-e3ac-4575-94e7-e3d426903924" +version = "0.1.2" + +[[deps.Polynomials]] +deps = ["LinearAlgebra", "RecipesBase", "Setfield", "SparseArrays"] +git-tree-sha1 = "a9c7a523d5ed375be3983db190f6a5874ae9286d" +uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" +version = "4.0.6" + + [deps.Polynomials.extensions] + PolynomialsChainRulesCoreExt = "ChainRulesCore" + PolynomialsFFTWExt = "FFTW" + PolynomialsMakieCoreExt = "MakieCore" + PolynomialsMutableArithmeticsExt = "MutableArithmetics" + + [deps.Polynomials.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" + MakieCore = "20f20a25-4f0e-4fdf-b5d1-57303727442b" + MutableArithmetics = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" + +[[deps.PooledArrays]] +deps = ["DataAPI", "Future"] +git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" +uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" +version = "1.4.3" + +[[deps.PositiveFactorizations]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" +uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" +version = "0.2.4" + +[[deps.PreallocationTools]] +deps = ["Adapt", "ArrayInterface", "ForwardDiff"] +git-tree-sha1 = "64bb68f76f789f5fe5930a80af310f19cdafeaed" +uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" +version = "0.4.17" + + [deps.PreallocationTools.extensions] + PreallocationToolsReverseDiffExt = "ReverseDiff" + + [deps.PreallocationTools.weakdeps] + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.PrettyTables]] +deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660" +uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" +version = "2.3.1" + +[[deps.Primes]] +deps = ["IntegerMathUtils"] +git-tree-sha1 = "1d05623b5952aed1307bf8b43bec8b8d1ef94b6e" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.5.5" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.ProgressMeter]] +deps = ["Distributed", "Printf"] +git-tree-sha1 = "00099623ffee15972c16111bcf84c58a0051257c" +uuid = "92933f4c-e287-5a05-a399-4b506db050ca" +version = "1.9.0" + +[[deps.QOI]] +deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] +git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" +uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" +version = "1.0.0" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.4" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.Random123]] +deps = ["Random", "RandomNumbers"] +git-tree-sha1 = "c860e84651f58ce240dd79e5d9e055d55234c35a" +uuid = "74087812-796a-5b5d-8853-05524746bad3" +version = "1.6.2" + +[[deps.RandomNumbers]] +deps = ["Random", "Requires"] +git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" +uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" +version = "1.5.3" + +[[deps.RangeArrays]] +git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" +uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" +version = "0.3.2" + +[[deps.Ratios]] +deps = ["Requires"] +git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" +uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" +version = "0.4.5" +weakdeps = ["FixedPointNumbers"] + + [deps.Ratios.extensions] + RatiosFixedPointNumbersExt = "FixedPointNumbers" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecursiveArrayTools]] +deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] +git-tree-sha1 = "dd7fc1923fde0cc6cdff451352d17924b0704ca1" +uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" +version = "3.5.4" + + [deps.RecursiveArrayTools.extensions] + RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" + RecursiveArrayToolsMeasurementsExt = "Measurements" + RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" + RecursiveArrayToolsTrackerExt = "Tracker" + RecursiveArrayToolsZygoteExt = "Zygote" + + [deps.RecursiveArrayTools.weakdeps] + FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.RecursiveFactorization]] +deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "PrecompileTools", "StrideArraysCore", "TriangularSolve"] +git-tree-sha1 = "8bc86c78c7d8e2a5fe559e3721c0f9c9e303b2ed" +uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" +version = "0.2.21" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.ResettableStacks]] +deps = ["StaticArrays"] +git-tree-sha1 = "256eeeec186fa7f26f2801732774ccf277f05db9" +uuid = "ae5879a3-cd67-5da8-be7f-38c6eb64a37b" +version = "1.1.1" + +[[deps.RingLists]] +deps = ["Random"] +git-tree-sha1 = "f39da63aa6d2d88e0c1bd20ed6a3ff9ea7171ada" +uuid = "286e9d63-9694-5540-9e3c-4e6708fa07b2" +version = "0.2.8" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + +[[deps.RoundingEmulator]] +git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" +uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" +version = "0.2.1" + +[[deps.RuntimeGeneratedFunctions]] +deps = ["ExprTools", "SHA", "Serialization"] +git-tree-sha1 = "6aacc5eefe8415f47b3e34214c1d79d2674a0ba2" +uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" +version = "0.5.12" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.SIMDTypes]] +git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" +uuid = "94e857df-77ce-4151-89e5-788b33177be4" +version = "0.1.0" + +[[deps.SLEEFPirates]] +deps = ["IfElse", "Static", "VectorizationBase"] +git-tree-sha1 = "3aac6d68c5e57449f5b9b865c9ba50ac2970c4cf" +uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" +version = "0.6.42" + +[[deps.SciMLBase]] +deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] +git-tree-sha1 = "de41474ac529bf81598e064587421cc5ebc28fa0" +uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +version = "2.20.0" + + [deps.SciMLBase.extensions] + SciMLBaseChainRulesCoreExt = "ChainRulesCore" + SciMLBasePartialFunctionsExt = "PartialFunctions" + SciMLBasePyCallExt = "PyCall" + SciMLBasePythonCallExt = "PythonCall" + SciMLBaseRCallExt = "RCall" + SciMLBaseZygoteExt = "Zygote" + + [deps.SciMLBase.weakdeps] + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + PartialFunctions = "570af359-4316-4cb7-8c74-252c00c2016b" + PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" + PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" + RCall = "6f49c342-dc21-5d91-9882-a32aef131414" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.SciMLOperators]] +deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] +git-tree-sha1 = "51ae235ff058a64815e0a2c34b1db7578a06813d" +uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" +version = "0.3.7" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.SentinelArrays]] +deps = ["Dates", "Random"] +git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" +uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" +version = "1.4.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + +[[deps.ShaderAbstractions]] +deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "db0219befe4507878b1a90e07820fed3e62c289d" +uuid = "65257c39-d410-5151-9873-9b3e5be5013e" +version = "0.4.0" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SignedDistanceFields]] +deps = ["Random", "Statistics", "Test"] +git-tree-sha1 = "d263a08ec505853a5ff1c1ebde2070419e3f28e9" +uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" +version = "0.4.0" + +[[deps.SimpleGraphs]] +deps = ["AbstractLattices", "Combinatorics", "DataStructures", "IterTools", "LightXML", "LinearAlgebra", "LinearAlgebraX", "Optim", "Primes", "Random", "RingLists", "SimplePartitions", "SimplePolynomials", "SimpleRandom", "SparseArrays", "Statistics"] +git-tree-sha1 = "f65caa24a622f985cc341de81d3f9744435d0d0f" +uuid = "55797a34-41de-5266-9ec1-32ac4eb504d3" +version = "0.8.6" + +[[deps.SimpleNonlinearSolve]] +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "FastClosures", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "MaybeInplace", "PrecompileTools", "Reexport", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "470c5f97af31fa35926b45eb01e53a46c8d7d35f" +uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" +version = "1.3.1" + + [deps.SimpleNonlinearSolve.extensions] + SimpleNonlinearSolvePolyesterForwardDiffExt = "PolyesterForwardDiff" + SimpleNonlinearSolveStaticArraysExt = "StaticArrays" + + [deps.SimpleNonlinearSolve.weakdeps] + PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.SimplePartitions]] +deps = ["AbstractLattices", "DataStructures", "Permutations"] +git-tree-sha1 = "e9330391d04241eafdc358713b48396619c83bcb" +uuid = "ec83eff0-a5b5-5643-ae32-5cbf6eedec9d" +version = "0.3.1" + +[[deps.SimplePolynomials]] +deps = ["Mods", "Multisets", "Polynomials", "Primes"] +git-tree-sha1 = "7063828369cafa93f3187b3d0159f05582011405" +uuid = "cc47b68c-3164-5771-a705-2bc0097375a0" +version = "0.2.17" + +[[deps.SimpleRandom]] +deps = ["Distributions", "LinearAlgebra", "Random"] +git-tree-sha1 = "3a6fb395e37afab81aeea85bae48a4db5cd7244a" +uuid = "a6525b86-64cd-54fa-8f65-62fc48bdc0e8" +version = "0.3.1" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.SimpleUnPack]] +git-tree-sha1 = "58e6353e72cde29b90a69527e56df1b5c3d8c437" +uuid = "ce78b400-467f-4804-87d8-8f486da07d0a" +version = "1.1.0" + +[[deps.Sixel]] +deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"] +git-tree-sha1 = "2da10356e31327c7096832eb9cd86307a50b1eb6" +uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" +version = "0.1.3" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" + +[[deps.SparseDiffTools]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Random", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "UnPack", "VertexSafeGraphs"] +git-tree-sha1 = "3b38ae7a1cbe9b8b1344359599753957644b03d4" +uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" +version = "2.16.0" + + [deps.SparseDiffTools.extensions] + SparseDiffToolsEnzymeExt = "Enzyme" + SparseDiffToolsPolyesterForwardDiffExt = "PolyesterForwardDiff" + SparseDiffToolsSymbolicsExt = "Symbolics" + SparseDiffToolsZygoteExt = "Zygote" + + [deps.SparseDiffTools.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Sparspak]] +deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] +git-tree-sha1 = "342cf4b449c299d8d1ceaf00b7a49f4fbc7940e7" +uuid = "e56a9233-b9d6-4f03-8d0f-1825330902ac" +version = "0.3.9" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.StableHashTraits]] +deps = ["Compat", "PikaParser", "SHA", "Tables", "TupleTools"] +git-tree-sha1 = "662f56ffe22b3985f3be7474f0aecbaf214ecf0f" +uuid = "c5dd0088-6c3f-4803-b00e-f31a60c170fa" +version = "1.1.6" + +[[deps.StackViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" +uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" +version = "0.1.1" + +[[deps.Static]] +deps = ["IfElse"] +git-tree-sha1 = "f295e0a1da4ca425659c57441bcb59abb035a4bc" +uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" +version = "0.8.8" + +[[deps.StaticArrayInterface]] +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] +git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" +uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" +version = "1.5.0" +weakdeps = ["OffsetArrays", "StaticArrays"] + + [deps.StaticArrayInterface.extensions] + StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" + StaticArrayInterfaceStaticArraysExt = "StaticArrays" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "f68dd04d131d9a8a8eb836173ee8f105c360b0c5" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.9.1" +weakdeps = ["ChainRulesCore", "Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.2" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.10.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.0" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.SteadyStateDiffEq]] +deps = ["ConcreteStructs", "DiffEqBase", "DiffEqCallbacks", "LinearAlgebra", "Reexport", "SciMLBase"] +git-tree-sha1 = "a735fd5053724cf4de31c81b4e2cc429db844be5" +uuid = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" +version = "2.0.1" + +[[deps.StochasticDiffEq]] +deps = ["Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqNoiseProcess", "DocStringExtensions", "FiniteDiff", "ForwardDiff", "JumpProcesses", "LevyArea", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "OrdinaryDiffEq", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] +git-tree-sha1 = "753219de57ac7aab0feb88871d3c51e0eb5e3b03" +uuid = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" +version = "6.64.0" + +[[deps.StrideArraysCore]] +deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] +git-tree-sha1 = "d6415f66f3d89c615929af907fdc6a3e17af0d8c" +uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" +version = "0.5.2" + +[[deps.StringManipulation]] +deps = ["PrecompileTools"] +git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" +uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" +version = "0.3.4" + +[[deps.StructArrays]] +deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] +git-tree-sha1 = "1b0b1205a56dc288b71b1961d48e351520702e24" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.17" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.2.1+1" + +[[deps.SumTypes]] +deps = ["MacroTools"] +git-tree-sha1 = "76f41a25affd44cd12e0f19012eddd468b32c6a3" +uuid = "8e1ec7a9-0e02-4297-b0fe-6433085c89f2" +version = "0.5.5" + +[[deps.Sundials]] +deps = ["CEnum", "DataStructures", "DiffEqBase", "Libdl", "LinearAlgebra", "Logging", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "Sundials_jll"] +git-tree-sha1 = "ded52f017fe7faa3d004427f10ecce4c0491c16a" +uuid = "c3572dad-4567-51f8-b174-8c6c989267f4" +version = "4.23.1" + +[[deps.Sundials_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "SuiteSparse_jll", "libblastrampoline_jll"] +git-tree-sha1 = "ba4d38faeb62de7ef47155ed321dce40a549c305" +uuid = "fb77eaff-e24c-56d4-86b1-d163f2edb164" +version = "5.2.2+0" + +[[deps.SymbolicIndexingInterface]] +git-tree-sha1 = "74502f408d99fc217a9d7cd901d9ffe45af892b1" +uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" +version = "0.3.3" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.11.1" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.ThreadingUtilities]] +deps = ["ManualMemory"] +git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" +uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" +version = "0.5.2" + +[[deps.TiffImages]] +deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] +git-tree-sha1 = "34cc045dd0aaa59b8bbe86c644679bc57f1d5bd0" +uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" +version = "0.6.8" + +[[deps.TimerOutputs]] +deps = ["ExprTools", "Printf"] +git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" +uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +version = "0.5.23" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "1fbeaaca45801b4ba17c251dd8603ef24801dd84" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.2" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.TriangularSolve]] +deps = ["CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "LoopVectorization", "Polyester", "Static", "VectorizationBase"] +git-tree-sha1 = "fadebab77bf3ae041f77346dd1c290173da5a443" +uuid = "d5829a12-d9aa-46ab-831f-fb7c9ab06edf" +version = "0.1.20" + +[[deps.Tricks]] +git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f" +uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" +version = "0.1.8" + +[[deps.TriplotBase]] +git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" +uuid = "981d1d27-644d-49a2-9326-4793e63143c3" +version = "0.1.0" + +[[deps.TruncatedStacktraces]] +deps = ["InteractiveUtils", "MacroTools", "Preferences"] +git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" +uuid = "781d530d-4396-4725-bb49-402e4bee1e77" +version = "1.4.0" + +[[deps.TupleTools]] +git-tree-sha1 = "155515ed4c4236db30049ac1495e2969cc06be9d" +uuid = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6" +version = "1.4.3" + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.UnPack]] +git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" +uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" +version = "1.0.2" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.VectorizationBase]] +deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "7209df901e6ed7489fe9b7aa3e46fb788e15db85" +uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" +version = "0.21.65" + +[[deps.VertexSafeGraphs]] +deps = ["Graphs"] +git-tree-sha1 = "8351f8d73d7e880bfc042a8b6922684ebeafb35c" +uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" +version = "0.2.0" + +[[deps.WeakRefStrings]] +deps = ["DataAPI", "InlineStrings", "Parsers"] +git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" +uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" +version = "1.4.2" + +[[deps.WoodburyMatrices]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "1.0.0" + +[[deps.WorkerUtilities]] +git-tree-sha1 = "cd1659ba0d57b71a464a29e64dbc67cfe83d54e7" +uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" +version = "1.6.1" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.12.2+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+1" + +[[deps.isoband_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" +uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4" +version = "0.2.3+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+1" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "93284c28274d9e75218a416c65ec49d0e0fcdf3d" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.40+0" + +[[deps.libsixel_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] +git-tree-sha1 = "d4f63314c8aa1e48cd22aa0c17ed76cd1ae48c3c" +uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" +version = "1.10.3+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+2" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" +""" + +# ╔═╡ Cell order: +# ╟─3befec01-5817-445f-bed5-b47909eaf464 +# ╟─f4d77b00-c12c-11ee-150b-cb97fa9d2c03 +# ╟─aab9fc6b-c8f0-4b9b-b7dd-138c03058532 +# ╟─3eae7bc9-1de9-4b20-b57c-6f332168feb6 +# ╟─fa625b66-bb31-4365-82f7-b0f1191d53c5 +# ╟─69d86b14-5064-474e-85df-791007fe8bcf +# ╟─26910a15-95e2-4ae0-a61f-3ff5521bfc27 +# ╟─6d85a352-e169-4016-aa4d-6e9ae392748a +# ╟─b36f0c7c-5478-4c86-b5c1-51da7f29e29f +# ╟─69a3d832-59a0-46f4-a7ff-9287a9eba5db +# ╟─00000000-0000-0000-0000-000000000001 +# ╟─00000000-0000-0000-0000-000000000002 diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/Allclean b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/Allclean new file mode 100644 index 000000000..c11a7d603 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/Allclean @@ -0,0 +1,11 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +rm -rf [0-9]* +rm -rf constant/polyMesh/ +rm -rf logging +rm -rf postProcessing +rm -rf processors* +rm -rf VTK + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/Allrun b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/Allrun new file mode 100644 index 000000000..57b8d649f --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/Allrun @@ -0,0 +1,57 @@ +#!/bin/sh +# Run from strictly this directory. +cd ${0%/*} || exit 1 + +# Log at another folder to keep things clean. +mkdir logging/ + +# Create initial state. +cp -avr zero/ "0.000000/" + +# Manage mesh generation. +if [ -f "../geometry.msh" ]; then + echo "Copy existing mesh:" + cp ../geometry.msh tmp.msh +else + echo "Generate MSH2 file:" + gmsh -3 ../geometry.geo -o tmp.msh | tee logging/log.gmsh +fi + +# Create constant/polyMesh in case +gmshToFoam tmp.msh | tee logging/log.gmshToFoam + +# Confirm mesh quality is acceptable. +checkMesh | tee logging/log.checkMesh + +# Remove mesh cause non longer required. +rm -rf tmp.msh + +# Fix patches for the present case. +boundary=constant/polyMesh/boundary +foamDictionary $boundary -entry entry0/frontAndBack/type -set empty +foamDictionary $boundary -entry entry0/walls/type -set wall + +# Improve parallelization efficiency. +renumberMesh -overwrite | tee logging/log.renumberMesh + +# Manage type of execution. +if [ "$(nproc --all)" -gt 10 ]; then + echo "Running in parallel:" + decomposePar | tee logging/log.decomposePar + mpirun -np 10 foamRun -parallel | tee logging/log.foamRun + reconstructPar + + # Remove intermediate decomposed files. + rm -rf processors* +else + echo "Running sequential" + foamRun | tee logging/log.foamRun +fi + +# Create VTK files to visualize particles. +foamToVTK + +# Remove time files +rm -rf [0-9]* + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/cloudPositions b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/cloudPositions new file mode 100644 index 000000000..976cc074a --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/cloudPositions @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class vectorField; + object cloudPositions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +( +(0.05 0.90 0.05) +) + +/ ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/cloudProperties.template b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/cloudProperties.template new file mode 100644 index 000000000..e598a3863 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/cloudProperties.template @@ -0,0 +1,155 @@ +{{{OPENFOAMBANNER}}}FoamFile +{ + format ascii; + class dictionary; + object cloudProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type MPPICCloud; + +solution +{ + maxCo 0.3; + + coupled true; + transient yes; + cellValueSourceCorrection on; + averagingMethod dual; + + interpolationSchemes + { + rho.air cell; + U.air cellPoint; + mu.air cell; + alpha.air cell; + } + + integrationSchemes + { + U Euler; + } + + sourceTerms + { + resetOnStartup false; + + schemes + { + U semiImplicit 1; + } + } +} + +constantProperties +{ + rho0 2450; +} + +subModels +{ + // ------------------------------------------------------------------------ + + particleForces + { + gravity; + + {{dragModel}} + } + + // ------------------------------------------------------------------------ + + injectionModels + { + dropoff + { + type manualInjection; + positionsFile "cloudPositions"; + + SOI 0; + nParticle 1; + U0 (0 0 0); + + sizeDistribution + { + type fixedValue; + value {{particleSize}}; + } + } + } + + // ------------------------------------------------------------------------ + + packingModel implicit; + + implicitCoeffs + { + alphaMin 0.0001; + rhoMin 1.0; + applyLimiting true; + applyGravity {{applyGravity}}; + + particleStressModel + { + type HarrisCrighton; + alphaPacked 0.6; + pSolid 5.0; + beta 2.0; + eps 1.0e-02; + } + } + + // ------------------------------------------------------------------------ + + dampingModel relaxation; + + relaxationCoeffs + { + timeScaleModel + { + type nonEquilibrium; + alphaPacked 0.6; + e 0.9; + } + } + + // ------------------------------------------------------------------------ + + isotropyModel stochastic; + + stochasticCoeffs + { + timeScaleModel + { + type isotropic; + alphaPacked 0.6; + e 0.9; + } + } + + // ------------------------------------------------------------------------ + + patchInteractionModel standardWallInteraction; + + standardWallInteractionCoeffs + { + type rebound; + e 0.97; + mu 0.09; + } + + // ------------------------------------------------------------------------ + + dispersionModel none; + stochasticCollisionModel none; + surfaceFilmModel none; + heatTransferModel none; + radiation off; + + // ------------------------------------------------------------------------ +} + +cloudFunctions +{} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/g b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/g new file mode 100644 index 000000000..9c045294c --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/g @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 -9.81 0); + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/momentumTransport.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/momentumTransport.air new file mode 100644 index 000000000..7f90a4442 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/momentumTransport.air @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object momentumTransport.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + model kOmegaSST; + turbulence on; + printCoeffs on; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/physicalProperties.template b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/physicalProperties.template new file mode 100644 index 000000000..d8f291e46 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/constant/physicalProperties.template @@ -0,0 +1,18 @@ +{{{OPENFOAMBANNER}}}FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object physicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +continuousPhaseName air; + +viscosityModel constant; + +nu 1.568e-05; + +rho.air {{rho}}; + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/controlDict b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/controlDict new file mode 100644 index 000000000..d8b235026 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/controlDict @@ -0,0 +1,65 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application foamRun; + +solver incompressibleDenseParticleFluid; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 1.5; + +deltaT 1.0e-05; + +writeControl adjustableRunTime; + +writeInterval 0.01; + +purgeWrite 0; + +writeFormat binary; + +writePrecision 12; + +writeCompression off; + +timeFormat scientific; + +timePrecision 8; + +runTimeModifiable true; + +adjustTimeStep yes; + +maxCo 0.3; + +maxDeltaT 0.001; + +functions +{ + #includeFunc residuals; +} + +OptimisationSwitches +{ + fileHandler collated; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/decomposeParDict b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/decomposeParDict new file mode 100644 index 000000000..a3fe2dfbb --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/decomposeParDict @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 10; + +method simple; + +simpleCoeffs +{ + n (2 5 1); +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/fvSchemes b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/fvSchemes new file mode 100644 index 000000000..81a1cc8d2 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/fvSchemes @@ -0,0 +1,67 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + + // div(alphaPhi.air,U.air) Gauss linearUpwindV grad(U); + // div(alphaPhi.air,U.air) Gauss linearUpwindV unlimited; + div(alphaPhi.air,U.air) Gauss linearUpwind grad(U); + + // div(alphaPhi.air,k.air) Gauss limitedLinear 1; + // div(alphaPhi.air,epsilon.air) Gauss limitedLinear 1; + // div(alphaPhi.air,omega.air) Gauss limitedLinear 1; + div(alphaPhi.air,k.air) Gauss upwind; + div(alphaPhi.air,epsilon.air) Gauss upwind; + div(alphaPhi.air,omega.air) Gauss upwind; + + div(phiGByA,cloud:alpha) Gauss linear; + div(((alpha.air*nuEff.air)*dev2(T(grad(U.air))))) Gauss linear; +} + +laplacianSchemes +{ + // default Gauss linear corrected; + default Gauss linear limited 1; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + // default corrected; + default limited 1; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/fvSolution b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/fvSolution new file mode 100644 index 000000000..0f523ff50 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/fvSolution @@ -0,0 +1,84 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + alpha.air + { + max 0.9; + } + + p + { + solver GAMG; + tolerance 1e-06; + relTol 0.01; + smoother GaussSeidel; + } + + pFinal + { + solver GAMG; + tolerance 1e-06; + relTol 0; + smoother GaussSeidel; + } + + "(U|k|epsilon|omega).air" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "(U|k|epsilon|omega).airFinal" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "cloud:alpha.*" + { + solver GAMG; + tolerance 1e-06; + relTol 0.1; + smoother GaussSeidel; + } +} + +PIMPLE +{ + nOuterCorrectors 1; + nCorrectors 2; + momentumPredictor yes; + nNonOrthogonalCorrectors 0; + pRefCell 0; + pRefValue 0; + + residualControl + { + p 1.0e-05; + U.air 1.0e-04; + k.air 1.0e-05; + epsilon.air 1.0e-05; + omega.air 1.0e-05; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/residuals b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/residuals new file mode 100644 index 000000000..ff141da87 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/system/residuals @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object funcResiduals; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#includeEtc "caseDicts/postProcessing/numerical/residuals.cfg" + +fields ( + p + U.air + omega.air + k.air + cloud:alpha +); + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/U.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/U.air new file mode 100644 index 000000000..8468d8708 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/U.air @@ -0,0 +1,34 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volVectorField; + location "0"; + object U.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + walls + { + type noSlip; + } + frontAndBack + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/k.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/k.air new file mode 100644 index 000000000..3a71889ea --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/k.air @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object k.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.001; + +boundaryField +{ + walls + { + type kqRWallFunction; + value $internalField; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/nut.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/nut.air new file mode 100644 index 000000000..7f758fdf7 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/nut.air @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object nut.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0.04; + +boundaryField +{ + walls + { + type nutkWallFunction; + value $internalField; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/omega.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/omega.air new file mode 100644 index 000000000..f3b6d2c3b --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/omega.air @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object omega.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 100; + +boundaryField +{ + walls + { + type omegaWallFunction; + value $internalField; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/p b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/p new file mode 100644 index 000000000..5e2b4bee9 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/reference/zero/p @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type fixedFluxPressure; + gradient uniform 0; + value uniform 0; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/runtime/.gitignore b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/runtime/.gitignore new file mode 100644 index 000000000..a82e70589 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/runtime/.gitignore @@ -0,0 +1,2 @@ +/**/ +!/post/ \ No newline at end of file diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/runtime/geometry.geo b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/runtime/geometry.geo new file mode 100644 index 000000000..5aad7fc5a --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/particleDistribution/runtime/geometry.geo @@ -0,0 +1,41 @@ +// geometry.geo + +General.AbortOnError = 1; +General.BackgroundGradient = 0; +General.Color.Background = {0, 0, 0}; +General.Color.Foreground = White; +General.Color.Text = White; +General.Color.Axes = White; +General.Color.SmallAxes = White; +General.Axes = 0; +General.SmallAxes = 1; + +Geometry.OldNewReg = 0; +Geometry.Surfaces = 1; + +Mesh.SaveAll = 0; +Mesh.MshFileVersion = 2.2; + +Point(1) = {0.0, 0.0, 0}; +Point(2) = {0.1, 0.0, 0}; +Point(3) = {0.1, 1.0, 0}; +Point(4) = {0.0, 1.0, 0}; + +Line(1) = {1, 2}; +Line(2) = {2, 3}; +Line(3) = {3, 4}; +Line(4) = {4, 1}; + +Curve Loop(1) = {1, 2, 3, 4}; +Plane Surface(1) = {1}; + +Transfinite Line {1, -3} = 20; +Transfinite Line {2, -4} = 200; +Transfinite Surface {1}; +Recombine Surface{1}; + +Extrude {0, 0, 0.1} { Surface{1}; Layers{1}; Recombine; } + +Physical Volume("volume") = {1}; +Physical Surface("frontAndBack") = {1, 7}; +Physical Surface("walls") = {3, 4, 5, 6}; diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/.gitignore b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/.gitignore new file mode 100644 index 000000000..af8d815b1 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/.gitignore @@ -0,0 +1 @@ +!/post/ \ No newline at end of file diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/geometry.geo b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/geometry.geo new file mode 100644 index 000000000..8dd129300 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/geometry.geo @@ -0,0 +1,41 @@ +// geometry.geo + +General.AbortOnError = 1; +General.BackgroundGradient = 0; +General.Color.Background = {0, 0, 0}; +General.Color.Foreground = White; +General.Color.Text = White; +General.Color.Axes = White; +General.Color.SmallAxes = White; +General.Axes = 0; +General.SmallAxes = 1; + +Geometry.OldNewReg = 0; +Geometry.Surfaces = 1; + +Mesh.SaveAll = 0; +Mesh.MshFileVersion = 2.2; + +Point(1) = {0.0, 0.0, 0}; +Point(2) = {0.1, 0.0, 0}; +Point(3) = {0.1, 2.0, 0}; +Point(4) = {0.0, 2.0, 0}; + +Line(1) = {1, 2}; +Line(2) = {2, 3}; +Line(3) = {3, 4}; +Line(4) = {4, 1}; + +Curve Loop(1) = {1, 2, 3, 4}; +Plane Surface(1) = {1}; + +Transfinite Line {1, -3} = 20; +Transfinite Line {2, -4} = 400; +Transfinite Surface {1}; +Recombine Surface{1}; + +Extrude {0, 0, 0.1} { Surface{1}; Layers{1}; Recombine; } + +Physical Volume("volume") = {1}; +Physical Surface("frontAndBack") = {1, 7}; +Physical Surface("walls") = {3, 4, 5, 6}; diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/manager.jl b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/manager.jl new file mode 100644 index 000000000..53a9303b5 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/manager.jl @@ -0,0 +1,548 @@ +### A Pluto.jl notebook ### +# v0.19.41 + +using Markdown +using InteractiveUtils + +# This Pluto notebook uses @bind for interactivity. When running this notebook outside of Pluto, the following 'mock version' of @bind gives bound variables a default value (instead of an error). +macro bind(def, element) + quote + local iv = try Base.loaded_modules[Base.PkgId(Base.UUID("6e696c72-6542-2067-7265-42206c756150"), "AbstractPlutoDingetjes")].Bonds.initial_value catch; b -> missing; end + local el = $(esc(element)) + global $(esc(def)) = Core.applicable(Base.get, el) ? Base.get(el) : iv(el) + el + end +end + +# ╔═╡ f4d77b00-c12c-11ee-150b-cb97fa9d2c03 +begin + @info "Loading required external tools" + + import Pkg + Pkg.activate("../../../../WallyToolbox.jl") + + using WallyToolbox + using OpenFOAM + + using CairoMakie + using DelimitedFiles + using DifferentialEquations + using Mustache + using PlutoUI +end + +# ╔═╡ 3befec01-5817-445f-bed5-b47909eaf464 +md""" +# Case manager + +$(TableOfContents()) + +Study the role of some drag models over falling particle dynamics. + +Other than the drag models, particle size and role of parameter `applyGravity` in implicit packing model. The later was added because of unexpected (probably unphysical) results were found when playing with these parameters. +""" + +# ╔═╡ c4841bbd-6f1d-451f-911d-f609a6298b2a +md""" +## Mesh generation + +$(@bind remesh PlutoUI.Button("Remesh")) +""" + +# ╔═╡ 471a7c04-746a-4210-97cf-705c990a7f66 +let + remesh + run(`gmsh -3 geometry.geo -o geometry.msh`) +end + +# ╔═╡ aab9fc6b-c8f0-4b9b-b7dd-138c03058532 +md""" +## Parametric study + +Drag models: + +- `sphereDrag` +- `WenYuDrag` +- `ErgunWenYuDrag` + +Apply gravity: + +- true +- false + +Particle sizes: + +- 100 μm +- 500 μm +- 1000 μm + +Gas density: + +- 0.5 kg/m³ +- 1.2 kg/m³ + +""" + +# ╔═╡ 5a933239-04ab-4baf-bce5-51ce0192fc5d +begin + @info "Reading solution data" + d000 = readdlm("000-reference/fall.csv", ','; header = true)[1] + d001 = readdlm("001-drag-model/fall.csv", ','; header = true)[1] + d002 = readdlm("002-drag-model/fall.csv", ','; header = true)[1] + d003 = readdlm("003-gravity/fall.csv", ','; header = true)[1] + d004 = readdlm("004-particlesize/fall.csv", ','; header = true)[1] + d005 = readdlm("005-particlesize/fall.csv", ','; header = true)[1] + d006 = readdlm("006-rho-air/fall.csv", ','; header = true)[1] +end; + +# ╔═╡ 3eae7bc9-1de9-4b20-b57c-6f332168feb6 +md""" +## Reference solution + +Computations performed as per [Amsden](https://doi.org/10.2172/6228444) to match the implementation of [`sphereDrag`](https://cpp.openfoam.org/v11/classFoam_1_1SphereDragForce.html#details) in OpenFOAM. + +Notice that below the *Constant* solution is the analytical result at high Reynolds limit, while the KIVA-II values are computed for low ``Re``, thus it is expected that the former represents an upper bound of the solution, as demonstrated. For instance, by decreasing fluid kinematic viscosity ``\nu`` both solutions get closely related. +""" + +# ╔═╡ fa625b66-bb31-4365-82f7-b0f1191d53c5 +let + reynolds(U, D, ν) = U * D / ν + + function dragcoef(Re) + (Re > 1000.0) ? 0.424Re : 24.0*(1.0+(1.0/6.0)*Re^(2/3)) + end + + function particleforce(U, ν, ρ, ρₚ, d, mode) + if mode == :openfoam + Re = reynolds(U, d, ν) + Cd = dragcoef(Re) + μ = ρ * ν + + # TODO: check this `U` in the end. As per Amsden (1989) it should be + # here in the 1D case, but that is not how it is stated in OpenFOAM. + Fd = (3/4) * (μ * Cd) / (ρₚ * d^2) * U #^(1/2) + else + # Re ~ 10^6, so 0.424Re in the above case! + Cd = 0.47 + Fd = (3/4) * (ρ / ρₚ) * U^2 / d * Cd + end + + return -Fd + 9.81 + end + + function freefall!(du, u, p, t) + du[1] = u[2] + du[2] = particleforce(u[2], p...) + end + + # Air properties. + ρ = 1.2 + ν = 1.568e-05 + + # Particle properties. + ρₚ = 2450 + D = 500e-06 + + # Expected terminal velocity. + Uterm = sqrt((4/3) * (ρₚ / ρ) * D * 9.81 / 0.47) + + u0 = [0.0; 0.0] + tspan = (0.0, 0.5) + saveat = LinRange(tspan..., 100) + + p = [ν, ρ, ρₚ, D] + + prob = ODEProblem(freefall!, u0, tspan, (p..., :openfoam)) + sol1 = solve(prob; saveat) + + prob = ODEProblem(freefall!, u0, tspan, (p..., :constant)) + sol2 = solve(prob; saveat) + + with_theme() do + f = Figure(size = (700, 600)) + + ax1 = Axis(f[1, 1]) + ax2 = Axis(f[2, 1]) + + lines!(ax1, sol1.t, sol1[1, :]; label = "KIVA-II") + lines!(ax1, sol2.t, sol2[1, :]; label = "Constant") + + lines!(ax2, sol1.t, sol1[2, :]; label = "KIVA-II") + lines!(ax2, sol2.t, sol2[2, :]; label = "Constant") + + # scatter!(ax2, sol2.t[end], Uterm; color = :red) + + ax1.ylabel = "Position [m]" + ax2.ylabel = "Velocity [m/s]" + ax2.xlabel = "Time [s]" + + axislegend(ax1; position = :lt) + axislegend(ax2; position = :lt) + + f + end +end + +# ╔═╡ c4904d3a-c06c-49fe-9b63-1b370e656a8d +md""" +## Solution analysis + +### Compare drag laws + +From a qualitative standpoint all laws give the same global results. Fine analysis shows (not depicted, you can inspect the data) show a few millimeters of deviation between results. +""" + +# ╔═╡ 974b40e5-0dac-4219-9c05-4ec53d254279 +with_theme() do + f = Figure(size = (700, 600)) + + let + ax = Axis(f[1, 1]) + + ax.xlabel = "Time (s)" + ax.ylabel = "Position (m)" + + ax.xticks = 0.0:0.1:0.5 + ax.yticks = 0.0:0.2:1.4 + + xlims!(ax, extrema(ax.xticks.val)) + ylims!(ax, extrema(ax.yticks.val)) + + Δy0 = abs.(d000[:, 3] .- d000[1, 3]) + Δy1 = abs.(d001[:, 3] .- d001[1, 3]) + Δy2 = abs.(d002[:, 3] .- d002[1, 3]) + + lines!(ax, d000[:, 2], Δy0; label = "Sphere Drag") + lines!(ax, d001[:, 2], Δy1; label = "Wen Yu Drag") + lines!(ax, d002[:, 2], Δy2; label = "Ergun Wen Yu Drag") + + axislegend(ax; position = :lt) + end + + let + ax = Axis(f[2, 1]) + + ax.xlabel = "Time (s)" + ax.ylabel = "Velocity magnitude (m/s)" + + ax.xticks = 0.0:0.1:0.5 + ax.yticks = 0.0:0.5:4.0 + + xlims!(ax, extrema(ax.xticks.val)) + ylims!(ax, extrema(ax.yticks.val)) + + Δy0 = abs.(d000[:, 4]) + Δy1 = abs.(d001[:, 4]) + Δy2 = abs.(d002[:, 4]) + + lines!(ax, d000[:, 2], Δy0; label = "Sphere Drag") + lines!(ax, d001[:, 2], Δy1; label = "Wen Yu Drag") + lines!(ax, d002[:, 2], Δy2; label = "Ergun Wen Yu Drag") + + axislegend(ax; position = :lt) + end + + f +end + +# ╔═╡ 28da4ef8-9543-47fe-9b7b-04e951354cc4 +md""" +### Role of particle size + +It is clear below the transition from laminar to turbulent: diameters increase, lines approach and should converge to a case where there is weak coupling. +""" + +# ╔═╡ 9c36dda1-672f-41f2-8a1a-f9a1c96a6b22 +with_theme() do + f = Figure(size = (700, 600)) + + let + ax = Axis(f[1, 1]) + + ax.xlabel = "Time (s)" + ax.ylabel = "Position (m)" + + ax.xticks = 0.0:0.1:0.5 + ax.yticks = 0.0:0.2:1.6 + + xlims!(ax, extrema(ax.xticks.val)) + ylims!(ax, extrema(ax.yticks.val)) + + Δy0 = abs.(d004[:, 3] .- d004[1, 3]) + Δy1 = abs.(d000[:, 3] .- d000[1, 3]) + Δy2 = abs.(d005[:, 3] .- d005[1, 3]) + + lines!(ax, d004[:, 2], Δy0; label = "0.1 mm") + lines!(ax, d000[:, 2], Δy1; label = "0.5 mm") + lines!(ax, d005[:, 2], Δy2; label = "1.0 mm") + + axislegend(ax; position = :lt) + end + + let + ax = Axis(f[2, 1]) + + ax.xlabel = "Time (s)" + ax.ylabel = "Velocity magnitude (m/s)" + + ax.xticks = 0.0:0.1:0.5 + ax.yticks = 0.0:1.0:6.0 + + xlims!(ax, extrema(ax.xticks.val)) + ylims!(ax, extrema(ax.yticks.val)) + + Δy0 = abs.(d004[:, 4]) + Δy1 = abs.(d000[:, 4]) + Δy2 = abs.(d005[:, 4]) + + lines!(ax, d004[:, 2], Δy0; label = "0.1 mm") + lines!(ax, d000[:, 2], Δy1; label = "0.5 mm") + lines!(ax, d005[:, 2], Δy2; label = "1.0 mm") + + axislegend(ax; position = :lt) + end + + f +end + +# ╔═╡ 86447720-9515-4c19-8754-1427147ee239 +md""" +### Effect of gravity + +This is not the overall gravity, but the key `applyGravity` in packing model. Since we are in the dilute limit, there should be no visible effect here. To be investigated. +""" + +# ╔═╡ cca47ca6-f243-45b5-84ea-59b301f571cd +with_theme() do + f = Figure(size = (700, 600)) + + let + ax = Axis(f[1, 1]) + + ax.xlabel = "Time (s)" + ax.ylabel = "Position (m)" + + ax.xticks = 0.0:0.1:0.5 + ax.yticks = 0.0:0.2:1.4 + + xlims!(ax, extrema(ax.xticks.val)) + ylims!(ax, extrema(ax.yticks.val)) + + Δy0 = abs.(d000[:, 3] .- d000[1, 3]) + Δy1 = abs.(d003[:, 3] .- d003[1, 3]) + + lines!(ax, d000[:, 2], Δy0; label = "Enabled") + lines!(ax, d003[:, 2], Δy1; label = "Disabled") + + axislegend(ax; position = :lt) + end + + let + ax = Axis(f[2, 1]) + + ax.xlabel = "Time (s)" + ax.ylabel = "Velocity magnitude (m/s)" + + ax.xticks = 0.0:0.1:0.5 + ax.yticks = 0.0:0.5:4.0 + + xlims!(ax, extrema(ax.xticks.val)) + ylims!(ax, extrema(ax.yticks.val)) + + Δy0 = abs.(d000[:, 4]) + Δy1 = abs.(d003[:, 4]) + + lines!(ax, d000[:, 2], Δy0; label = "Enabled") + lines!(ax, d003[:, 2], Δy1; label = "Disabled") + + axislegend(ax; position = :lt) + end + + f +end + +# ╔═╡ e2701944-9e5f-464f-90cb-e80ecc2912c0 +md""" +### Role of fluid density + +Results match physically expected trends. +""" + +# ╔═╡ 1989f9c1-c1d8-4163-8a3f-ecd923a78317 +with_theme() do + f = Figure(size = (700, 600)) + + let + ax = Axis(f[1, 1]) + + ax.xlabel = "Time (s)" + ax.ylabel = "Position (m)" + + ax.xticks = 0.0:0.1:0.5 + ax.yticks = 0.0:0.2:1.8 + + xlims!(ax, extrema(ax.xticks.val)) + ylims!(ax, extrema(ax.yticks.val)) + + Δy0 = abs.(d000[:, 3] .- d000[1, 3]) + Δy1 = abs.(d006[:, 3] .- d006[1, 3]) + + lines!(ax, d000[:, 2], Δy0; label = "1.2 kg/m³") + lines!(ax, d006[:, 2], Δy1; label = "0.5 kg/m³") + + axislegend(ax; position = :lt) + end + + let + ax = Axis(f[2, 1]) + + ax.xlabel = "Time (s)" + ax.ylabel = "Velocity magnitude (m/s)" + + ax.xticks = 0.0:0.1:0.5 + ax.yticks = 0.0:1.0:7.0 + + xlims!(ax, extrema(ax.xticks.val)) + ylims!(ax, extrema(ax.yticks.val)) + + Δy0 = abs.(d000[:, 4]) + Δy1 = abs.(d006[:, 4]) + + lines!(ax, d000[:, 2], Δy0; label = "1.2 kg/m³") + lines!(ax, d006[:, 2], Δy1; label = "0.5 kg/m³") + + axislegend(ax; position = :lt) + end + + f +end + +# ╔═╡ 6d85a352-e169-4016-aa4d-6e9ae392748a +md""" +## Functions +""" + +# ╔═╡ 69a3d832-59a0-46f4-a7ff-9287a9eba5db +"Manages edition of a template with options." +function edittemplate(options, original; filled = nothing, drop = true) + filled = isnothing(filled) ? splitext(original)[1] : filled + + open(filled, "w") do fp + template = Mustache.load(original) + write(fp, Mustache.render(template, options)) + end + + drop && rm(original) +end + +# ╔═╡ b36f0c7c-5478-4c86-b5c1-51da7f29e29f +"Manages creation of case for numerical experiment." +function createcase(; casename, dragmodel, applygravity, particlesize, rho) + src = joinpath(@__DIR__, "reference") + dst = joinpath(@__DIR__, casename) + + if isdir(dst) + @warn "Not overwritting existing case $(casename)" + return + end + + cp(src, dst; force = true) + + data = Dict( + "OPENFOAMBANNER" => OpenFOAM.OPENFOAMBANNER, + "dragModel" => dragmodel, + "applyGravity" => applygravity, + "particleSize" => particlesize, + "rho" => rho + ) + + original = joinpath(dst, "constant/cloudProperties.template") + edittemplate(data, original; drop = true) + + original = joinpath(dst, "constant/physicalProperties.template") + edittemplate(data, original; drop = true) + + cmd = Cmd(`./Allrun`, dir=dst) + run(pipeline(cmd, stdout=tempname())) +end + +# ╔═╡ 26910a15-95e2-4ae0-a61f-3ff5521bfc27 +let + @info "Creating planned cases" + + sphereDrag = "sphereDrag;" + WenYuDrag = "WenYuDrag\n{\nalphac alpha.air;\n}" + ErgunWenYuDrag = "ErgunWenYuDrag\n{\nalphac alpha.air;\n}" + + createcase(; + casename = "000-reference", + dragmodel = sphereDrag, + applygravity = "true", + particlesize = 500e-06, + rho = 1.2) + + createcase(; + casename = "001-drag-model", + dragmodel = WenYuDrag, + applygravity = "true", + particlesize = 500e-06, + rho = 1.2) + + createcase(; + casename = "002-drag-model", + dragmodel = ErgunWenYuDrag, + applygravity = "true", + particlesize = 500e-06, + rho = 1.2) + + createcase(; + casename = "003-gravity", + dragmodel = sphereDrag, + applygravity = "false", + particlesize = 500e-06, + rho = 1.2) + + createcase(; + casename = "004-particlesize", + dragmodel = sphereDrag, + applygravity = "true", + particlesize = 100e-06, + rho = 1.2) + + createcase(; + casename = "005-particlesize", + dragmodel = sphereDrag, + applygravity = "true", + particlesize = 1000e-06, + rho = 1.2) + + createcase(; + casename = "006-rho-air", + dragmodel = sphereDrag, + applygravity = "true", + particlesize = 500e-06, + rho = 0.5) + +end; + +# ╔═╡ Cell order: +# ╟─3befec01-5817-445f-bed5-b47909eaf464 +# ╟─f4d77b00-c12c-11ee-150b-cb97fa9d2c03 +# ╟─c4841bbd-6f1d-451f-911d-f609a6298b2a +# ╟─471a7c04-746a-4210-97cf-705c990a7f66 +# ╟─aab9fc6b-c8f0-4b9b-b7dd-138c03058532 +# ╟─26910a15-95e2-4ae0-a61f-3ff5521bfc27 +# ╟─5a933239-04ab-4baf-bce5-51ce0192fc5d +# ╟─3eae7bc9-1de9-4b20-b57c-6f332168feb6 +# ╟─fa625b66-bb31-4365-82f7-b0f1191d53c5 +# ╟─c4904d3a-c06c-49fe-9b63-1b370e656a8d +# ╟─974b40e5-0dac-4219-9c05-4ec53d254279 +# ╟─28da4ef8-9543-47fe-9b7b-04e951354cc4 +# ╟─9c36dda1-672f-41f2-8a1a-f9a1c96a6b22 +# ╟─86447720-9515-4c19-8754-1427147ee239 +# ╟─cca47ca6-f243-45b5-84ea-59b301f571cd +# ╟─e2701944-9e5f-464f-90cb-e80ecc2912c0 +# ╟─1989f9c1-c1d8-4163-8a3f-ecd923a78317 +# ╟─6d85a352-e169-4016-aa4d-6e9ae392748a +# ╟─b36f0c7c-5478-4c86-b5c1-51da7f29e29f +# ╟─69a3d832-59a0-46f4-a7ff-9287a9eba5db diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/dragModels.pvsm b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/dragModels.pvsm new file mode 100644 index 000000000..3be194d66 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/dragModels.pvsm @@ -0,0 +1,19698 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/gasDensity.pvsm b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/gasDensity.pvsm new file mode 100644 index 000000000..5747290bb --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/gasDensity.pvsm @@ -0,0 +1,14509 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/gravity.pvsm b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/gravity.pvsm new file mode 100644 index 000000000..6360858af --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/gravity.pvsm @@ -0,0 +1,14533 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/particleSize.pvsm b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/particleSize.pvsm new file mode 100644 index 000000000..478fb5617 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/post/particleSize.pvsm @@ -0,0 +1,20158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/Allclean b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/Allclean new file mode 100644 index 000000000..123699893 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/Allclean @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +# Run from this directory +cd "${0%/*}" || exit + +rm -rf case.foam +rm -rf [0-9]* +rm -rf constant/polyMesh/ +rm -rf postProcessing +rm -rf processors* +rm -rf log.* +rm -rf VTK + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/Allrun b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/Allrun new file mode 100644 index 000000000..a94c015be --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/Allrun @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +# Run from this directory +cd "${0%/*}" || exit 1 + +# Make OpenFOAM tools available. +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Helper to open case with Paraview. +touch case.foam + +# Create initial state. +cp -avr zero/ "0.000000/" + +# Create constant/polyMesh in case +runApplication gmshToFoam ../geometry.msh + +# Fix patches for the present case. +boundary=constant/polyMesh/boundary +foamDictionary $boundary -entry entry0/frontAndBack/type -set empty +foamDictionary $boundary -entry entry0/walls/type -set wall + +# Confirm mesh quality is acceptable. +runApplication checkMesh + +# Improve parallelization efficiency. +runApplication renumberMesh -overwrite +tail -5 log.checkMesh | head -2 + +# Manage type of execution. +if [ "$(nproc --all)" -gt 10 ]; then + echo "Running in parallel:" + runApplication decomposePar + runApplication mpirun -np 10 foamRun -parallel + reconstructPar + + mv log.mpirun log.solver + rm -rf processors* +else + echo "Running sequential" + runApplication foamRun + + mv log.foamRun log.solver +fi + +# Create VTK files to visualize particles. +foamToVTK + +# Extract data for post-processing. +python3 positions.py + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/cloudPositions b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/cloudPositions new file mode 100644 index 000000000..8c89787fe --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/cloudPositions @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class vectorField; + object cloudPositions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +( +(0.05 1.90 0.05) +) + +/ ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/cloudProperties.template b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/cloudProperties.template new file mode 100644 index 000000000..a87554cf1 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/cloudProperties.template @@ -0,0 +1,155 @@ +{{{OPENFOAMBANNER}}}FoamFile +{ + format ascii; + class dictionary; + object cloudProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type MPPICCloud; + +solution +{ + maxCo 1.0; + + coupled true; + transient yes; + cellValueSourceCorrection on; + averagingMethod dual; + + interpolationSchemes + { + rho.air cell; + U.air cellPoint; + mu.air cell; + alpha.air cell; + } + + integrationSchemes + { + U Euler; + } + + sourceTerms + { + resetOnStartup false; + + schemes + { + U semiImplicit 1; + } + } +} + +constantProperties +{ + rho0 2450; +} + +subModels +{ + // ------------------------------------------------------------------------ + + particleForces + { + gravity; + + {{dragModel}} + } + + // ------------------------------------------------------------------------ + + injectionModels + { + dropoff + { + type manualInjection; + positionsFile "cloudPositions"; + + SOI 0; + nParticle 1; + U0 (0 0 0); + + sizeDistribution + { + type fixedValue; + value {{particleSize}}; + } + } + } + + // ------------------------------------------------------------------------ + + packingModel implicit; + + implicitCoeffs + { + alphaMin 0.0001; + rhoMin 1.0; + applyLimiting true; + applyGravity {{applyGravity}}; + + particleStressModel + { + type HarrisCrighton; + alphaPacked 0.6; + pSolid 5.0; + beta 2.0; + eps 1.0e-02; + } + } + + // ------------------------------------------------------------------------ + + dampingModel relaxation; + + relaxationCoeffs + { + timeScaleModel + { + type nonEquilibrium; + alphaPacked 0.6; + e 0.9; + } + } + + // ------------------------------------------------------------------------ + + isotropyModel stochastic; + + stochasticCoeffs + { + timeScaleModel + { + type isotropic; + alphaPacked 0.6; + e 0.9; + } + } + + // ------------------------------------------------------------------------ + + patchInteractionModel standardWallInteraction; + + standardWallInteractionCoeffs + { + type rebound; + e 0.97; + mu 0.09; + } + + // ------------------------------------------------------------------------ + + dispersionModel none; + stochasticCollisionModel none; + surfaceFilmModel none; + heatTransferModel none; + radiation off; + + // ------------------------------------------------------------------------ +} + +cloudFunctions +{} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/g b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/g new file mode 100644 index 000000000..9c045294c --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/g @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 -9.81 0); + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/momentumTransport.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/momentumTransport.air new file mode 100644 index 000000000..7f90a4442 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/momentumTransport.air @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object momentumTransport.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + model kOmegaSST; + turbulence on; + printCoeffs on; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/physicalProperties.template b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/physicalProperties.template new file mode 100644 index 000000000..d8f291e46 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/constant/physicalProperties.template @@ -0,0 +1,18 @@ +{{{OPENFOAMBANNER}}}FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object physicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +continuousPhaseName air; + +viscosityModel constant; + +nu 1.568e-05; + +rho.air {{rho}}; + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/positions.py b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/positions.py new file mode 100644 index 000000000..f23a8b55e --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/positions.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +from pathlib import Path +import pandas as pd +import pyvista as pv +import re + + +def natsort_key(s, _nsre=re.compile(r"([0-9]+)")): + """ Using https://stackoverflow.com/a/16090640/11987084 """ + return [int(t) if t.isdigit() else t.lower() for t in _nsre.split(str(s))] + + +def get_ycoords(clouds): + """ Get y-coordinates of particle in all time-points. """ + # There is no data in first cloud, manually feed it. + df = [{"t": 0.0, "y": 1.9, "U": 0.0}] + + # Iterate over all files to get the required inputs. + for k, file in enumerate(sorted(clouds.glob("*.vtk"), key=natsort_key)): + if k == 0: + continue + + data = pv.read(file) + + # XXX: use data.array_names to get all available properties. + df.append({ + "t": data["age"][0], + "y": data.points[0, 1], + "U": data["U"][0, 1] + }) + + + # Create a table and dump to file. + df = pd.DataFrame(df) + df.to_csv("fall.csv") + + return df + + +if __name__ == "__main__": + clouds = Path(__file__).resolve().parent / "VTK/lagrangian/cloud" + df = get_ycoords(clouds) diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/controlDict b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/controlDict new file mode 100644 index 000000000..8fa04e47d --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/controlDict @@ -0,0 +1,65 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application foamRun; + +solver incompressibleDenseParticleFluid; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 0.5; + +deltaT 1.0e-04; + +writeControl adjustableRunTime; + +writeInterval 0.025; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 12; + +writeCompression off; + +timeFormat scientific; + +timePrecision 8; + +runTimeModifiable true; + +adjustTimeStep yes; + +maxCo 1.0; + +maxDeltaT 0.001; + +functions +{ + #includeFunc residuals; +} + +OptimisationSwitches +{ + fileHandler collated; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/decomposeParDict b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/decomposeParDict new file mode 100644 index 000000000..a3fe2dfbb --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/decomposeParDict @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 10; + +method simple; + +simpleCoeffs +{ + n (2 5 1); +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/fvSchemes b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/fvSchemes new file mode 100644 index 000000000..81a1cc8d2 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/fvSchemes @@ -0,0 +1,67 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + + // div(alphaPhi.air,U.air) Gauss linearUpwindV grad(U); + // div(alphaPhi.air,U.air) Gauss linearUpwindV unlimited; + div(alphaPhi.air,U.air) Gauss linearUpwind grad(U); + + // div(alphaPhi.air,k.air) Gauss limitedLinear 1; + // div(alphaPhi.air,epsilon.air) Gauss limitedLinear 1; + // div(alphaPhi.air,omega.air) Gauss limitedLinear 1; + div(alphaPhi.air,k.air) Gauss upwind; + div(alphaPhi.air,epsilon.air) Gauss upwind; + div(alphaPhi.air,omega.air) Gauss upwind; + + div(phiGByA,cloud:alpha) Gauss linear; + div(((alpha.air*nuEff.air)*dev2(T(grad(U.air))))) Gauss linear; +} + +laplacianSchemes +{ + // default Gauss linear corrected; + default Gauss linear limited 1; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + // default corrected; + default limited 1; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/fvSolution b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/fvSolution new file mode 100644 index 000000000..0f523ff50 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/fvSolution @@ -0,0 +1,84 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + alpha.air + { + max 0.9; + } + + p + { + solver GAMG; + tolerance 1e-06; + relTol 0.01; + smoother GaussSeidel; + } + + pFinal + { + solver GAMG; + tolerance 1e-06; + relTol 0; + smoother GaussSeidel; + } + + "(U|k|epsilon|omega).air" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "(U|k|epsilon|omega).airFinal" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "cloud:alpha.*" + { + solver GAMG; + tolerance 1e-06; + relTol 0.1; + smoother GaussSeidel; + } +} + +PIMPLE +{ + nOuterCorrectors 1; + nCorrectors 2; + momentumPredictor yes; + nNonOrthogonalCorrectors 0; + pRefCell 0; + pRefValue 0; + + residualControl + { + p 1.0e-05; + U.air 1.0e-04; + k.air 1.0e-05; + epsilon.air 1.0e-05; + omega.air 1.0e-05; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/residuals b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/residuals new file mode 100644 index 000000000..ff141da87 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/system/residuals @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object funcResiduals; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#includeEtc "caseDicts/postProcessing/numerical/residuals.cfg" + +fields ( + p + U.air + omega.air + k.air + cloud:alpha +); + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/U.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/U.air new file mode 100644 index 000000000..8468d8708 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/U.air @@ -0,0 +1,34 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volVectorField; + location "0"; + object U.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + walls + { + type noSlip; + } + frontAndBack + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/k.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/k.air new file mode 100644 index 000000000..3a71889ea --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/k.air @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object k.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.001; + +boundaryField +{ + walls + { + type kqRWallFunction; + value $internalField; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/nut.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/nut.air new file mode 100644 index 000000000..7f758fdf7 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/nut.air @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object nut.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0.04; + +boundaryField +{ + walls + { + type nutkWallFunction; + value $internalField; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/omega.air b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/omega.air new file mode 100644 index 000000000..f3b6d2c3b --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/omega.air @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object omega.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 100; + +boundaryField +{ + walls + { + type omegaWallFunction; + value $internalField; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/p b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/p new file mode 100644 index 000000000..5e2b4bee9 --- /dev/null +++ b/apps/OpenFOAM/run/incompressibleDenseParticleFluid/sedimentationBox/reference/zero/p @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type fixedFluxPressure; + gradient uniform 0; + value uniform 0; + } + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/Allclean b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/Allclean new file mode 100644 index 000000000..27e5698a3 --- /dev/null +++ b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/Allclean @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Run from this directory +cd "${0%/*}" || exit + +rm -rf case.foam +rm -rf [0-9]* +rm -rf wedge.msh +rm -rf constant/polyMesh +rm -rf dynamicCode/ +rm -rf log.* diff --git a/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/Allrun b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/Allrun new file mode 100644 index 000000000..79a8e3092 --- /dev/null +++ b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/Allrun @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +# Run from this directory +cd "${0%/*}" || exit 1 + +# Make OpenFOAM tools available. +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Helper to open case with Paraview. +touch case.foam + +# Copy initial conditions. +cp -avr zero/ 0/ + +# Generate compatible mesh. +gmsh -3 -format msh2 constant/wedge.geo + +# Increase precision to avoid wedge not planar warnings. +foamDictionary system/controlDict -entry writePrecision -set 12 +runApplication gmshToFoam constant/wedge.msh + +# Fall back to standard value to save disk space. +foamDictionary system/controlDict -entry writePrecision -set 6 + +# Fix patches for the present case. +boundary=constant/polyMesh/boundary +foamDictionary $boundary -entry entry0/front/type -set wedge +foamDictionary $boundary -entry entry0/back/type -set wedge +foamDictionary $boundary -entry entry0/top/type -set wall +foamDictionary $boundary -entry entry0/bottom/type -set wall +foamDictionary $boundary -entry entry0/radius/type -set wall + +# Check mesh after. +runApplication checkMesh +tail -5 log.checkMesh | head -2 + +# Run application. +runApplication jmakLaplacianFoam + +# Working with VTK files is better in general. +# runApplication foamToVTK diff --git a/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/constant/physicalProperties b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/constant/physicalProperties new file mode 100644 index 000000000..ebf7ee8c0 --- /dev/null +++ b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/constant/physicalProperties @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object physicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +R 8.31446261815324; + +rho 2600.0; +cp 1000.0; +kr 1.00; + +H1 4.76258755e+07; +n1 1.21655272e+01; +k1 4.27043658e-05; +E1 2.61501036e-02; + +H2 6.67911532e+07; +n2 1.22859147e+01; +k2 2.46341613e-04; +E2 5.06901697e+03; + +H3 8.50000000e+07; +n3 1.23000000e+01; +k3 2.00000000e-04; +E3 5.10000000e+03; + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/constant/wedge.geo b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/constant/wedge.geo new file mode 100644 index 000000000..0144991a0 --- /dev/null +++ b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/constant/wedge.geo @@ -0,0 +1,52 @@ +// Cylinder dimensions. +H = 6.0 * 0.0254; +R = 1.5 * 0.0254; + +// Number of cells on each direction. +nr = 20; +nz = 40; + +// Computed coordinates. +x0 = 0.0; +y0 = 0.0; + +x1 = x0 + R; +y1 = y0 + H; + +// Create base points. +Point(1) = {x0, y0, 0}; +Point(2) = {x1, y0, 0}; +Point(3) = {x1, y1, 0}; +Point(4) = {x0, y1, 0}; + +// Create base lines. +Line(1) = {1, 2}; +Line(2) = {2, 3}; +Line(3) = {3, 4}; +Line(4) = {4, 1}; + +// Create base plane. +Curve Loop(1) = {1, 2, 3, 4}; +Plane Surface(1) = {1}; + +// Rotate face to later have the wedge centered. +Rotate {{0, 1, 0}, {0, 0, 0}, -Pi/72} { Surface{1}; } + +// Structure mesh. +Transfinite Curve {1, -3} = nr Using Progression 0.900; +Transfinite Curve {2, -4} = nz Using Progression 1.000; +Transfinite Surface {1}; +Recombine Surface {1}; + +// Get volumetric wedge. +Extrude {{0, 1, 0}, {0, 0, 0}, Pi/36} { + Surface{1}; Layers{1}; Recombine; +} + +// Create entities. +Physical Surface("front") = {1}; +Physical Surface("back") = {21}; +Physical Surface("top") = {19}; +Physical Surface("bottom") = {12}; +Physical Surface("radius") = {16}; +Physical Volume("volume") = {1}; diff --git a/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/system/controlDict b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/system/controlDict new file mode 100644 index 000000000..dfcab3cbe --- /dev/null +++ b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/system/controlDict @@ -0,0 +1,54 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application jmakLaplacianFoam; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 64800; + +deltaT 10; + +writeControl adjustableRunTime; + +writeInterval 600; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +adjustTimeStep no; + +runTimeModifiable true; + +functions +{ +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/system/fvSchemes b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/system/fvSchemes new file mode 100644 index 000000000..fbe54c0e7 --- /dev/null +++ b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/system/fvSchemes @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default backward; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; +} + +laplacianSchemes +{ + default none; + laplacian(k,T) Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/system/fvSolution b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/system/fvSolution new file mode 100644 index 000000000..1af05553c --- /dev/null +++ b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/system/fvSolution @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(beta1|beta2|beta3|T)" + { + solver PCG; + preconditioner DIC; + tolerance 1.0e-06; + relTol 0; + } + + "(beta1|beta2|beta3|T)Final" + { + $beta1; + tolerance 1.0e-06; + relTol 0; + } +} + +PIMPLE +{ + nOuterCorrectors 2; + nCorrectors 1; + nNonOrthogonalCorrectors 0; + + residualControl + { + T 1.0e-06; + "beta*" 1.0e-05; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/T b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/T new file mode 100644 index 000000000..ac6e6d813 --- /dev/null +++ b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/T @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 0 0 1 0 0 0 ]; + +internalField uniform 299.9; + +boundaryField +{ + // Ongoing development based on this: www.cfd-online.com/Forums/openfoam/ + // ... 227900-temperature-dependent-heat-flux-condition.html + // TODO implement solidThermo to use externalWallHeatFluxTemperature. + + "(top|bottom|radius)" + { + name temperatureHeatFlux; + type codedMixed; + value $internalField; + refValue $internalField; + refGradient uniform 0; + valueFraction uniform 0; + + code + #{ + const scalar htc = 10.0; + const scalar Tinf = 300.0; + const scalar kappa = 1.0; + const scalarField& Tp(*this); + + this->refGrad() = htc * (Tinf - Tp) / kappa; + #}; + } + "(front|back)" + { + type wedge; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/beta1 b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/beta1 new file mode 100644 index 000000000..60f57db99 --- /dev/null +++ b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/beta1 @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object beta1; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 0 0 0 0 0 0 ]; + +internalField uniform 0.0; + +boundaryField +{ + "(radius|top|bottom)" + { + type zeroGradient; + } + "(front|back)" + { + type wedge; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/beta2 b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/beta2 new file mode 100644 index 000000000..f81d8c57e --- /dev/null +++ b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/beta2 @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object beta2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 0 0 0 0 0 0 ]; + +internalField uniform 0.0; + +boundaryField +{ + "(radius|top|bottom)" + { + type zeroGradient; + } + "(front|back)" + { + type wedge; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/beta3 b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/beta3 new file mode 100644 index 000000000..7dd6aea25 --- /dev/null +++ b/apps/OpenFOAM/run/jmakLaplacianFoam/cylinder/zero/beta3 @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object beta3; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 0 0 0 0 0 0 ]; + +internalField uniform 0.0; + +boundaryField +{ + "(radius|top|bottom)" + { + type zeroGradient; + } + "(front|back)" + { + type wedge; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/.gitignore b/apps/OpenFOAM/run/thermophysicalProps/.gitignore new file mode 100644 index 000000000..55633b4bd --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/.gitignore @@ -0,0 +1,2 @@ +# This file is manually provided in this case. +constant/thermophysicalProperties diff --git a/apps/OpenFOAM/run/thermophysicalProps/Allclean b/apps/OpenFOAM/run/thermophysicalProps/Allclean new file mode 100644 index 000000000..424e52b43 --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/Allclean @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +# Run from this directory +cd "${0%/*}" || exit + +rm -rf case.foam +rm -rf [0-9]* +rm -rf wedge.msh +rm -rf constant/polyMesh +rm -rf constant/thermophysicalProperties +rm -rf dynamicCode/ +rm -rf postProcessing/ +rm -rf log.* diff --git a/apps/OpenFOAM/run/thermophysicalProps/Allrun b/apps/OpenFOAM/run/thermophysicalProps/Allrun new file mode 100644 index 000000000..ede67b928 --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/Allrun @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +# Run from this directory +cd "${0%/*}" || exit 1 + +# Make OpenFOAM tools available. +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Helper to open case with Paraview. +touch case.foam + +# Copy initial conditions. +cp -avr zero/ 0/ + +# Generate compatible mesh. +gmsh -3 -format msh2 constant/wedge.geo + +# Increase precision to avoid wedge not planar warnings. +foamDictionary system/controlDict -entry writePrecision -set 12 +runApplication gmshToFoam constant/wedge.msh + +# Fall back to standard value to save disk space. +foamDictionary system/controlDict -entry writePrecision -set 6 + +# Fix patches for the present case. +boundary=constant/polyMesh/boundary +foamDictionary $boundary -entry entry0/front/type -set wedge +foamDictionary $boundary -entry entry0/back/type -set wedge +foamDictionary $boundary -entry entry0/walls/type -set wall + +# Check mesh after. +runApplication checkMesh +tail -5 log.checkMesh | head -2 + +# Run a certain number of iterations with constant properties. +foamDictionary system/controlDict -entry endTime -set 1000 +cp constant/water/thermophysicalProperties-2 constant/thermophysicalProperties + +# Initialize flow and remove incompatible field. +runApplication potentialFoam +rm -rf 0/phi + +# Run application. +runApplication $(getApplication) +mv log.rhoSimpleFoam log.solver.1 + +# Run initialized case with more complex properties. +foamDictionary system/controlDict -entry endTime -set 3000 +cp constant/water/thermophysicalProperties-1 constant/thermophysicalProperties +runApplication $(getApplication) +mv log.rhoSimpleFoam log.solver.2 diff --git a/apps/OpenFOAM/run/thermophysicalProps/constant/air/prepare.py b/apps/OpenFOAM/run/thermophysicalProps/constant/air/prepare.py new file mode 100644 index 000000000..ff0ebfbae --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/constant/air/prepare.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +""" Used for preparing thermophysicalProperties-2. """ +from sklearn.preprocessing import MinMaxScaler +import cantera as ct +import matplotlib.pyplot as plt +import numpy as np + +FORMAT = """\ + ( + {0:+.12e} + {1:+.12e} + {2:+.12e} + {3:+.12e} + {4:+.12e} + {5:+.12e} + {6:+.12e} + {7:+.12e} + ); +""" + +T = np.linspace(100, 3000, 1000) +air = ct.Solution("air.yaml") +sol = ct.SolutionArray(air, shape=T.shape) +sol.TP = T, None + +cp = sol.cp_mass +mu = sol.viscosity +kt = sol.thermal_conductivity + +cp_poly = np.polyfit(T, cp, deg=7) +mu_poly = np.polyfit(T, mu, deg=7) +kt_poly = np.polyfit(T, kt, deg=7) + +print(FORMAT.format(*cp_poly[::-1])) +print(FORMAT.format(*mu_poly[::-1])) +print(FORMAT.format(*kt_poly[::-1])) + + +def addplot(axk, n, u, p, name, loc=2): + t = T[T >= 300] + u = u[T >= 300] + v = np.polyval(p, t) + e = 100 * (u - v) / u + + scaler = MinMaxScaler() + scaler.fit(u.reshape(-1, 1)) + u = scaler.transform(u.reshape(-1, 1)) + v = scaler.transform(v.reshape(-1, 1)) + + axk[0].plot(t, u, "k:", label="Cantera") + axk[0].scatter(t[::n], v[::n], c="r", label="Polynomial") + axk[0].grid(linestyle=":") + axk[0].legend(loc=loc) + axk[0].set_ylabel(f"Property {name}") + + axk[1].plot(t, e, "k:") + axk[1].grid(linestyle=":") + axk[1].set_ylabel("Relative Error [%]") + + +plt.close("all") +plt.style.use("seaborn-white") +fig, ax = plt.subplots(3, 2, sharex=True) +addplot(ax[0], n=25, u=cp, p=cp_poly, name="cp") +addplot(ax[1], n=25, u=mu, p=mu_poly, name="mu") +addplot(ax[2], n=25, u=kt, p=kt_poly, name="kt") +plt.tight_layout() +plt.show() diff --git a/apps/OpenFOAM/run/thermophysicalProps/constant/air/thermophysicalProperties-1 b/apps/OpenFOAM/run/thermophysicalProps/constant/air/thermophysicalProperties-1 new file mode 100644 index 000000000..4b51cb1bc --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/constant/air/thermophysicalProperties-1 @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport sutherland; + thermo hConst; + equationOfState perfectGas; + specie specie; + energy sensibleInternalEnergy; +} + +mixture +{ + specie + { + molWeight 28.9; + } + thermodynamics + { + Cp 1005; + Hf 0; + } + transport + { + As 1.4792e-06; + Ts 116; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/constant/air/thermophysicalProperties-2 b/apps/OpenFOAM/run/thermophysicalProps/constant/air/thermophysicalProperties-2 new file mode 100644 index 000000000..5de69270d --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/constant/air/thermophysicalProperties-2 @@ -0,0 +1,74 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport polynomial; + thermo hPolynomial; + equationOfState perfectGas; + specie specie; + energy sensibleEnthalpy; +} + +mixture +{ + specie + { + molWeight 28.9; + } + thermodynamics + { + CpCoeffs<8> ( + 9.935844812015e+02 + -7.172194218206e-02 + 3.134503293205e-04 + 1.215400441772e-07 + -4.235424659599e-10 + 2.704616851596e-13 + -7.218584727836e-17 + 7.144078121623e-21 + ); + Sf 0; + Hf 0; + } + transport + { + muCoeffs<8> ( + -9.242771950306e-07 + 8.865121648114e-08 + -1.046733862477e-10 + 1.070156335986e-13 + -6.750838653617e-17 + 2.494675099820e-20 + -4.943884407586e-24 + 4.048862003544e-28 + ); + kappaCoeffs<8> ( + 1.008596328023e-02 + 4.015149597454e-05 + 7.296358601141e-08 + -1.034997536546e-10 + 7.264304124554e-14 + -2.830405796393e-17 + 5.789497162455e-21 + -4.842146506198e-25 + ); + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/constant/turbulenceProperties b/apps/OpenFOAM/run/thermophysicalProps/constant/turbulenceProperties new file mode 100644 index 000000000..ce821a9e9 --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/constant/turbulenceProperties @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + RASModel kEpsilon; + + turbulence on; + + printCoeffs on; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/constant/water/thermophysicalProperties-1 b/apps/OpenFOAM/run/thermophysicalProps/constant/water/thermophysicalProperties-1 new file mode 100644 index 000000000..e341b8c30 --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/constant/water/thermophysicalProperties-1 @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + properties liquid; + energy sensibleInternalEnergy; +} + +mixture +{ + H2O; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/constant/water/thermophysicalProperties-2 b/apps/OpenFOAM/run/thermophysicalProps/constant/water/thermophysicalProperties-2 new file mode 100644 index 000000000..70d2165dd --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/constant/water/thermophysicalProperties-2 @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState rhoConst; + specie specie; + energy sensibleInternalEnergy; +} + +mixture +{ + specie + { + molWeight 18.0; + } + thermodynamics + { + Cp 4182; + Sf 0; + Hf 0; + } + equationOfState + { + rho 1000; + } + transport + { + mu 0.001; + Pr 6.9; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/constant/water/thermophysicalProperties-3 b/apps/OpenFOAM/run/thermophysicalProps/constant/water/thermophysicalProperties-3 new file mode 100644 index 000000000..d43f5640d --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/constant/water/thermophysicalProperties-3 @@ -0,0 +1,88 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture pureMixture; + transport polynomial; + thermo hPolynomial; + equationOfState icoPolynomial; + specie specie; + energy sensibleEnthalpy; +} + +mixture +{ + specie + { + molWeight 18.0; + } + thermodynamics + { + CpCoeffs<8> ( + 9.85069e+03 + -4.86714e+01 + 1.37360e-01 + -1.27063e-04 + 0.00000e+00 + 0.00000e+00 + 0.00000e+00 + 0.00000e+00 + ); + Sf 0; + Hf 0; + } + equationOfState + { + // I need to check this! (seems) Probably broken! + rhoCoeffs<8> ( + 7.46025e+02 + 1.93017e+00 + -3.65471e-03 + 0.00000e+00 + 0.00000e+00 + 0.00000e+00 + 0.00000e+00 + 0.00000e+00 + ); + } + transport + { + muCoeffs<8> ( + 1.16947e-01 + -1.00532e-03 + 2.90283e-06 + -2.80572e-09 + 0.00000e+00 + 0.00000e+00 + 0.00000e+00 + 0.00000e+00 + ); + kappaCoeffs<8> ( + -7.10696e-01 + 7.18570e-03 + -9.29827e-06 + 0.00000e+00 + 0.00000e+00 + 0.00000e+00 + 0.00000e+00 + 0.00000e+00 + ); + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/constant/wedge.geo b/apps/OpenFOAM/run/thermophysicalProps/constant/wedge.geo new file mode 100644 index 000000000..386b81318 --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/constant/wedge.geo @@ -0,0 +1,88 @@ +// ----------------------------------------------------------------- +// pipe.geo +// ----------------------------------------------------------------- + +General.FltkTheme = "plastic"; +General.TextEditor = "nvim %s"; + +// ----------------------------------------------------------------- +// Parameters +// ----------------------------------------------------------------- + +// Total tube length. +length = 1.0; + +// Reactor tube radius. +radius = 0.005; + +// Wedge angle. +theta = 1 * Pi / 180; + +// Cell size over length. +size_length = 0.0010; + +// Cell characteristic size over radius. +size_radius = 0.0002; + +// Number of cells over length. +nl = 1 + Ceil(length / size_length); + +// Number of cells over radius. +nr = 1 + Ceil(radius / size_radius); + +// Progression factor over length. +prl = 1.0; + +// Progression factor over radius. +prr = 0.95; + +// ----------------------------------------------------------------- +// Construction +// ----------------------------------------------------------------- + +// Points over axis. +Point(1) = {0, 0, 0}; +Point(2) = {length, 0, 0}; + +// Points over radius. +Point(3) = {length, radius, 0}; +Point(4) = {0, radius, 0}; + +// Get lines. +Line(1) = {1, 2}; +Line(2) = {2, 3}; +Line(3) = {3, 4}; +Line(4) = {4, 1}; + +// Join path. +Line Loop(1) = {1, 2, 3, 4}; +Plane Surface(1) = {1}; + +// Structure on radius. +Transfinite Line {-4, 2} = nr Using Progression prr; + +// Structure on length. +Transfinite Line {1, -3} = nl Using Progression prl; + +// Structure surfaces. +Transfinite Surface {1}; +Recombine Surface {1}; + +// Rotate before extrusion. +Rotate {{1, 0, 0}, {0, 0, 0}, -Pi/72} { Surface{1}; } + +// Rotate-extrude and add inner volume. +ext[] = Extrude {{1, 0, 0}, {0, 0, 0}, Pi/36} { + Surface{1}; Layers{1}; Recombine; }; +Physical Volume("volume") = { ext[1] }; + +// Add physical boundaries. +Physical Surface("front") = {1}; +Physical Surface("back") = {21}; +Physical Surface("walls") = {17}; +Physical Surface("inlet") = {20}; +Physical Surface("outlet") = {13}; + +// ----------------------------------------------------------------- +// EOF +// ----------------------------------------------------------------- \ No newline at end of file diff --git a/apps/OpenFOAM/run/thermophysicalProps/system/controlDict b/apps/OpenFOAM/run/thermophysicalProps/system/controlDict new file mode 100644 index 000000000..e9ff84bbb --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/system/controlDict @@ -0,0 +1,85 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application rhoSimpleFoam; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 3000; + +deltaT 1; + +writeControl timeStep; + +writeInterval 100; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +graphFormat raw; + +runTimeModifiable true; + +functions +{ + #includeFunc residuals(p, U, k, epsilon, h) + #includeFunc patchFlowRate(patch=inlet, phi) + #includeFunc patchFlowRate(patch=outlet, phi) + weightAverageInlet + { + type surfaceFieldValue; + libs ( "libfieldFunctionObjects.so" ); + enabled yes; + writeControl writeTime; + log yes; + writeFields no; + select patch; + patch inlet; + operation average; + weightField phi; + fields ( p U T ); + } + weightAverageOutlet + { + type surfaceFieldValue; + libs ( "libfieldFunctionObjects.so" ); + enabled yes; + writeControl writeTime; + log yes; + writeFields no; + select patch; + patch outlet; + operation average; + weightField phi; + fields ( p U T ); + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/system/fvConstraints b/apps/OpenFOAM/run/thermophysicalProps/system/fvConstraints new file mode 100644 index 000000000..40db53bee --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/system/fvConstraints @@ -0,0 +1,24 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object fvConstraints; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +limitp +{ + type limitPressure; + + minFactor 0.1; + maxFactor 1.5; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/system/fvSchemes b/apps/OpenFOAM/run/thermophysicalProps/system/fvSchemes new file mode 100644 index 000000000..f8b324871 --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/system/fvSchemes @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + energy Gauss linearUpwind limited; + turbulence Gauss linearUpwind limited; + + div(phi,U) Gauss linearUpwind limited; + div(phi,(p|rho)) Gauss linearUpwind limited; + + div(phi,K) $energy; + div(phi,e) $energy; + div(phi,h) $energy; + + div(phi,omega) $turbulence; + div(phi,epsilon) $turbulence; + div(phi,k) $turbulence; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/system/fvSolution b/apps/OpenFOAM/run/thermophysicalProps/system/fvSolution new file mode 100644 index 000000000..4670ce720 --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/system/fvSolution @@ -0,0 +1,93 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + p + { + solver GAMG; + tolerance 1e-08; + relTol 0.05; + smoother GaussSeidel; + } + + Phi + { + $p; + } + + U + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1.0e-07; + relTol 0.1; + } + + "(e|h|k|omega|epsilon)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1.0e-07; + relTol 0.1; + } +} + +potentialFlow +{ + nNonOrthogonalCorrectors 10; +} + +SIMPLE +{ + nUCorrectors 2; + nNonOrthogonalCorrectors 0; + + consistent yes; + + residualControl + { + p 1.0e-05; + Ux 1.0e-06; + Uy 1.0e-06; + "(e|h)" 1.0e-07; + "(k|omega|epsilon)" 1.0e-05; + } +} + +relaxationFactors +{ + fields + { + p 0.3; + } + equations + { + U 0.7; + e 0.8; + h 0.8; + k 0.9; + omega 0.9; + epsilon 0.9; + } +} + +cache +{ + grad(U); +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/zero/T b/apps/OpenFOAM/run/thermophysicalProps/zero/T new file mode 100644 index 000000000..e0bf00e7f --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/zero/T @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 300.0; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + } + walls + { + type fixedValue; + value uniform 400.0; + } + "(front|back)" + { + type wedge; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/zero/U b/apps/OpenFOAM/run/thermophysicalProps/zero/U new file mode 100644 index 000000000..d7602ac1e --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/zero/U @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (1 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (1 0 0); + } + outlet + { + type pressureInletOutletVelocity; + value $internalField; + } + walls + { + type noSlip; + } + "(front|back)" + { + type wedge; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/zero/alphat b/apps/OpenFOAM/run/thermophysicalProps/zero/alphat new file mode 100644 index 000000000..1eb866c83 --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/zero/alphat @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + walls + { + type compressible::alphatWallFunction; + Prt 0.85; + value $internalField; + } + "(front|back)" + { + type wedge; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/zero/epsilon b/apps/OpenFOAM/run/thermophysicalProps/zero/epsilon new file mode 100644 index 000000000..523ccad3f --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/zero/epsilon @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 200; + +boundaryField +{ + inlet + { + type turbulentMixingLengthDissipationRateInlet; + mixingLength 0.005; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + walls + { + type epsilonWallFunction; + Cmu 0.09; + kappa 0.41; + E 9.8; + value $internalField; + } + "(front|back)" + { + type wedge; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/zero/k b/apps/OpenFOAM/run/thermophysicalProps/zero/k new file mode 100644 index 000000000..518e64684 --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/zero/k @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + inlet + { + type turbulentIntensityKineticEnergyInlet; + intensity 0.05; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + walls + { + type kqRWallFunction; + value $internalField; + } + "(front|back)" + { + type wedge; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/zero/nut b/apps/OpenFOAM/run/thermophysicalProps/zero/nut new file mode 100644 index 000000000..3a11dc301 --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/zero/nut @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + walls + { + type nutkWallFunction; + Cmu 0.09; + kappa 0.41; + E 9.8; + value $internalField; + } + "(front|back)" + { + type wedge; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/run/thermophysicalProps/zero/p b/apps/OpenFOAM/run/thermophysicalProps/zero/p new file mode 100644 index 000000000..475a4dbc2 --- /dev/null +++ b/apps/OpenFOAM/run/thermophysicalProps/zero/p @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325.0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + outlet + { + type fixedValue; + value $internalField; + } + walls + { + type zeroGradient; + } + "(front|back)" + { + type wedge; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/.gitignore b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/.gitignore new file mode 100644 index 000000000..1b8273ce3 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/.gitignore @@ -0,0 +1,5 @@ +# Helper to open in ParaView +*.foam + +processor*/s +VTK/ diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/.gitignore b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/.gitignore new file mode 100644 index 000000000..61da4ff44 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/.gitignore @@ -0,0 +1,15 @@ +# Any numbered (time) directory +[0-9]* + +# Mesh +polyMesh/ + +# Converted chemistry +constant/reactions +constant/speciesThermo + +# Logs +log.* + +# Post +VTK/* \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/Allclean b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/Allclean new file mode 100644 index 000000000..464c144b9 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/Allclean @@ -0,0 +1,11 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cleanCase + +rm -rf constant/reactions constant/speciesThermo 0/ + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/Allrun b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/Allrun new file mode 100644 index 000000000..8df3f3738 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/Allrun @@ -0,0 +1,22 @@ +#!/bin/sh +cd ${0%/*} || exit 1 + +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +touch case.foam + +cp -avr zero/ 0/ + +runApplication chemkinToFoam \ + chemkin/chem.inp chemkin/therm.dat chemkin/transportProperties \ + constant/reactions constant/speciesThermo + +runApplication blockMesh + +runApplication renumberMesh -overwrite + +runApplication decomposePar + +runApplication mpirun -np 2 foamRun -parallel + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/chemkin/chem.inp b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/chemkin/chem.inp new file mode 100644 index 000000000..0d9147242 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/chemkin/chem.inp @@ -0,0 +1,11 @@ +ELEMENTS + H O C N AR +END +SPECIE +C7H16 O2 N2 CO2 H2O +END +REACTIONS + C7H16 + 11O2 => 7CO2 + 8H2O 5.00E+8 0.0 15780.0! 1 + FORD / C7H16 0.25 / + FORD / O2 1.5 / +END diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/chemkin/therm.dat b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/chemkin/therm.dat new file mode 100644 index 000000000..acd597870 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/chemkin/therm.dat @@ -0,0 +1,23 @@ +THERMO ALL + 200.000 1000.000 6000.000 +C7H16 P10/85C 7.H 16. 0. 0.G 200.000 6000.000 1000. 1 + 2.04565203E+01 3.48575357E-02-1.09226846E-05 1.67201776E-09-9.81024850E-14 2 +-3.25556365E+04-8.04405017E+01 1.11532994E+01-9.49419773E-03 1.95572075E-04 3 +-2.49753662E-07 9.84877715E-11-2.67688904E+04-1.59096837E+01-2.25846141E+04 4 +O2 ATcT06O 2. 0. 0. 0.G 200.000 6000.000 1000. 1 + 3.45852381E+00 1.04045351E-03-2.79664041E-07 3.11439672E-11-8.55656058E-16 2 + 1.02229063E+04 4.15264119E+00 3.78535371E+00-3.21928540E-03 1.12323443E-05 3 +-1.17254068E-08 4.17659585E-12 1.02922572E+04 3.27320239E+00 1.13558105E+04 4 +N2 G 8/02N 2. 0. 0. 0.G 200.000 6000.000 1000. 1 + 2.95257637E+00 1.39690040E-03-4.92631603E-07 7.86010195E-11-4.60755204E-15 2 +-9.23948688E+02 5.87188762E+00 3.53100528E+00-1.23660988E-04-5.02999433E-07 3 + 2.43530612E-09-1.40881235E-12-1.04697628E+03 2.96747038E+00 0.00000000E+00 4 +CO2 L 7/88C 1O 2 0 0G 200.000 6000.000 1000. 1 + 0.46365111E+01 0.27414569E-02-0.99589759E-06 0.16038666E-09-0.91619857E-14 2 +-0.49024904E+05-0.19348955E+01 0.23568130E+01 0.89841299E-02-0.71220632E-05 3 + 0.24573008E-08-0.14288548E-12-0.48371971E+05 0.99009035E+01-0.47328105E+05 4 +H2O L 5/89H 2O 1 0 0G 200.000 6000.000 1000. 1 + 0.26770389E+01 0.29731816E-02-0.77376889E-06 0.94433514E-10-0.42689991E-14 2 +-0.29885894E+05 0.68825500E+01 0.41986352E+01-0.20364017E-02 0.65203416E-05 3 +-0.54879269E-08 0.17719680E-11-0.30293726E+05-0.84900901E+00-0.29084817E+05 4 +END diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/chemkin/transportProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/chemkin/transportProperties new file mode 100644 index 000000000..3eb55ed78 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/chemkin/transportProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "chemkin"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +".*" +{ + transport + { + As 1.67212e-6; + Ts 170.672; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/chemistryProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/chemistryProperties new file mode 100644 index 000000000..bc9e8fa7b --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/chemistryProperties @@ -0,0 +1,34 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object chemistryProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +chemistryType +{ + solver ode; +} + +chemistry on; + +initialChemicalTimeStep 1e-07; + +odeCoeffs +{ + solver seulex; + eps 0.05; +} + +#include "reactions" + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/cloudProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/cloudProperties new file mode 100644 index 000000000..c95ec2ee6 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/cloudProperties @@ -0,0 +1,231 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object cloudProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type sprayCloud; + +solution +{ + coupled true; + transient yes; + cellValueSourceCorrection on; + maxCo 0.3; + + sourceTerms + { + schemes + { + rho explicit 1; + U explicit 1; + Yi explicit 1; + h explicit 1; + radiation explicit 1; + } + } + + interpolationSchemes + { + rho cell; + U cellPoint; + mu cell; + T cell; + Cp cell; + kappa cell; + p cell; + } + + integrationSchemes + { + U Euler; + T analytical; + } +} + + +constantProperties +{ + T0 320; + + // place holders for rho0 and Cp0 + // - reset from liquid properties using T0 + rho0 1000; + Cp0 4187; + + constantVolume false; +} + + +subModels +{ + particleForces + { + sphereDrag; + } + + injectionModels + { + model1 + { + type coneInjection; + SOI 0; + massTotal 6.0e-6; + uniformParcelSize volume; + injectionMethod disc; + flowType flowRateAndDischarge; + dInner 0; + dOuter 1.9e-4; + duration 1.25e-3; + position (0 0.0995 0); + direction (0 -1 0); + parcelsPerSecond 20000000; + flowRateProfile table + ( + (0 0.1272) + (4.16667e-05 6.1634) + (8.33333e-05 9.4778) + (0.000125 9.5806) + (0.000166667 9.4184) + (0.000208333 9.0926) + (0.00025 8.7011) + (0.000291667 8.2239) + (0.000333333 8.0401) + (0.000375 8.8450) + (0.000416667 8.9174) + (0.000458333 8.8688) + (0.0005 8.8882) + (0.000541667 8.6923) + (0.000583333 8.0014) + (0.000625 7.2582) + (0.000666667 7.2757) + (0.000708333 6.9680) + (0.00075 6.7608) + (0.000791667 6.6502) + (0.000833333 6.7695) + (0.000875 5.5774) + (0.000916667 4.8649) + (0.000958333 5.0805) + (0.001 4.9547) + (0.00104167 4.5613) + (0.00108333 4.4536) + (0.001125 5.2651) + (0.00116667 5.2560) + (0.00120833 5.1737) + (0.00125 3.9213) + (0.001251 0.0000) + (1000 0.0000) + ); + + Cd constant 0.9; + + thetaInner constant 0.0; + thetaOuter constant 10.0; + + sizeDistribution + { + type RosinRammler; + Q 3; + min 1e-06; + max 0.00015; + d 0.00015; + n 3; + } + } + } + + dispersionModel none; + + patchInteractionModel standardWallInteraction; + + heatTransferModel RanzMarshall; + + compositionModel singlePhaseMixture; + + phaseChangeModel liquidEvaporationBoil; + + surfaceFilmModel none; + + atomisationModel none; + + breakupModel ReitzDiwakar; // ReitzKHRT; + + stochasticCollisionModel none; + + radiation off; + + standardWallInteractionCoeffs + { + type rebound; + } + + RanzMarshallCoeffs + { + BirdCorrection true; + } + + singlePhaseMixtureCoeffs + { + phases + ( + liquid + { + C7H16 1; + } + ); + } + + liquidEvaporationBoilCoeffs + { + enthalpyTransfer enthalpyDifference; + + activeLiquids ( C7H16 ); + } + + ReitzDiwakarCoeffs + { + solveOscillationEq yes; + Cbag 6; + Cb 0.785; + Cstrip 0.5; + Cs 10; + } + +/* + ReitzKHRTCoeffs + { + solveOscillationEq yes; + B0 0.61; + B1 40; + Ctau 1; + CRT 0.1; + msLimit 0.2; + WeberLimit 6; + } +*/ + TABCoeffs + { + y0 0; + yDot0 0; + Cmu 10; + Comega 8; + WeCrit 12; + } +} + + +cloudFunctions +{} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/combustionProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/combustionProperties new file mode 100644 index 000000000..3170a48a6 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/combustionProperties @@ -0,0 +1,25 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object combustionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +combustionModel PaSR; + +PaSRCoeffs +{ + Cmix 1.0; +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/fvModels b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/fvModels new file mode 100644 index 000000000..47e2266fe --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/fvModels @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object fvModels; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +buoyancyForce +{ + type buoyancyForce; +} + +clouds +{ + type clouds; + libs ("liblagrangianParcel.so"); +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/g b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/g new file mode 100644 index 000000000..51cd738d0 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/g @@ -0,0 +1,21 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 -9.81 0); + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/momentumTransport b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/momentumTransport new file mode 100644 index 000000000..1563363bd --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/momentumTransport @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object momentumTransport; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + model kEpsilon; + + turbulence on; + + printCoeffs on; +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/physicalProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/physicalProperties new file mode 100644 index 000000000..3a3d77358 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/constant/physicalProperties @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object physicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture multicomponentMixture; + transport sutherland; + thermo janaf; + energy sensibleEnthalpy; + equationOfState perfectGas; + specie specie; +} + +#include "speciesThermo" + +newFormat yes; + +defaultSpecie N2; + +liquids +{ + C7H16; +} + +solids +{} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-001.txt b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-001.txt new file mode 100644 index 000000000..bbaf7c5f3 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-001.txt @@ -0,0 +1,41 @@ +Courant Number mean: 0.00512384 max: 0.0262252 +deltaT = 1e-05 +Time = 0.01s + + +Solving 3-D cloud cloud +Cloud: cloud + Current number of parcels = 0 + Current mass in system = 0 + Linear momentum = (0 0 0) + |Linear momentum| = 0 + Linear kinetic energy = 0 + model1: + number of parcels added = 25000 + mass introduced = 6e-06 + Parcel fate (number, mass) + - escape = 0, 0 + - stick = 0, 0 + Temperature min/max = 0, 0 + Mass transfer phase change = 6e-06 + D10, D32, Dmax (mu) = 0, 0, 0 + Liquid penetration 95% mass (m) = 0 + +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +smoothSolver: Solving for Ux, Initial residual = 0.000576666, Final residual = 6.37338e-08, No Iterations 2 +smoothSolver: Solving for Uy, Initial residual = 0.000895098, Final residual = 9.10718e-08, No Iterations 2 +smoothSolver: Solving for Uz, Initial residual = 0.000574251, Final residual = 6.34093e-08, No Iterations 2 +DILUPBiCGStab: Solving for C7H16, Initial residual = 0.000107282, Final residual = 4.84689e-07, No Iterations 1 +DILUPBiCGStab: Solving for O2, Initial residual = 0.000127335, Final residual = 8.02168e-07, No Iterations 1 +DILUPBiCGStab: Solving for CO2, Initial residual = 0.000127334, Final residual = 8.0212e-07, No Iterations 1 +DILUPBiCGStab: Solving for H2O, Initial residual = 0.000127334, Final residual = 8.0212e-07, No Iterations 1 +DILUPBiCGStab: Solving for h, Initial residual = 0.00012788, Final residual = 7.99041e-07, No Iterations 1 +GAMG: Solving for p, Initial residual = 0.778826, Final residual = 0.00324568, No Iterations 1 +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +time step continuity errors : sum local = 3.45127e-08, global = -1.99329e-10, cumulative = -0.00100161 +GAMG: Solving for p, Initial residual = 0.00698937, Final residual = 8.71157e-07, No Iterations 15 +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +time step continuity errors : sum local = 4.27386e-12, global = -2.18867e-12, cumulative = -0.00100161 +smoothSolver: Solving for epsilon, Initial residual = 0.000810639, Final residual = 1.16387e-07, No Iterations 2 +smoothSolver: Solving for k, Initial residual = 0.000740307, Final residual = 2.47217e-07, No Iterations 2 +ExecutionTime = 18106.7 s ClockTime = 18309 s \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-002.txt b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-002.txt new file mode 100644 index 000000000..243ebb8ff --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-002.txt @@ -0,0 +1,41 @@ +Courant Number mean: 0.00511292 max: 0.0261267 +deltaT = 1e-05 +Time = 1.000000e-02s + + +Solving 3-D cloud cloud +Cloud: cloud + Current number of parcels = 0 + Current mass in system = 0 + Linear momentum = (0 0 0) + |Linear momentum| = 0 + Linear kinetic energy = 0 + model1: + number of parcels added = 25000 + mass introduced = 6e-06 + Parcel fate (number, mass) + - escape = 0, 0 + - stick = 0, 0 + Temperature min/max = 0, 0 + Mass transfer phase change = 6e-06 + D10, D32, Dmax (mu) = 0, 0, 0 + Liquid penetration 95% mass (m) = 0 + +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +smoothSolver: Solving for Ux, Initial residual = 0.0005696, Final residual = 7.02081e-08, No Iterations 2 +smoothSolver: Solving for Uy, Initial residual = 0.000837985, Final residual = 2.20101e-07, No Iterations 2 +smoothSolver: Solving for Uz, Initial residual = 0.000566344, Final residual = 1.39123e-07, No Iterations 2 +DILUPBiCGStab: Solving for C7H16, Initial residual = 0.000107216, Final residual = 7.83175e-07, No Iterations 1 +DILUPBiCGStab: Solving for O2, Initial residual = 0.000127254, Final residual = 7.09548e-08, No Iterations 1 +DILUPBiCGStab: Solving for CO2, Initial residual = 0.000127251, Final residual = 7.09465e-08, No Iterations 1 +DILUPBiCGStab: Solving for H2O, Initial residual = 0.000127251, Final residual = 7.09465e-08, No Iterations 1 +DILUPBiCGStab: Solving for h, Initial residual = 0.000127724, Final residual = 7.05719e-08, No Iterations 1 +GAMG: Solving for p, Initial residual = 0.776878, Final residual = 0.00726726, No Iterations 1 +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +time step continuity errors : sum local = 7.07284e-08, global = -5.95135e-10, cumulative = -0.00082994 +GAMG: Solving for p, Initial residual = 0.0152238, Final residual = 9.73177e-07, No Iterations 18 +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +time step continuity errors : sum local = 4.50316e-12, global = -2.17634e-12, cumulative = -0.00082994 +smoothSolver: Solving for epsilon, Initial residual = 0.000810935, Final residual = 2.76422e-07, No Iterations 2 +smoothSolver: Solving for k, Initial residual = 0.000740611, Final residual = 4.90878e-07, No Iterations 2 +ExecutionTime = 9476.92 s ClockTime = 9562 s \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-004.txt b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-004.txt new file mode 100644 index 000000000..a78b6bba6 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-004.txt @@ -0,0 +1,41 @@ +Courant Number mean: 0.00514474 max: 0.0264202 +deltaT = 1e-05 +Time = 1.000000e-02s + + +Solving 3-D cloud cloud +Cloud: cloud + Current number of parcels = 0 + Current mass in system = 0 + Linear momentum = (0 0 0) + |Linear momentum| = 0 + Linear kinetic energy = 0 + model1: + number of parcels added = 25000 + mass introduced = 6e-06 + Parcel fate (number, mass) + - escape = 0, 0 + - stick = 0, 0 + Temperature min/max = 0, 0 + Mass transfer phase change = 6e-06 + D10, D32, Dmax (mu) = 0, 0, 0 + Liquid penetration 95% mass (m) = 0 + +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +smoothSolver: Solving for Ux, Initial residual = 0.00056688, Final residual = 7.72116e-08, No Iterations 2 +smoothSolver: Solving for Uy, Initial residual = 0.000763083, Final residual = 2.36659e-07, No Iterations 2 +smoothSolver: Solving for Uz, Initial residual = 0.00056856, Final residual = 1.47974e-07, No Iterations 2 +DILUPBiCGStab: Solving for C7H16, Initial residual = 0.000108125, Final residual = 8.12227e-07, No Iterations 1 +DILUPBiCGStab: Solving for O2, Initial residual = 0.000127764, Final residual = 7.58142e-08, No Iterations 1 +DILUPBiCGStab: Solving for CO2, Initial residual = 0.000127761, Final residual = 7.58046e-08, No Iterations 1 +DILUPBiCGStab: Solving for H2O, Initial residual = 0.000127761, Final residual = 7.58046e-08, No Iterations 1 +DILUPBiCGStab: Solving for h, Initial residual = 0.000128244, Final residual = 7.53497e-08, No Iterations 1 +GAMG: Solving for p, Initial residual = 0.799896, Final residual = 0.00650308, No Iterations 1 +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +time step continuity errors : sum local = 6.20315e-08, global = -5.83113e-10, cumulative = -0.000831638 +GAMG: Solving for p, Initial residual = 0.0158136, Final residual = 6.57102e-07, No Iterations 21 +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +time step continuity errors : sum local = 2.57687e-12, global = 1.16623e-12, cumulative = -0.000831638 +smoothSolver: Solving for epsilon, Initial residual = 0.000809511, Final residual = 3.06236e-07, No Iterations 2 +smoothSolver: Solving for k, Initial residual = 0.000740066, Final residual = 5.36329e-07, No Iterations 2 +ExecutionTime = 7382.02 s ClockTime = 7420 s \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-008.txt b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-008.txt new file mode 100644 index 000000000..f7eb7b3f5 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-008.txt @@ -0,0 +1,41 @@ +Courant Number mean: 0.00514553 max: 0.0264479 +deltaT = 1e-05 +Time = 1.000000e-02s + + +Solving 3-D cloud cloud +Cloud: cloud + Current number of parcels = 0 + Current mass in system = 0 + Linear momentum = (0 0 0) + |Linear momentum| = 0 + Linear kinetic energy = 0 + model1: + number of parcels added = 25000 + mass introduced = 6e-06 + Parcel fate (number, mass) + - escape = 0, 0 + - stick = 0, 0 + Temperature min/max = 0, 0 + Mass transfer phase change = 6e-06 + D10, D32, Dmax (mu) = 0, 0, 0 + Liquid penetration 95% mass (m) = 0 + +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +smoothSolver: Solving for Ux, Initial residual = 0.000567342, Final residual = 2.38389e-07, No Iterations 2 +smoothSolver: Solving for Uy, Initial residual = 0.000759082, Final residual = 3.57869e-07, No Iterations 2 +smoothSolver: Solving for Uz, Initial residual = 0.000568911, Final residual = 2.54038e-07, No Iterations 2 +DILUPBiCGStab: Solving for C7H16, Initial residual = 0.000108079, Final residual = 4.94265e-08, No Iterations 1 +DILUPBiCGStab: Solving for O2, Initial residual = 0.000127839, Final residual = 9.32456e-08, No Iterations 1 +DILUPBiCGStab: Solving for CO2, Initial residual = 0.000127835, Final residual = 9.32339e-08, No Iterations 1 +DILUPBiCGStab: Solving for H2O, Initial residual = 0.000127835, Final residual = 9.32339e-08, No Iterations 1 +DILUPBiCGStab: Solving for h, Initial residual = 0.000128317, Final residual = 9.25131e-08, No Iterations 1 +GAMG: Solving for p, Initial residual = 0.801145, Final residual = 0.00926162, No Iterations 1 +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +time step continuity errors : sum local = 8.83367e-08, global = -6.02005e-10, cumulative = -0.000929659 +GAMG: Solving for p, Initial residual = 0.0227563, Final residual = 6.19597e-07, No Iterations 23 +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +time step continuity errors : sum local = 2.39959e-12, global = 1.02923e-12, cumulative = -0.000929659 +smoothSolver: Solving for epsilon, Initial residual = 0.000809728, Final residual = 5.51909e-07, No Iterations 2 +smoothSolver: Solving for k, Initial residual = 0.000740236, Final residual = 8.91977e-07, No Iterations 2 +ExecutionTime = 4553.66 s ClockTime = 4587 s \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-016.txt b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-016.txt new file mode 100644 index 000000000..41fd54630 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-016.txt @@ -0,0 +1,41 @@ +Courant Number mean: 0.00514828 max: 0.0264753 +deltaT = 1e-05 +Time = 1.000000e-02s + + +Solving 3-D cloud cloud +Cloud: cloud + Current number of parcels = 0 + Current mass in system = 0 + Linear momentum = (0 0 0) + |Linear momentum| = 0 + Linear kinetic energy = 0 + model1: + number of parcels added = 25000 + mass introduced = 6e-06 + Parcel fate (number, mass) + - escape = 0, 0 + - stick = 0, 0 + Temperature min/max = 0, 0 + Mass transfer phase change = 6e-06 + D10, D32, Dmax (mu) = 0, 0, 0 + Liquid penetration 95% mass (m) = 0 + +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +smoothSolver: Solving for Ux, Initial residual = 0.00056685, Final residual = 3.24748e-07, No Iterations 2 +smoothSolver: Solving for Uy, Initial residual = 0.000756055, Final residual = 5.11917e-07, No Iterations 2 +smoothSolver: Solving for Uz, Initial residual = 0.000569206, Final residual = 2.62157e-07, No Iterations 2 +DILUPBiCGStab: Solving for C7H16, Initial residual = 0.000108268, Final residual = 7.22218e-08, No Iterations 1 +DILUPBiCGStab: Solving for O2, Initial residual = 0.000127923, Final residual = 1.38909e-07, No Iterations 1 +DILUPBiCGStab: Solving for CO2, Initial residual = 0.000127919, Final residual = 1.38893e-07, No Iterations 1 +DILUPBiCGStab: Solving for H2O, Initial residual = 0.000127919, Final residual = 1.38893e-07, No Iterations 1 +DILUPBiCGStab: Solving for h, Initial residual = 0.0001284, Final residual = 1.37822e-07, No Iterations 1 +GAMG: Solving for p, Initial residual = 0.801663, Final residual = 0.0101474, No Iterations 1 +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +time step continuity errors : sum local = 9.66584e-08, global = -5.71559e-10, cumulative = -0.000957086 +GAMG: Solving for p, Initial residual = 0.0250552, Final residual = 6.8541e-07, No Iterations 23 +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +time step continuity errors : sum local = 2.64003e-12, global = 1.12017e-12, cumulative = -0.000957086 +smoothSolver: Solving for epsilon, Initial residual = 0.000809676, Final residual = 7.37092e-07, No Iterations 2 +smoothSolver: Solving for k, Initial residual = 0.000740202, Final residual = 1.00946e-07, No Iterations 3 +ExecutionTime = 2493.41 s ClockTime = 2533 s \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-032.txt b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-032.txt new file mode 100644 index 000000000..f510530b3 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/cores-032.txt @@ -0,0 +1,41 @@ +Courant Number mean: 0.00516019 max: 0.0264553 +deltaT = 1e-05 +Time = 1.000000e-02s + + +Solving 3-D cloud cloud +Cloud: cloud + Current number of parcels = 0 + Current mass in system = 0 + Linear momentum = (0 0 0) + |Linear momentum| = 0 + Linear kinetic energy = 0 + model1: + number of parcels added = 25000 + mass introduced = 6e-06 + Parcel fate (number, mass) + - escape = 0, 0 + - stick = 0, 0 + Temperature min/max = 0, 0 + Mass transfer phase change = 6e-06 + D10, D32, Dmax (mu) = 0, 0, 0 + Liquid penetration 95% mass (m) = 0 + +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +smoothSolver: Solving for Ux, Initial residual = 0.000564608, Final residual = 3.355e-07, No Iterations 2 +smoothSolver: Solving for Uy, Initial residual = 0.000745463, Final residual = 5.35465e-07, No Iterations 2 +smoothSolver: Solving for Uz, Initial residual = 0.00056703, Final residual = 2.72796e-07, No Iterations 2 +DILUPBiCGStab: Solving for C7H16, Initial residual = 0.000108278, Final residual = 7.38095e-08, No Iterations 1 +DILUPBiCGStab: Solving for O2, Initial residual = 0.000127873, Final residual = 1.40838e-07, No Iterations 1 +DILUPBiCGStab: Solving for CO2, Initial residual = 0.00012787, Final residual = 1.40822e-07, No Iterations 1 +DILUPBiCGStab: Solving for H2O, Initial residual = 0.00012787, Final residual = 1.40822e-07, No Iterations 1 +DILUPBiCGStab: Solving for h, Initial residual = 0.00012835, Final residual = 1.39826e-07, No Iterations 1 +GAMG: Solving for p, Initial residual = 0.804277, Final residual = 0.0140132, No Iterations 1 +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +time step continuity errors : sum local = 1.32976e-07, global = -3.74633e-11, cumulative = 0.000498176 +GAMG: Solving for p, Initial residual = 0.0356403, Final residual = 8.32679e-07, No Iterations 17 +diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 +time step continuity errors : sum local = 3.11975e-12, global = 1.15516e-12, cumulative = 0.000498176 +smoothSolver: Solving for epsilon, Initial residual = 0.000809478, Final residual = 7.50461e-07, No Iterations 2 +smoothSolver: Solving for k, Initial residual = 0.000740144, Final residual = 1.02642e-07, No Iterations 3 +ExecutionTime = 1942.56 s ClockTime = 1978 s \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/efficiency.dat b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/efficiency.dat new file mode 100644 index 000000000..27f620738 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/efficiency.dat @@ -0,0 +1,6 @@ +1 18309 +2 9562 +4 7420 +8 4587 +16 2533 +32 1978 diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/plot.jl b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/plot.jl new file mode 100644 index 000000000..daab6851f --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/plot.jl @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +using CairoMakie +using DelimitedFiles: readdlm + +data = readdlm("efficiency.dat") +proc = data[:, 1] +time = data[:, 2] ./ 3600 + +fig = let + f = Figure(size = (600, 400)) + ax = Axis(f[1, 1]) + scatter!(ax, proc, time) + ax.xlabel = "Number of processors" + ax.ylabel = "Wall time [h]" + xlims!(ax, 0, 35) + ylims!(ax, 0, 6) + f +end + +save("results.png", fig) diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/results.png b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/results/results.png new file mode 100644 index 0000000000000000000000000000000000000000..4aaac576687765ad3d392dad547a572c6cfe7a54 GIT binary patch literal 22897 zcmeIabySya*Dd-p!6Ga~X%!R|6a)kb2}P6=M5ILtk?sZ+R1^gT0i_j?lI~Uv1SF&- zrMtV&ynWvNe&6}y?D6e!_BiK^eKyY+@Cd)Vu4~0ybIo->m6w&=wf*3B5{a}+>av6a ziL^PHMB2nez7fC4f4EZ#Kepb!Dk(u)C;kgBi1sCsm`G9*qSx($N80S2lx9N~*5!Pz z@{&`L$Fo?AesZR@rQbsRIjSKlre0NzJ|Q!cKJT1jbnQ^g>>2v_?wXX0goe25Co(dX zP8eVG^mwGYfkr*%f~Y@f8}rMc-uBiG#^=BIb9dauSHxs%C!$4>)I|t zPMl+XF>HMs^U4>Il`pT4D_-)VTdY%*6Iz-0!t8$7TX5>FeyCK`ZGIW-)r9O826s7; z)fx9~d&J1Ymg=I%3YW*;zklyF+Oga|FFc=9^@xi2)eg@5)1S9(Ad!3&{)pPGOqPhu z)+sKJ7p>zD@(K!5l^V;VSshn73uaQhokw0tGDzJMB$4iK-Zxe6Gu)8ixHK3oPEMm~ z*O_=rwKLye6`*@P#b zQXjq~9e8%I$5)O)$YG}Xow(~v1mjU5Cal$ai${hvky6a=1#``YRYLP43ykOOCjLCw zL}s$u;qskU-|1!dk?9w>xu(yhH-3oPeWjK(T9w2uiR3sfPI--b(r}L1?Y~IgSt7D# z9#A4RuuMTBCExK)cxlRR+4D-WGUPm;`$Van%T&ALxO0DELqh{@xW9t0gHFI|pgF@( ziuvihoI+*4xrJIHULQoDxyM6flhm>j^Yfhss^3XfiOnadX0ZE~KBwd7@?-B=mf4&6{rmT&rKPyI zxS^q;Nd0%qQ`H9_t*;r^#<#oO3OvMfqNEwrcLZ7E}zDKhNMXwlS+a&(@DOXW+x@ zOG)e7nMd-*3pZ`udHL2kY-Z#>3#tzavGIwy?Cujk4tqPn6-@5l9cWr>ELyWJdwtw> zxuxUTvu7qnt8)_in@Ob0(#&MqcD_uRMzT)Kbt(H}PKD*8T)(>m5X)*Q|nzMtk zh?8rrFEy@DGOnK)q$O3_c!IP$6rCH!$EhAI0wmdH4Ff$O@j|IAXvy)8wiOcGe zOo#x_;BjI-Uv4bY*^6hIKTM8GvK;;2-~X3e0lzB_q|AiG*wLu^pupzTFY#q_hkg}B zW*-}Tij5aLOzs$bF`jR=+;qRl;!^IMdg7h(KZQ}sbOpmj(yb9Ed!KV4af%=`O>ijo!=cmM>1d-K@WfMB4tGX++e&F}f;e{869uGVi=_ zQT|%$6PjN8BP3Gz{cXhzJtF$24DMCfr2ct8)8SHJW7*yZ!`mK&<6KtDnk#8~EIL!Z zWh~NeC6SKVJxq@Nk>1~Ka(B$)cTMgG!JW9q*YJsPt|d3dmGF#=+10sFr>WAsv0Ovp zetVG|bq*Q}4Gzct3OyLN@bit7#WF#>8V-X|At#&c`$HTrQ_USe&Tvhs@SY+K+cpse zjkjU;ScHele*&HtF7^dUc~97$GgztSXp~+h84~C4*eD{NtyAhlC5C|XK_=+Rl`HLe zw}KA&TGW3Pa#<=a^PjgLks$AU?kqXNozEV27*Dh1PhR3hA2h?nSjSH`c6NDMl0IWN+}317 zP1T||C9h(&_?H{|@)4c`B$B+{_7$IBUfk|#Zl`@qU%!4m6O;CE+;}P*EE-5P?5kgp$|MAS?(Xx6TmT}jC(@gF!uS9XZ{h2pMafo;1 ziO5Rl@#x^1UUT8KNpIWK`OYVd6wDvhvc|-vuN3o|v}W5+_aSA?4L5QQstkOPW=+$p z2)xeD1UCgfP0mQ`p+8=uaPmsG_RGMQp7zP7;(JDJn7vb3<>zHD;shDinf z92!eO9V>m6=f~CaY)1L}gQv?*Bt2&k%AM}EI-=Dd7#NuOlHgi1qB6F)xepPGj|`YuxcSr!vLhDN|B@-``+r?7}4SG>tYqRKe0YH>yC3_hQwfQQHjk6%%XGMmjg4ckmj$IL zm-kxW=G@3A6JyLOoJ{>>qb+lSx!nsi)YQ~iePd%|soe{d?d|Q&&CQXnx!tW2Uvkop zw&wJQE~ka9evFLNneMA#>}!tnQmd0#uDW?(Xn6S0p+oWbiWBTh$-=ebZzNoaQaCK> zC5>dBl$n{ClVktmCG*4N`76=2z)L4MIT;14?h>gVAH@Oq=w4j)&Ye5X&dy3oO4ioa z#2@YNzOdtbIlM4)i#JFk-_E=y4IXubshtV=Pw0H%%|a*pRN!pVk@qh-H{HZ$lfQFa zU-R?x8*fts=9v8U=FFWbf&IWkRq{Xd$=PHA&))v(A?G}#*wUJJ_t*QsKG~r72&cGq zyoX5;c~zX;TX<>UL{k1#qQV>_5y*oZKz3DoxCbfoNX$zS@pJd;VhA*uUMs7XY4kg#gduOb z^1L@4zs2uVU4S2E_tezX^JCd}8Z~TX9HbFYboNfs7E=`yXD8qtwwBr5?}Tz?5MNTn zR)E|eG=Lw)J2<87gz@Pf;?oqqtav_y8kp@|gPLiAN}3+-qQ!N6RVaK99C*Sl`AfEW zH{f@`3^F!J=<)+CE`a1u%hc}p=d0cS`}_YdSK!$ha?^s@23Ur3_o0r<4pcCxBT+sK zOdV@e0Yy%;@mdHS8UTa;c;E3vWR6TDe)tLkhA+cr)VcQNTRQhCt51GEWcoMgU+|{7 zMkT!P$IZ6Gc|Kg!Z7U^1@XSdVS*hny@&HaPm%*rj$5dmv!-;>xFe-}+Q}4-(jd+)z z$~nD%_pY%uR7$Q37n(H`tSP6v4Mk6a+y>bOv!36PU&`QAXiaqz- zy+NzooSdB4*y91^N0AQdCbjC+Ir=M_;-hK@rCDq1>Rw;jw^sG+QCxQgpmbST8BV~E z@TsF`c6PQu#8#6xsG#%lAqqU}7`;w&x`9TbN|B56JcX=Wb#*mSE6mN!_4V~3TLp2w zl}2!rl9CD&b|#V&;-#U1!EttWc1}(?#K~CPNMT{&$B!RlVvZr*73SvV8u7M7%P}H3 z82?U=@FqFLaGmnO4kR&)(pNq+qZ{Jc4bJpsCm>a*t$U_WW;%)^NBb) zf>4{V@KZx$;|jgBef#zmdKW0O`X0x%q7(|B7N{a?Ub}WpS2v1jq~MvSXHZ~ZS$TN@ ztz!n@hBT|9ipp_v$0XdnzyE%b_Ub6)#}4a84Q{=k2hQHDMnYQFc9HwNcr=1uGBGxG zaBfmc9gl`YhtQ1xj_57(R{8_(_n&p9XB#4;WKh3$?G=%ykrGW!IXOA!^+xIiWKY!B z)sYvs$K%Pfv$Ijt<>m_D`G0Mn`@nTVIdP>Xpm49)LMNqbcCGCBqe6tWcq{%8ZJIQn zLmJ3hS)WC?LmiI{4XV%+Cx;y`hL95$b*zc0 z6>$=1BBMeB``8|*6fY|<80mGs;`u=y_M!*``Wf;qhul|}=S9Y{yEAj*yEV5QzVzI# z2!=;GbF8U~;8LpjMR7W+R3< zg{h0BBYgt0Ba(NErX*mnhy2>Z;OO+D`?`|S>P)oAsZ*!gI25t05+__m&*}X{X8!K9(EZxaFT{0ik#P-mG3izL zygqry(SY*RKE9&2BCamju>KR^Oe$BNBg{}eJ>qscL^jN2X^;RwWGW|#QY$m*h}%S8 zkm*>==c%cw)wz}=n9pZzobI--4pqDJd>ga7I0b*tFG)uFGq)uk5_m!4SW1a(dPc@6 zwak<5W+n8tF`@{1D_2jFbH9~_lN>+JKM?Nb6Nu9@={?<|eevSAWbH4hzek4Z<9+}A zTk=l8kX_7zV4k*B;;d8&xRXG`L|QnBlCs9^u-3Z3=QH?2*XyFZ=ZQB{x=?)EH-3*# zDqPy3wNNZ6vh?eY7r)+6T`brE$Mv<9?ufM9uGUdF|l@ffPnk%iB%IM}DIu z4{a;es_L~kf9n`-*Y2o&DSnc+m37b-dvX>otV~x`wUpzYt8-SiXtVnbflF%FguC3Y z%pq!YCWXZv#f&R|$YQS#)m-IVeOdB5SzDalFD^Fr_rJHMsl7cE0ps_`6G2&yfO5UG zx6*of(lC0egcaw<$>NHNwPk)MM1E2O^<_1l#`VvX+fvCQrY+43+Pe^3LVLN4E`G51 z6>+=k2b+K2Kt`8b;N^d%ce#}nHu9iU>&7m6kVMt*>>c^>L4kfB9CrWmHnIQe_ulc( zGaL z@Qdcn2GJG4{M>^ZuwL60i$$|Rx*-L&p~ypMA8)R2Xqb!FTD=E0hOgC3oFxsP+nagB z&FstLU5e4N3GwkKjvvqIdUk>Vb=nS&>|4X_-QFT=U~_)->!*&9-Q{Fu<}lhv5Xa5Gw_1>)D2a<*__sb43MwX)H=98e<)HOBNkZbeTmWCHYu)*Pnm03 zf@Xg{9npiaAG;a5S<4Z?H5aiQrrf0;YOgoal(IaMCTD4BN#046ij=MkUoLv?Pf*L^ za5t+KCDX8Nv))#T3RwQ7&rX2li!>V7H8fT^*QYp5QH#I7=qbRvhNA`+-bY6E08$i! z3%z>vs&5dCB>ePII(KGw?#grBV2?v!zFL4geC>AKSj2+}hD3mRPRniFoIcrI!uFR` z)xIK3E=~?Z&-sG_Ap6h5NHSQ3$7LTrKm248{U_9yYHhu#nNr7L)AG$D4t8NFFL!KrqfvsBB=T z1cNBh_vX&lod;h2Av`Wc>LfX^SHLN?{bJcD4cTOa-_)V9C;hrI!Vxk0_v_oYZ|e)* z>u>51mPuz2*?@l}y&2lt+t)x@vhlzmF8uUyqUgk`?G?)gb+IRycnDP(9fFtj%rD9H zdDr!M<-#dHkgc29h$ofzv86>IFF=%~4q(_!$<9j`$|!6lDn_fxGcR=I{^$%m7Q z3PC`>IxI=#bNvwO25L#V6gMJ_g)3h^N#4@ZqF)iXPi$eOU&M7dA#4A>eWM=WdJPr{ zC&8NG%hm{#=h|+ug)!SA$4dVGl>teSxQ`!Osgq#m)zk150N7F;E@pQ;plgRH&jGQ8 zO4~w9obEBzT!-trLG1_Up2LhPDYw5Nf6PynbFPo*i^L};uC>n>X1Qq|#LYaxn#RY) zEzOO#fP+v{%5c-X-CO2Iq)Kt}Xe245-6r_E*C=6Fa_2|WOBh{OT-W+tiMGQiV$%7$ zSdROlCre9Yoj}|p>bkCUGul>9;sF7PfO&9JX#`P*fDLyaSy-xaU7MzGu*P8w99YJ= ztRj%=tG}yU=FpyKr!H}Y*NKsfKcQ&DeRpISt}IM~g<#&C#fyOQ-mgdF5^i~{2q>WP zyea+|pl(qrN=9E-YDq4~-}|~~exbX>d%cUMh^ScS$L`&|`$I2{*&PUewcrU6lXk*9 zjs~c6!8g2;Omhc6RMPZY87pEFa*w&GVm_z#QnE^nY3EpHQ3hcAmEwlGGQQXWn(=KU* z&%K3`2_ZciLb0s)R+@PU76tgi<=-o+qzj=dqvxQ{rRIvK>n1Jl-yj05}|#*^rw7FKcd&+ zcjX0o9mLHwH#ehxU>1LT{rYtP|F+k%(Txde%9@(ONT9^s-AGXNE7d_4Y;dRccs<%I zT3T8F;2IhsK-yXis)v(Ir{JgtxDRG`U|t)n#E$(Z!Io5zt>h_wkp8WCX9SfPrO-?@ z^AoyM&?3kzlj2*M5g|DJ8ktt$nQPG^tH<3Z{F0oAg#=5{){yty#$Z{`9Hi!8bXXyd z+IQkcU1Q_&Hw0v=cSjhdi^Mb1)34vSflh~-NseyNj?8xZ_fb(ty@~Cf*=sK(zA$R) z>WKWq?Cw>yua&430jMY(5nSAT>!!0f96Ua4>s6e1SrerL1BZ%37(y4>) zdswCI`WbC!G`-|NwEKb$*0Z=cRDCgMya*=8C%yr;* z8(->BXv=TKLrr%c4uuKt`ix-t6l?=u=XOWe>&03)l~R0YKw3ZKo3> zD5`nQ$(dR?qMeD}P!Weps?KP022MSUJH7P$z^?+L)Y<#oiL5im`pl~KCK`RW^X?XxAaUU*7Fa7pJYQm|;L0UzE2yoy)g>iuenFH}G zZCfGwo)>x?mhQ0OV@;x)344tEuY8}HzqN!l&1!duZ*g6n_(Iv?MI@e=MNBK-I9<$t z>jqdaCn0K$o+EC6gBEekt8KE6`jD4&*4ia#EE3O_VA@nR7LeS4S$@O5RUY7b|Hb+M9_sqAzh@tY*i<36H~GF&{q~ z-MxF+;iab0Wb^mL#yXSAFGsM_Rlg3Ku&3Sr_6*U{#ImvLn`eJjSXhOg^2eKJ5Elh0 zZ=9|%9@R)hE2d9-H}YZs<#Xf!*`-xZecbUktj$wyqo5I)dga}t`@Z;We%$bR53hl7 zjtH1Uz!6Sb4LElxTUe{^E-zZ{KINh%r6QNrDQ+dvz~quY=$^Djuu>AGnvf)*&~ybK zXmVts3ZSyZsa_DEm(e}uHEMc>sPpmWBmocige^#rYj=Hpin`P2q2>PjmK3c966;g4 z`(H;t;}p7W^|w*v@DLXd;W51N7s3jGWD+AM40an^@Wj_Wa&`6f$fPdkQFMNNx(CU! zaD8<=42U{ZdqMlUU(^_X|9wT*vq?O8FDUoy-}k7cs%ieP8~d~f;MdFWua#7pSy@S% z1p@A;wTs;o4x#e?LseY-Xh)XGqBrmu2qeO`M@Ka}_CJ!9W;ovyTkds$Z>CMTee7(w z)AwkKoPlJG-ETq5UY5VDPYzZFv=O=XpHC0e_z0l_vpZjhljX2K5(1r7wP=;_@(BEv zLS$uPrApbOkxIBILYnWibB^ z8V(~v!yU|#wS&>24nwigq1%~}kQtn3e$kuTO?)QHO9O#`gB!aJ^4zOKeN1Rho>0{c z&cLVymdwUlbFfvE%x8IcP%INS&Fl_-4y470!xYG_pSrq^guTR5%iHZfzeO4Hfe|nk zNFwyEPOGzx=PT(T6Pd49)~e{WfU%)I1~(+aAa(%t75Wgq2NAl$nPy)ba{Wy&BTa-3 z#~sY+Y1HYCNJH=;4`>p~%hh!FF9wQMt>Q5j4ZY*Egw5nvy#S>okSj0{nml zIyd938K}qQLIh?J3xZE;iy{2`24dI4lY4oH+M~ZBsL}l5z{=t@{*g5{)RHw0ZP5qW z5CPq?*XXvK3L`kKug6_Q7eN0k0R()Ek9X|<4mfTLDgkhde`z2BMd&myk$gbNAlf(@ z?($+3Swqb-g)}PZMfdhEfV7L&5f;z3o9u#?Xc%x!fapV=>)fn@wEEH&ho)5t=fRU< zNGnisWC4dF?Gb$@Xf`OBM^Iv*jVX+yyoBbO5PJUR0;;t4UTj7EzY&yN=kq#OKLx$g&Fj}+um4`tq!(wMs`@df@PDP_vG^vMbOX(>)>c9E zQ$ZjTd^fBJ91KY1ClvH(X$3}{3KS}f^X|uLAmHU

ye$uH5!r?H z98OwfZH69Ba+*`BXR&a$CIC7btg^x95Ln=Kg=``>5hBBxdY65Eb$)qbEAa>Cw*lxD zECSLZsr7P_%bn|V2X|$S%Fy2NB7Q0Gs))%-n6Q7zK~c&N;3k;D{womd|ITL=q$o)m zYAI({2g(gKCI@afab);AcSc%>HgU938rA!%p)4jH|4!3Lmf+x28`fHSRoO^ ziReuz4H2N6h&I};L;f>wjJ`B~_oqxXs`x;ej)$^Kf?Umr*Kx5o05}(IupG<&F+^ti zmZFJAoJ5^OBq)L*Etshx=!w$GQr_7U%NN%BKQ7%WhmFs(_fY;4LOtfW|J3%sYBn{) zaWF)owj9%9F3f@OT44>-8U^1Q%`VWR9d&XgmIt zE%bocU1MWs+|IPXenx2nsmZs?F9w_{uu+oEI`S@1@Z2v(ODFqYeH@jTl2U!lwTSk- ztkfyjafzCS2LHyCg-?n6<|E-{!sA(4F~?e`QVOm<^PJ)b@Z9TzXGO(|BHA3j-qO0f z+_5g~F0ZaGXfx8ZQu&RH=iaSvcW4-S-@7h4+Rh$7UN}1AT-B82sptWZVcWj=m<~cs ze6_Ulpgsfi<90s{+7A_pjZ3gMI2nz?2FObC&M<2aW)J_V${t(5M0>s4C*)uSO|EMMV*eM16fdI0zaV znt%Y)Za&eO?Fhc;nt`5Rm}`m0Uv;_O*3{Hok9+BQOs^4%b^G3?HA}ls<#?0MpeqHC%VAnFuY)W^EOf-;fyk5-OTJ z8)M!eF!nKM6@qTBL4rnMv|-a$f{@^YIPkB6CcC`{jg29KFa+bv;w}$n3Px(B;>PU$ zgux-kw*c{K2Qwg`Q4(`$kyq^%JnHIFj=q5@2n^haLhNh4J4ycKy@5eN|EFeQWv>Mm zhtSgeXNgM5Q$qjAk@WbmMM{1tgfR;*Or5$>vHm2OJt%@_VF+s;)Qkgr?lSiH{7T4* zdB=CpzyQSGzuKWCwx|8BEV9ns!@p6t0vAG|f_`iq8nFK~C-D#9?|+)4slSaZEz=lH z2Nd?2P7z!lci7@j2wla=2@3xOqC<@o+fgB+g;uu#<&G10@TM1|v zc{fDWcYms=*1%t`xAqGMl=l*iM}QrDC}jR7kZMIJNqKpA2-z99+~^RS<}Z{YBP@3C zOI!AytCz;nE`s_MHbQiB?jbz?(b&%K>oV!7YlB9P3v>uq2K2~1jFe~R8 z-;o=Yn%>j(#U{sPDBDGMO>F~8Cv~pv?o`FAuJ+5><3jV52X```&CoLqDVUj13u{Y` z;)(qXCdGU+GgbS|tX^&rwU-7}#+KtJ3=eX;+|>@1+(=@g#2?oz8+;m!9NGTnw169? zWi3c(Jx`c67w_>j%+s7!B?yE8jm^wo6Hm1i=BDJ7>y{7K+8@|Ty6?2xohlFd`uFm6 zy{SI$6B}VedE{aq8gbco`ycdba4i1_FC#>l7lgNoF$L!~CRftz-S^11gtDUQG%oT2 z7g5?XKcJ>sQ~Ge4ve|y5+QmMI482(@_X`JjlDj_dphz4@8)X&jI$Ymz-m*i`doxfE zxfqi>l`MmZ(OQ5PzxBBG(QoUv({J9bmL&!Wj1881k0|?JF#~k7p%UrYux>cssZ_M| z^WC9ZW6lH#T=i5Gaw2SR#>y?4~Ud=GU*-AZ+k%Qy41((lCNGLDJU0V=E zUzTY3wOW*)B7&(U5l7UZ(z#WlnyOO@4Srj5bKu{@g=8O)XW|y!#eti$}ZuEufh?z3u#ELO)ZB z5RA}3FzConkknj>%73SbZUTyb`tYu}RH3 zpH?yUI!aqm^bz*Hw#cvl(#kNfYLglKO-)xF9Ual^`xl81UOX}~67}!DQYOgcz5Dk0 z1q2YKLLFKz;JHzJqe3BgZnQyogGOtkz5gRcVLeK92)Ry0P`)7=NjKOW8C@1Ssl<@# z3%_eG|4&lJ95tOvw00@ITVi?vs?#YRiWaT^*+Q7s>j1O=BT5o;A)^`ava${+NA8Cf z6CwP6q`m%MX~e_y;7{S|9D;f2W51&g4b>Ve>Bfp*+9l{BEfco8h;qw)DtN<|5yYyZ zfzOYUJ{manf7ggRVItz(p*YXrUw0h_xv=jz>Cqqo$>+TK+m(P6it3}~@*Lac`jRf| zu#*O^5$CvTdA08$nWj-`x~Zip2MtHiWKAlx+;Uq;LI@b)q*bHOaY{jf=T%;sl&}3+ zEb298APv0zdt`&pEI7}h3Php{+I!qdd&BF4RCCp97mrJjJRT4SE6p7rw2sTGYb#fK#f+;t z>Be?-%5K~E$uavMX~#dk=f7mO&uinV)vl;|?)?ca)}wvWj?2K=ir;sw{(Kj)_4T}z zLwYfh&hLL+Nf35!kXsXU{q{XUZGTdm;Pk9D-QjD=wu$!&&(q?a=J&a_{f83?(Owh-t%U zPHTay=C8%TEvBXpAh%b3?qMSYLq~4)e(&RXaSC;hb`(?V11u5g<^2~G#*8{D8j8bS zp*;xG?cML=rbWD5AICFQKeQ$HrP?c{5s`m=D03(<#xU{jhlIdfgBz-Wb9Y->PjWWd zFejWfwmiknXI;T%+Lo_X`ttf-X;G>(QhR%ZPZx<)-l;OR(Yw!oq|&@{c(HLoNUP83 zT!--2Aj>|w!-oktL^69o<;tl4fydnB;Lwu`xJ%NfEyWKHK3e~tRB6y=x}$Kzw*&hh z0B(`)?|384H8wWU+;3$_PuIdV@xAVj^kzIUiIh0mI^JSqwC{Rt14%0>YFmhjj?h*K zCU_$0&%qbYf?0AyYs;B3qkI_@b1h2&CPlmA&v10*PFPrPAP#>XuNywj=RM!#GE}ov zw}XviztRmAlO2=89f`kV&YK$dd>f44D*4apZoA%X9HATy%*ow;n8gwio^)T7ngD8~ zPvPY5#My4i|8rBPk8Q*PlSl{l{=I$D&S!rgkF@pT-!qZiSpF`+|2~{px_otwPcP(e z-pody5MmRwU$<`AVm(-+3xXC+Fe_^fVk!Sz8Dk`ei1Nu!TA#OXW4%V2GltPR&_rJY z%#VgL4e_DuH$h~@D=RB#UFhoTBfn8H2rht~larI{fc8pOw(_G&nwYpalo_K#2mkII zPpcpmD=Vv>zP{%VM=%JWk=flqhO1|pv{i6(Xzv?lPs`|{P(k0C zl?81{h1zfr_eYNkzyh*ZbQV9F9d69~2$eYO`?xKIJ4maO?CiT=LDkY?Gz8V`sjOBO z7F3xwqPoO~!Z(f4kyA1XpJWLQ4aHbt^6#F}(Y7L2S89H%ftNej2{R+noAqCK6B^3F zqOGmHwzf8>2Ic<6Bi!7zM!X#ZWyB{gkhStt_4W2Xy$ppvoe607ebi~cozR6oqzXYk z0HoXb4&C(Z?3)sFp$vPeMMOk~4Khx@m9`!$e@m#sNZ}{OoE|5?e=jDHpHKHh(>nj- z$C2;#gddS|J1h0c{Vd%8Nhq@7_~nI^Ztn5?rci#PxAoSjWw<41UW^M&s+kt>SPxxS zZhYua_Tz_#mzPOPrtzgqkK+wRS22uo3zGu zN5F)Ee9!LPP(C4|^j8|U=PzQe^gOf%1&;F%A3j9s-&-D#mwSQuv>7cQr8~spX1UA%ND zHk%5m(C8=8f3W4-z^L%;aKVwdTv0Nv*dAmz*tJ=nXElU6GZAqF^;vF&ZKVIDSM#1eO~V z%C%ajz-v#=p1Lj06S1Y4UdSOG6H~mBHMOo1J^vITpI;%8w`?;oukp%RV>#->&M+e&R%sfOXuLqGH@pYIb(h z+SR+43V!8!>}q@-%v^U;M8p-cj^Dq3gR%mdREW?~TU*O#)b!HVm)o%6BX%9)%Dmi5 zb*By={!)K5T$n>6cLuVkM&T!{^+f`WuPExHVIW?I_$qIwoCOsFvT+!_3~lXBFqe4{ zR-!9W=(@g!4$vJ?igk-;BZLi9B?GU8Ve-rMq-y$Q2?5(NK}_dB3ZbK~pQM^G1o3>qtWGD{1K;^Jb7NTv82VAwcLQp&2P z>Amn+SXh9%SV=%ZLj$pOavfw5+BCE9r8w8NkG(sYW#ZH-lMd6ziR-21AY!o8q#M*e zf4*~A25|v8U=}W&A5_EU*p>9e!xb^&SRR--3m1Ih*|Y7|`KhT~!or#cxsXPvxNfV6 z;hVkr^|9fljqi97mWX)3b+7JNkPM_|*Y=y%$0>2d?h4fGOOz&&Xeo&I0_0DXonWbX zCr+kJ^DtLeM+f)Yv~ni?1CyxlkpBn5tnM}@YLvwlK$|zG2900L$_E8a&BW)`&zB;t zVNCQ(paA_Y3OX;PSA0P1(5;1Xgwy(^ULA9S=UsyzdOaKw%_FTjX&9=O`0mYUnih+4 zDy!AP)5EAe|MwO@(Fim_JTGIgOrcrHUw$%F4IcD0 z4Jhoij%FeYU_|?z&Bz-rG43JX2J1*#>j8`;v(%tr_~XarAel2~&LD5F`1t#Ops4w~ zV^PdOuP($?pyhD!E39g*PXtz0=KTvQwVZISyOHWo5_tW78)e=+$&om@r#TD9eyzQBYBd%@3!Yl^PbnHTLe=L&!AI;Qeiy z>o9u{Q)?dX?(Q*eXCo*KG$gPPN2u=k{wrGz$w?c6DrP~>HsB31wbHG=ym;a&auoVZ zQK0G;mzT-5ZnYV2C-lsSXExT>F(QF=Le=jCUcY%mG{gb|`pt%+;5o&@z`!uXd4jNH z4OsFM2K$~@k&#Dc?>uOD9rXH*^aq64`2V;GVmFS7Tu_7N$jtEW-58HI6@6C&IO@-m zIRI=dOjn6`{(#`Lj?op79{eZT%YUFZha7Pg@F6GtQr#Yzp{)b*&Qr4(zZC2E@`Mr- znAats;+e#Z;w9QhEJ!UDgzphhN>6XEuAUxRoTB`{z#!)%(O7S+h;g;%xb4P!_u#lq-7+c(80h%8ODBck3wHRmR zWXjfUBJQL*s2nW>qTP#tkJ+=IA?KCpqiIb!C>mes6t9nt(m7Q>ARYj8svy zvq_Z~jjD+a!So3;i>9WRcaVT4df?sn9@;?Q4mNvsW(JCS%6b>Wj>1*2)mtf$w*H{i z+=ce36M6`V343NQ_~vd9n9(EpXy{ts$hoR*W;Ou?^l{wl0(bk#dn%HFlOL+1uF{Bz z6k)C;KR+M+PsmG=d-Tx89@-puZGA}n>sI4S!s0P6rb_&#rYxSQ)n8IrZ`kMzVF}TN zH#bjN6>8|}?nX!UI18XdH(Pgw2dniatC%&79E)D`(}&<)J}ek-aze`ttZa(|1+m76 z7j}v_p&ngZT?V7!3Xv298yL0y8OT$<^tSJ8#9Doh$FAn*o5hS@M`!Qdzh9s=&g(?2 znXf|Pr^L9p)SMPhlkI0?TO!0YOwd;xZOL+lw6#Ld5`A*K0i(PM-0@n3IA zw=?&dm)8wV9bMg=%-zJU&JD;ns^(e^LOQ{rncswn2nh=lcpqWm_D<=*YgNHoC92iW z1$w%>xvd7|sY@#>IgTBZ-)itZ$n(p;FIU#)GBrKTsh)kSh=+$qNuoK+)RgP337m}u zeOXS0x$V+dRMRW@L25&Pp;m*L{iju65+@ zrMAE6lOCf|^Z1&Y!W6Z|xpz>54@viK`6u>bFY%;s+iRLm5Df7KVaMmj+D@=IFV7YH z(iM$>k}LCG{XNLaDYDo_Xq}y$>O`{su!<3;bUh4bgbhPLE`$~~8aNI1To3f>*boD` zhh8QnnIcLegJ3|HPWGJrRHO$11To)LM*g3#j)|(WivJ$$&4kuePC zueZt*GyHe5e0^yBqgIh-PIGN@)YSk?6r5tgnC=i0(vvDpigwVijV~G!HR9=V32lU4 znhGrx_7}{|l0Ckbl;mX!p6hPSu@n^*WvRg+Iy542-4G5D?aiYsNNwnnn`=Lcxj5cl za8U<}BOaM>Dbwv4ACV&EFb75RYGPvITLwF}yT~0m=I_cVVq7^XDQWisz@0cRMj?mm zPiZwZHA_oN8?=xiUNrpU?F}UmZoU4necLvB$WHuDq+L96_UsH)6p4uxvWt-B*Lh2~ zVk$xdt)}+;oGCdd4bVc*&b?3ju< z?oABG;b5h4DnqWf`#IF_t{*)c(SBFsZ${R3hU%pa6TG50F#+mJ)yhZ$N-8{21aEl^mOmV-Nnu z631}bHWE&vm$nGmxBv|Jn-R=@8NgG&XmB`lirh?#%OJyG)jOv{i+|4*0n zz|5%0-Z|mrIH-$2?ZS^<9OQ{JXvVYIjx;f|V6-@1S5^F~Eb&FLZ5!>G+wSrAvNx(|C+1h4X@!FjM2qpAfro!{0+kPY-I}@DB!#b0hY|1&%N?e}449 z4Cx2u?$Z}93Su{P!fQa0zsvXX^d#sSD=$z}pH_+Y+hArrF|l~nxT8=*%I(*$Ul6dE zU|ur*#70s$MKJSb(!4%z5F3;fe?DzM<*nSoJyDP)eDlzH#M+LxvrNHk_4M@GlUFtKY$|T2Ger}oqjZLgk<#-Cj;<>rai;JkZ5JM}gXkNX4&mxmo{q=SV-X~B|TAD#K?i8}$ zGYXizG~}K@F*=d3gQd#7FRsd$U#m%1B$?eImdX+fj#+V#;;5GJd^S_@T-@9!9q@&* zw~;JNUd=2r^rA`C-=o^R9NFU+2z9&;UOIzvD>yIwzK78VxBzIw*T zJ2H)1z_kau99~D?9^FM@xL2hScmdNk^TLTybAfCe=k9UT?bpZdgzRzU}$4`@HaTeum@;_z@LeXs90-f?~`p{~2T+Y&=|$V)erlw$V?0~i3G zp&}KN;Ns$XO%L!}Hx&w9g^HM%n1X_jhfz!B=zP(70kDZh>thOf2P6ZBy;}Mq4Z={6 zjkV=1FDz`{yg41Ja|m=%l7)PEE6bq$4O1h~h_`=`IRrWZnIG@wamJzjl_ASK+#xFs z!TeVOZMKsh-`YURj%_i?laYXs0r`f@c1*puWDWU7huawX(y|XgJ+W?tad5qP^-6oa zl7NiB>q*DffhMlAnu04hazsKxP;hOX(hFc8BZJT^U0*XO7=&;`zGE6;%ik^m0s#JcgT9fkl>Zd@x7$yZs7e)$_1#hoDwOHCza}W^(dr-TcT%3Hv=q6&Dv5 zG35L5K;;~~4sFloz0apDRUAvAN>w&qz4qK-38xrwqF z;5;GU5)c*tgF;~p#h+@s$~O1T&Q4a}(vA)h)FAx)_K@yP_gBqNPw%1jEw$?TLCr=i z);GvqXmp*Rfx*0p2;vPuBg*f0I{}s7xky6%^`%V16Sy`LLqI=&{=^$j2q8HT6H5(L zG!8%OW)kXMUY{NPPm8H~(jQebyM8|^0P10b#xqn~w{Gq0>4~YuOQ!txva_JWm+bNc zszeD|IVq`Ym+E|tn3tfog{`0)S9mh!rwu3xw^_O8vzj+e%vJ%SjOyeK{JNixUWQNjio-B*r z530;qHlVks=a|+MXp7^A?=hi_$XsRc`*@TEJEm~yMxy$0qHr1<9GshmUR;VA1%9T8 zGkSZv5ScKht`k#2)RR+F0*-SZD?SVj-Ros)g;19F;=Nt&u!UHIMxwgBp+6Zogx8@2 z6F}^`5MR8)+SLgd-uu@LhXoyG?wVW0onm9tpM-FohO^La@_obGz`~4XZ=dP&TS(%a zAGk=jn1HM?CX(SH9V)0Yyo)!)928pfbE3t{vYVbhA$Tg4*7h#q$DG@}*FwO2Q$!WS zvKucu!Oe=eLN?5zATR&Y-(N3n5F}WdZ`B<^mz8V}LR?6&H$ixV02n2SuYF^jvwtQw zSzKw|{R+a7Ukxclo~EjXXw4#k8Q2hMb1Di}RcUyHQ;36kenSi~e06cr)m({Vmr zot&IZ%&$T&kGegl;q9#2#wU`ciy<5Dzni$_Ksx>M{{8##!0#m`VW`tC<-qYP=7Cs7^-vY4+|t#)*^ys_)kH z4cYw>Bk{&9nG{)7uvl|Ecqug-bN) z)-j~H)BY&;h32Jke#{hc98#DO1N~sKUH|aex6);b zWQKu8GQ-q`7&)~aZRUZ17x&fE*T(_FORv`BsED zaP=Y(gyMRH3M)Tf5LFcqk2T)?Kv1j{6b)z7T&~L3?mn-@KsrDMFWni9Q6@}rea9xD zWWiMHuHMoIm6%{O$tJVMUaJ>4)C=E+uOELPU*M38Gs8O}bt>cDdQeP9M@LrH%fhED z)MBji%a<>my#ca_{<%(zsjItD#j0nUiAvD9xFoe(L(c$37#B*q52fgLI%_j>v$ys( zUa?pM_c44M+b(+D8qSAc^*G)b{L`Ep*uZO=>4uH6_V12FMM!!J2x=@s*~)tKXaUf8 z(TCl=hwq)Y8Iiy3^8$UFXP52lvX|a`UHV<91>cEVNGFh{!Q75FNHz}Q)}_(vZI&!ZyW@F^U+ z3nAbP@E;gdsC9{V*l{H&PyN{sR5pjwlVR}9D|4=}tzPC`#CRJjt*D(u8V5xdz@g!Q z>}K5l`F08d&?2N5=5I2B`9K;{=OA7!=}^>T-vJGxUr!p^FtZ?;@dZ^h9L6$Zf-u!1 z-K0&`S#xDJPSHMvSXsxpCTYC0FT-Q=)~)PeC+n@;g#-ohI*KV^I+Wtog<`It@2<(Z z3y3HVXWiH#gFtx4eAbc^uQdI(#_!H+KvIjutq)MuUJ-Ni~+yBl1#0HuZ8)#flOMc?S3F3W=0z2LJ$LoJ4+q@Zb z4V%Dv+#)!-nc+rL6gs>15?ztHlG75BlJQxu_P&A;_IsZUL6LxC(v2@Fa#dGX$ClPv z1|h3hW=qOEn1IB4=+3s4)zxumZUBK|*Ma#HR;g?El7keE{i@+xT9>GCemHs*uS2+A zA!5BhDYg=yl`U|*g38AcsH8nE8mI}7e@I$JashqCq3Mh08jNEL5;gMTqT6z9$2C<| zAh0}0|Q9Nb?JDZY7{Lw7T?wq*&%Jz zM-g7}(_wS*j~_qK-~_v?R+QuIU4=9jmw^ZijDRv5MwuQu*x5OWxeu*Er{8)XrX`zh zr;M~@B_R#)@&Lq3qi}%>x%>;I68L zzy=NV_F8{2Y28k`FZAD<_5ZZL{@3ox*R5|@Y^Yo4p-&>FE=f`sWhD~DZaw@z04NZF ASpWb4 literal 0 HcmV?d00001 diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/blockMeshDict b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/blockMeshDict new file mode 100644 index 000000000..ca92df3af --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/blockMeshDict @@ -0,0 +1,53 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 0.001; + +vertices +( + (-10 0 -10) + (-10 0 10) + (10 0 10) + (10 0 -10) + (-10 100 -10) + (-10 100 10) + (10 100 10) + (10 100 -10) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (41 41 100) simpleGrading (1 1 1) +); + +boundary +( + walls + { + type wall; + faces + ( + (2 6 5 1) + (0 4 7 3) + (0 1 5 4) + (4 5 6 7) + (7 6 2 3) + (3 2 1 0) + ); + } +); + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/controlDict b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/controlDict new file mode 100644 index 000000000..69e705b7f --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/controlDict @@ -0,0 +1,63 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application foamRun; + +solver multicomponentFluid; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 0.01; + +deltaT 2.5e-06; + +writeControl adjustableRunTime; + +writeInterval 5e-05; + +purgeWrite 0; + +writeFormat binary; + +writePrecision 6; + +writeCompression off; + +timeFormat scientific; + +timePrecision 6; + +adjustTimeStep yes; + +maxCo 0.1; + +runTimeModifiable yes; + +functions +{ + #includeFunc Qdot +} + +OptimisationSwitches +{ + fileHandler collated; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/decomposeParDict b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/decomposeParDict new file mode 100644 index 000000000..18a14164e --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/decomposeParDict @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 2; + +method hierarchical; + +hierarchicalCoeffs +{ + order xyz; + n (2 1 1); + + // n (1 1 1); // 1 + // n (2 1 1); // 2 + // n (2 2 1); // 4 + // n (4 2 1); // 8 + // n (4 4 1); // 16 + // n (4 4 2); // 32 +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/fvSchemes b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/fvSchemes new file mode 100644 index 000000000..f0fa7281f --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/fvSchemes @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + + div(phi,U) Gauss upwind; + div(phid,p) Gauss upwind; + div(phi,K) Gauss linear; + div(phi,k) Gauss upwind; + div(phi,epsilon) Gauss upwind; + div(U) Gauss linear; + div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; + div(phi,Yi_h) Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear orthogonal; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default orthogonal; +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/fvSolution b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/fvSolution new file mode 100644 index 000000000..4edfbfc7a --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/system/fvSolution @@ -0,0 +1,95 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "rho.*" + { + solver diagonal; + } + + pcorr + { + solver GAMG; + smoother GaussSeidel; + + tolerance 1e-3; + relTol 0; + } + + p + { + solver GAMG; + smoother GaussSeidel; + + tolerance 1e-6; + relTol 0.1; + } + + pFinal + { + $p; + relTol 0; + } + + "(U|k|epsilon)" + { + solver smoothSolver; + smoother symGaussSeidel; + + tolerance 1e-6; + relTol 0.1; + } + + "(U|k|epsilon)Final" + { + $U; + relTol 0; + } + + "(h|Yi|O2|N2|H2O)" + { + solver PBiCGStab; + preconditioner DILU; + + tolerance 1e-6; + relTol 0.1; + } + + "(h|Yi|O2|N2|H2O)Final" + { + $Yi; + relTol 0; + } +} + +PIMPLE +{ + transonic no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + momentumPredictor yes; +} + +relaxationFactors +{ + equations + { + ".*" 1; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/viewer.pvsm b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/viewer.pvsm new file mode 100644 index 000000000..9ba87b7e7 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/viewer.pvsm @@ -0,0 +1,14398 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/N2 b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/N2 new file mode 100644 index 000000000..9cad7234d --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/N2 @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object N2; +} +// ************************************************************************* // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.766; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/O2 b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/O2 new file mode 100644 index 000000000..6423a488e --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/O2 @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object O2; +} +// ************************************************************************* // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.234; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/Qdot b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/Qdot new file mode 100644 index 000000000..baa859a26 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/Qdot @@ -0,0 +1,31 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object Qdot; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -3 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type calculated; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/T b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/T new file mode 100644 index 000000000..b3ee755c3 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/T @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object T; +} +// ************************************************************************* // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 800; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/U b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/U new file mode 100644 index 000000000..f86a80165 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/U @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volVectorField; + object U; +} +// ************************************************************************* // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + walls + { + type fixedValue; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/Ydefault b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/Ydefault new file mode 100644 index 000000000..f2e5bee21 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/Ydefault @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object Ydefault; +} +// ************************************************************************* // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/alphat b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/alphat new file mode 100644 index 000000000..ce451d1c5 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/alphat @@ -0,0 +1,31 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type compressible::alphatWallFunction; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/epsilon b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/epsilon new file mode 100644 index 000000000..e3ea2a740 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/epsilon @@ -0,0 +1,31 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 90; + +boundaryField +{ + walls + { + type epsilonWallFunction; + value uniform 90; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/k b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/k new file mode 100644 index 000000000..37610773d --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/k @@ -0,0 +1,31 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + walls + { + type kqRWallFunction; + value uniform 1; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/nut b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/nut new file mode 100644 index 000000000..6a3a60f68 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/nut @@ -0,0 +1,31 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type nutkWallFunction; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/p b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/p new file mode 100644 index 000000000..889d72f57 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/p @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object p; +} +// ************************************************************************* // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 5e+06; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/uniform/time b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/uniform/time new file mode 100644 index 000000000..ff9be5fec --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBomb/zero/uniform/time @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "0/uniform"; + object time; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +beginTime 0; + +value 0; + +name "0"; + +index 0; + +deltaT 2.5e-06; + +deltaT0 2.5e-06; + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/.gitignore b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/.gitignore new file mode 100644 index 000000000..f04cbd780 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/.gitignore @@ -0,0 +1,2 @@ +# Computed inputs +parameters \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/Allclean b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/Allclean new file mode 100644 index 000000000..4a9166383 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/Allclean @@ -0,0 +1,11 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cleanCase + +rm -rf 0/ constant/ system/ Allclean + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/blockMeshDict b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/blockMeshDict new file mode 100644 index 000000000..17cd6c19a --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/blockMeshDict @@ -0,0 +1,69 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1; + +vertices +( + (0.0 -0.1 -0.1) // 0 + (2.0 -0.1 -0.1) // 1 + (2.0 0.1 -0.1) // 2 + (0.0 0.1 -0.1) // 3 + (0.0 -0.1 0.1) // 4 + (2.0 -0.1 0.1) // 5 + (2.0 0.1 0.1) // 6 + (0.0 0.1 0.1) // 7 +); + +blocks +( + // hex (0 1 2 3 4 5 6 7) (400 80 80) simpleGrading (1 1 1) + // hex (0 1 2 3 4 5 6 7) (200 40 40) simpleGrading (1 1 1) + // hex (0 1 2 3 4 5 6 7) (100 20 20) simpleGrading (1 1 1) + hex (0 1 2 3 4 5 6 7) (200 40 40) simpleGrading (1 1 1) +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (1 2 6 5) + ); + } + walls + { + type wall; + faces + ( + (0 1 5 4) + (7 6 2 3) + (4 5 6 7) + (0 3 2 1) + ); + } +); + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/chemistryProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/chemistryProperties new file mode 100644 index 000000000..2ea20a611 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/chemistryProperties @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object chemistryProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +chemistryType +{ + solver EulerImplicit; +} + +chemistry on; + +initialChemicalTimeStep 1e-07; + +EulerImplicitCoeffs +{ + cTauChem 1; +} + +odeCoeffs +{ + solver Rosenbrock43; + absTol 1e-8; + relTol 0.01; +} + +#include "reactions" + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/combustionProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/combustionProperties new file mode 100644 index 000000000..a019ba7ee --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/combustionProperties @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object combustionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +EDCCoeffs +{ + version v2016; +} + +infinitelyFastChemistryCoeffs +{ + semiImplicit no; + C 5; +} + +diffusionCoeffs +{ + semiImplicit no; + C 5; +} + +PaSRCoeffs +{ + Cmix 1; +} + +reaction +{ + //reaction "C7H16 + 11O2 + 70N2 = 7CO2 + 8H2O + 70N2"; + reaction "C7H16 + 11O2 = 7CO2 + 8H2O"; +} + +combustionModel EDC; + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/decomposeParDict b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/decomposeParDict new file mode 100644 index 000000000..a9da0ec5d --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/decomposeParDict @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parallel" + +numberOfSubdomains $cores; + +method hierarchical; + +hierarchicalCoeffs +{ + n ($nx $ny $nz); + order xyz; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/fvConstraints b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/fvConstraints new file mode 100644 index 000000000..40db53bee --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/fvConstraints @@ -0,0 +1,24 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object fvConstraints; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +limitp +{ + type limitPressure; + + minFactor 0.1; + maxFactor 1.5; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/fvSchemes b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/fvSchemes new file mode 100644 index 000000000..b257581a0 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/fvSchemes @@ -0,0 +1,64 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + + div(phid,p) Gauss upwind; + div(phi,U) bounded Gauss upwind; + div(phi,K) bounded Gauss upwind; + div(phi,h) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,Yi_h) Gauss upwind; + div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; +} + +laplacianSchemes +{ + // default Gauss linear orthogonal; + default Gauss linear uncorrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + // default orthogonal; + default uncorrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/fvSolution b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/fvSolution new file mode 100644 index 000000000..81cac04b1 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/fvSolution @@ -0,0 +1,78 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "p.*" + { + solver GAMG; + smoother DICGaussSeidel; + tolerance 0; + relTol 0.05; + maxIter 50; + } + + Phi + { + $p; + } + + "(U|Yi|h|e|k|epsilon|omega).*" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 0; + relTol 0.1; + maxIter 20; + } +} + +potentialFlow +{ + nNonOrthogonalCorrectors 10; +} + +PIMPLE +{ + transonic no; + nOuterCorrectors 1; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + momentumPredictor yes; + + maxCo 0.5; + rDeltaTSmoothingCoeff 0.5; + alphaTemp 1; + maxDeltaT 1; +} + +relaxationFactors +{ + fields + { + p 0.3; + rho 1; + } + + equations + { + U 0.7; + h 0.7; + ".*" 0.7; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/steadyParticleTracksDict b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/steadyParticleTracksDict new file mode 100644 index 000000000..8cce48043 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/components/steadyParticleTracksDict @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object steadyParticleTracksDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +cloudName cloudTracks; + +fields (d U T); + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletFuelVapor b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletFuelVapor new file mode 100644 index 000000000..e59afa603 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletFuelVapor @@ -0,0 +1,14 @@ +massAvgOutletFuelVapor +{ + type surfaceFieldValue; + libs ( "libfieldFunctionObjects.so" ); + enabled yes; + writeControl writeTime; + log yes; + writeFields no; + select patch; + patch outlet; + operation average; + weightField phi; + fields ( C7H16 ); +} \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletOxidant b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletOxidant new file mode 100644 index 000000000..f703d349e --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletOxidant @@ -0,0 +1,14 @@ +massAvgOutletOxidant +{ + type surfaceFieldValue; + libs ( "libfieldFunctionObjects.so" ); + enabled yes; + writeControl writeTime; + log yes; + writeFields no; + select patch; + patch outlet; + operation average; + weightField phi; + fields ( O2 ); +} \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletPressureVelocity b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletPressureVelocity new file mode 100644 index 000000000..50f0a218a --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletPressureVelocity @@ -0,0 +1,14 @@ +massAvgOutletPressureVelocity +{ + type surfaceFieldValue; + libs ( "libfieldFunctionObjects.so" ); + enabled yes; + writeControl writeTime; + log yes; + writeFields no; + select patch; + patch outlet; + operation average; + weightField phi; + fields ( p U ); +} \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletTemperature b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletTemperature new file mode 100644 index 000000000..0c6705f68 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/functions/massAvgOutletTemperature @@ -0,0 +1,14 @@ +massAvgOutletTemperature +{ + type surfaceFieldValue; + libs ( "libfieldFunctionObjects.so" ); + enabled yes; + writeControl writeTime; + log yes; + writeFields no; + select patch; + patch outlet; + operation average; + weightField phi; + fields ( T ); +} \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/parallel b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/parallel new file mode 100644 index 000000000..119fb26b7 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/parallel @@ -0,0 +1,4 @@ +cores 32; +nx 8; +ny 2; +nz 2; \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/parameters.jl b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/parameters.jl new file mode 100644 index 000000000..ca5a4f222 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/parameters.jl @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +""" Setup for total combustion of C7H16 as C7H16 + 11O2 = 7CO2 + 8H2O. """ + +############################################################################## +# USER DEFINED +############################################################################## + +mdot_fuel = 0.01 +P_air = 101325.0 +T_air = 800.0 + +I = 0.05 + +############################################################################## +# CONSTANTS +############################################################################## + +# Molecular masses of elements +const mH = 0.001 +const mC = 0.012 +const mO = 0.016 + +# Atomic composition of fuel C7H16 +const nC = 7 +const nH = 16 + +# Mass fraction of O2 in air +const YO2_air = 0.234 + +############################################################################## +# TURBULENCE +############################################################################## + +# https://www.openfoam.com/documentation/guides/latest/doc/ +# guide-turbulence-ras-k-epsilon.html + +function prepare_kε(u_ref; L = 0.2, I = 0.05, Cμ = 0.09) + k = (3/2) * (I * u_ref)^2 + ε = Cμ^(3/4) * k^(1/2) / L + ν = Cμ * k^2 / ε + return k, ε, ν +end + +############################################################################## +# BALANCES +############################################################################## + +# Molecular mass of fuel C7H16 +mfuel = nC * mC + nH * mH +moxid = 2mO + +# Mass of O2 per mole of C7H16 +m_oxid_per_mole_fuel = 11moxid + +# Mass of air per mole of C7H16 +m_air_per_mole_fuel = m_oxid_per_mole_fuel / YO2_air + +# Mass flow rate [kg/s] +mdot_air = (mdot_fuel / mfuel) * m_air_per_mole_fuel + +# Air reference density [kg/m³] +rho_air = (P_air * 0.02896) / (8.31446261815324 * T_air) + +# Mean air inlet velocity [m/s] +U_air = mdot_air / (rho_air * 0.2^2) + +# Turbulence initial conditions. +k, ε, ν = prepare_kε(U_air; I) + +############################################################################## +# DUMP RESULTS +############################################################################## + +open("parameters", "w") do fp + write(fp, """\ + YN2_air $(1.0 - YO2_air);\n + YO2_air $(YO2_air);\n + mdot_fuel $(mdot_fuel);\n + mdot_air $(mdot_air);\n + rho_air $(rho_air);\n + U_jet $(3U_air);\n + U_air $(U_air);\n + T_air $(T_air);\n + P_air $(P_air);\n + I $(I);\n + k $(k);\n + epsilon $(ε);\n + nut $(ν); + """) +end \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/.gitignore b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/.gitignore new file mode 100644 index 000000000..ad4d540e8 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/.gitignore @@ -0,0 +1,12 @@ +# Ignore built case. +[0-9]* +constant/ +system/ +Allclean +processor*/ + +# Ignore all logs. +log.* + +# Unignore actual base case from zero/ directory. +!zero/* diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/Allrun b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/Allrun new file mode 100644 index 000000000..6797a044c --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/Allrun @@ -0,0 +1,25 @@ +#!/bin/sh +cd ${0%/*} || exit 1 + +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +touch case.foam + +cp -avr zero/* . +cp ../components/decomposeParDict system/ +cp ../components/blockMeshDict system/ +cp ../components/fv* system/ +cp ../components/Allclean . + +runApplication blockMesh +runApplication potentialFoam +rm -rf 0/phi +runApplication decomposePar +runApplication mpirun -np 32 foamRun -parallel +reconstructPar -latestTime +rm -rf processor*/ + +cp "postProcessing/residuals(p,U)/0/residuals.dat" residuals.ref +tail -19 log.mpirun >> residuals.ref + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/residuals.ref b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/residuals.ref new file mode 100644 index 000000000..9169a75ec --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/residuals.ref @@ -0,0 +1,122 @@ +# Residuals +# Time p Ux Uy Uz +0 N/A N/A +1 1.0000000000e+00 9.4762612884e-01 2.2875924670e-01 2.2875924670e-01 +2 1.0557643587e-02 2.5059539972e-01 2.5890965867e-01 2.5865356314e-01 +3 8.7534244584e-03 1.6258561535e-01 4.7106185569e-01 4.7072201738e-01 +4 9.2459810066e-03 1.0464958630e-01 3.4032744631e-01 3.4070315317e-01 +5 9.7243624162e-03 6.3665968949e-02 1.7269725560e-01 1.7279575681e-01 +6 1.3326162127e-02 4.1672912689e-02 9.2344031416e-02 9.2374475087e-02 +7 1.4833152058e-02 3.2457421307e-02 6.5161351971e-02 6.5136673725e-02 +8 8.0180158349e-03 2.8156278985e-02 6.2635329365e-02 6.2481627557e-02 +9 5.5569307705e-03 2.5902087060e-02 6.5655563949e-02 6.5541673378e-02 +10 5.0313380255e-03 2.3187343349e-02 6.1398488545e-02 6.1383530107e-02 +11 4.4619484870e-03 2.0158240430e-02 5.0940258945e-02 5.1047609720e-02 +12 3.7222760478e-03 1.7748017192e-02 4.0292219653e-02 4.0388259605e-02 +13 3.5086430582e-03 1.5858217712e-02 3.3691389575e-02 3.3708272750e-02 +14 3.1777078822e-03 1.4446382799e-02 3.0709985553e-02 3.0658361300e-02 +15 2.8187762614e-03 1.3321458659e-02 2.9129808619e-02 2.9059533984e-02 +16 2.5522123414e-03 1.2326288807e-02 2.7521618944e-02 2.7485883722e-02 +17 2.2808370849e-03 1.1421257780e-02 2.5358712528e-02 2.5376375987e-02 +18 2.0469097875e-03 1.0646655680e-02 2.2976362522e-02 2.3010672978e-02 +19 2.0045489017e-03 9.9405786751e-03 2.0954614454e-02 2.0971653627e-02 +20 1.9825822409e-03 9.3040042262e-03 1.9460615114e-02 1.9455136848e-02 +21 1.9034063482e-03 8.7292081078e-03 1.8317308466e-02 1.8295316874e-02 +22 1.7707406755e-03 8.2158143686e-03 1.7307603917e-02 1.7287267449e-02 +23 1.6331004839e-03 7.7532826098e-03 1.6309538910e-02 1.6299973612e-02 +24 1.5550147026e-03 7.3328327527e-03 1.5327318139e-02 1.5329009788e-02 +25 1.5087333572e-03 6.9505257051e-03 1.4423837600e-02 1.4425748019e-02 +26 1.4631871460e-03 6.5985869709e-03 1.3633804027e-02 1.3630752812e-02 +27 1.3970884469e-03 6.2733063406e-03 1.2942150471e-02 1.2936700307e-02 +28 1.3288575003e-03 5.9743165506e-03 1.2310917601e-02 1.2305040147e-02 +29 1.2705769139e-03 5.7013416027e-03 1.1713794151e-02 1.1709252235e-02 +30 1.2346363925e-03 5.4517279389e-03 1.1146168846e-02 1.1141895981e-02 +31 1.2099865658e-03 5.2194827362e-03 1.0613655091e-02 1.0609991110e-02 +32 1.1741033878e-03 5.0020559788e-03 1.0122548721e-02 1.0119862767e-02 +33 1.1313869405e-03 4.7975183293e-03 9.6710086041e-03 9.6693066479e-03 +34 1.0910621015e-03 4.6046189366e-03 9.2505298473e-03 9.2493725492e-03 +35 1.0571091252e-03 4.4243752210e-03 8.8537995354e-03 8.8526268760e-03 +36 1.0288933599e-03 4.2554990955e-03 8.4774144268e-03 8.4769786636e-03 +37 1.0024213882e-03 4.0954965980e-03 8.1225666440e-03 8.1226910173e-03 +38 9.7512774222e-04 3.9434971122e-03 7.7902984581e-03 7.7905108371e-03 +39 9.4716182909e-04 3.7993071288e-03 7.4788870570e-03 7.4789122107e-03 +40 9.2000320690e-04 3.6630381705e-03 7.1860550435e-03 7.1859100855e-03 +41 8.9550514188e-04 3.5346875499e-03 6.9093385139e-03 6.9091664552e-03 +42 8.7363646874e-04 3.4128973740e-03 6.6477116823e-03 6.6475994771e-03 +43 8.5318543290e-04 3.2969030156e-03 6.4008129153e-03 6.4007644340e-03 +44 8.3294468561e-04 3.1863960400e-03 6.1682667207e-03 6.1682374109e-03 +45 8.1261757512e-04 3.0811992954e-03 5.9492088114e-03 5.9490206961e-03 +46 7.9225001889e-04 2.9806417577e-03 5.7430059703e-03 5.7426077364e-03 +47 7.7314134909e-04 2.8846634544e-03 5.5490255886e-03 5.5484995529e-03 +48 7.5482354339e-04 2.7927650316e-03 5.3666630739e-03 5.3661179289e-03 +49 7.3683488950e-04 2.7048696163e-03 5.1951769832e-03 5.1946671308e-03 +50 7.1882847060e-04 2.6207459150e-03 5.0340716847e-03 5.0345887629e-03 +51 6.9922093512e-04 2.5410435397e-03 4.8809471306e-03 4.8802475491e-03 +52 6.8205080469e-04 2.4638498840e-03 4.7357327810e-03 4.7350383486e-03 +53 6.6558178893e-04 2.3896444052e-03 4.5965871308e-03 4.5957551155e-03 +54 6.4842261163e-04 2.3185185195e-03 4.4626212299e-03 4.4616352615e-03 +55 6.3085011267e-04 2.2502840792e-03 4.3336990101e-03 4.3326299371e-03 +56 6.1340686298e-04 2.1846526895e-03 4.2099892614e-03 4.2089250347e-03 +57 5.9666742690e-04 2.1214177904e-03 4.0913847823e-03 4.0903848370e-03 +58 5.8094432173e-04 2.0604844434e-03 3.9775086908e-03 3.9765975181e-03 +59 5.6651496610e-04 2.0020025389e-03 3.8678797438e-03 3.8670534794e-03 +60 5.5325607362e-04 1.9458501928e-03 3.7623282023e-03 3.7615527030e-03 +61 5.4141279296e-04 1.8917355893e-03 3.6598886911e-03 3.6592441330e-03 +62 5.2909052578e-04 1.8395463100e-03 3.5614029282e-03 3.5607421050e-03 +63 5.1727130892e-04 1.7892198648e-03 3.4663235763e-03 3.4656548805e-03 +64 5.0635732810e-04 1.7405948618e-03 3.3743866430e-03 3.3737459415e-03 +65 4.9779566421e-04 1.6939423061e-03 3.2854981346e-03 3.2844247544e-03 +66 4.9013704321e-04 1.6484995835e-03 3.1989910545e-03 3.1980087335e-03 +67 4.7707900547e-04 1.6041912144e-03 3.1149590409e-03 3.1148955943e-03 +68 4.6665755992e-04 1.5616936632e-03 3.0344328365e-03 3.0340816071e-03 +69 4.5676260431e-04 1.5205590293e-03 2.9567416276e-03 2.9561112730e-03 +70 4.4765109071e-04 1.4806459206e-03 2.8815286612e-03 2.8808447315e-03 +71 4.3870864868e-04 1.4419469504e-03 2.8087208032e-03 2.8081637976e-03 +72 4.2942643345e-04 1.4044462530e-03 2.7384502951e-03 2.7380418451e-03 +73 4.1972613357e-04 1.3681531001e-03 2.6708476545e-03 2.6705053818e-03 +74 4.0969275065e-04 1.3329950418e-03 2.6058340095e-03 2.6054756705e-03 +75 3.9950611230e-04 1.2989561162e-03 2.5432514716e-03 2.5428576777e-03 +76 3.8952438688e-04 1.2659770088e-03 2.4828425579e-03 2.4824450746e-03 +77 3.7981411961e-04 1.2339869849e-03 2.4243681624e-03 2.4239902507e-03 +78 3.7031243695e-04 1.2028937157e-03 2.3675164238e-03 2.3671654704e-03 +79 3.6094198572e-04 1.1725255261e-03 2.3122921215e-03 2.3123138489e-03 +80 3.5158372333e-04 1.1433410703e-03 2.2587203376e-03 2.2583792234e-03 +81 3.4317658969e-04 1.1147611098e-03 2.2069102002e-03 2.2066807900e-03 +82 3.3514331331e-04 1.0869931127e-03 2.1567926231e-03 2.1565761234e-03 +83 3.2687534395e-04 1.0600306107e-03 2.1082853488e-03 2.1079896875e-03 +84 3.1894735127e-04 1.0338138541e-03 2.0612472280e-03 2.0608946832e-03 +85 3.1151261576e-04 1.0082810314e-03 2.0156831670e-03 2.0153305610e-03 +86 3.0466189188e-04 9.8340257990e-04 1.9715383113e-03 1.9712294960e-03 +87 2.9841178798e-04 9.5917009420e-04 1.9287012676e-03 1.9284448251e-03 +88 2.9255550812e-04 9.3558975756e-04 1.8870508145e-03 1.8868267079e-03 +89 2.8681768854e-04 9.1264866469e-04 1.8464987749e-03 1.8462847983e-03 +90 2.8102219366e-04 8.9032482795e-04 1.8070054408e-03 1.8067858365e-03 +91 2.7518856979e-04 8.6857042401e-04 1.7685887381e-03 1.7683684956e-03 +92 2.6990328582e-04 8.4741081687e-04 1.7311316283e-03 1.7309324367e-03 +93 2.6479126934e-04 8.2678871619e-04 1.6947153562e-03 1.6945258719e-03 +94 2.5964554282e-04 8.0668938806e-04 1.6593165875e-03 1.6591237428e-03 +95 2.5447053312e-04 7.8710502491e-04 1.6249073701e-03 1.6247053790e-03 +96 2.4933803837e-04 7.6802438151e-04 1.5914899707e-03 1.5912826099e-03 +97 2.4352384774e-04 7.4952804945e-04 1.5591308681e-03 1.5587106911e-03 +98 2.3843819291e-04 7.3133619851e-04 1.5276577504e-03 1.5274565640e-03 +99 2.3438045362e-04 7.1363667895e-04 1.4971515012e-03 1.4970719119e-03 +100 2.2824597193e-04 6.9650872117e-04 1.4674920973e-03 1.4672074814e-03 + +Time = 100s + +smoothSolver: Solving for Ux, Initial residual = 0.0006965087212, Final residual = 5.642981059e-05, No Iterations 3 +smoothSolver: Solving for Uy, Initial residual = 0.001467492097, Final residual = 0.0001171847484, No Iterations 3 +smoothSolver: Solving for Uz, Initial residual = 0.001467207481, Final residual = 0.0001171599669, No Iterations 3 +GAMG: Solving for p, Initial residual = 0.0002282459719, Final residual = 9.366860305e-06, No Iterations 2 +time step continuity errors : sum local = 4.024940768e-05, global = 7.689943408e-06 +GAMG: Solving for p, Initial residual = 9.252250402e-05, Final residual = 4.609742109e-06, No Iterations 2 +time step continuity errors : sum local = 1.97718051e-05, global = 3.783456406e-06, cumulative = -0.000227473583 +ExecutionTime = 10.387637 s ClockTime = 14 s + +surfaceFieldValue massAvgOutletPressureVelocity write: + average(outlet) of p = 0 + average(outlet) of U = (11.16340457 -1.102060972e-06 -1.131642136e-06) + +End + +Finalising parallel run diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/0/U b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/0/U new file mode 100644 index 000000000..5858e4097 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/0/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volVectorField; + location "0"; + object U; +} +// ************************************************************************* // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type flowRateInletVelocity; + profile turbulentBL; + massFlowRate $mdot_air; + rhoInlet $rho_air; + } + outlet + { + type inletOutlet; + inletValue uniform (0 0 0); + } + walls + { + type fixedValue; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/0/p b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/0/p new file mode 100644 index 000000000..940fe36f5 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/0/p @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object p; +} +// ************************************************************************* // + +// XXX: do not use pressure from base in this reference case because it is +// provided in pascal for compressible flows! +// #include "$FOAM_CASE/../parameters" + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type zeroGradient; + } + outlet + { + type totalPressure; + p0 $internalField; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/constant/momentumTransport b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/constant/momentumTransport new file mode 100644 index 000000000..a1b5dc083 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/constant/momentumTransport @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object momentumTransport; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/constant/physicalProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/constant/physicalProperties new file mode 100644 index 000000000..4ae45ac96 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/constant/physicalProperties @@ -0,0 +1,21 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object physicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +viscosityModel constant; + +nu 0.01; + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/system/controlDict b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/system/controlDict new file mode 100644 index 000000000..adeee39fe --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-00/zero/system/controlDict @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application foamRun; + +solver incompressibleFluid; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 100; + +deltaT 1; + +writeControl timeStep; + +writeInterval 20; + +purgeWrite 5; + +writeFormat ascii; + +writePrecision 10; + +writeCompression off; + +timeFormat fixed; + +timePrecision 0; + +runTimeModifiable yes; + +functions +{ + #includeFunc residuals(p, U) + + #includeFunc patchFlowRate(patch=inlet, phi) + + #includeFunc patchFlowRate(patch=outlet, phi) + + #include "$FOAM_CASE/../functions/massAvgOutletPressureVelocity" +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/.gitignore b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/.gitignore new file mode 100644 index 000000000..ad4d540e8 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/.gitignore @@ -0,0 +1,12 @@ +# Ignore built case. +[0-9]* +constant/ +system/ +Allclean +processor*/ + +# Ignore all logs. +log.* + +# Unignore actual base case from zero/ directory. +!zero/* diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/Allrun b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/Allrun new file mode 100644 index 000000000..875bc9c60 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/Allrun @@ -0,0 +1,25 @@ +#!/bin/sh +cd ${0%/*} || exit 1 + +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +touch case.foam + +cp -avr zero/* . +cp ../components/decomposeParDict system/ +cp ../components/blockMeshDict system/ +cp ../components/fv* system/ +cp ../components/Allclean . + +runApplication blockMesh +runApplication potentialFoam +rm -rf 0/phi +runApplication decomposePar +runApplication mpirun -np 32 foamRun -parallel +reconstructPar -latestTime +rm -rf processor*/ + +cp "postProcessing/residuals(p,U,k,epsilon)/0/residuals.dat" residuals.ref +tail -21 log.mpirun >> residuals.ref + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/residuals.ref b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/residuals.ref new file mode 100644 index 000000000..b0721e12a --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/residuals.ref @@ -0,0 +1,224 @@ +# Residuals +# Time p Ux Uy Uz k epsilon +0 N/A N/A N/A N/A +1 1.0000000000e+00 1.4039261399e-01 1.7957755831e-01 1.7957755831e-01 9.9999999999e-01 5.1152946050e-02 +2 3.5070864593e-01 2.0717372939e-01 1.6458443853e-01 1.6436620957e-01 4.0257913609e-01 5.1473089258e-03 +3 1.6213079535e-01 1.8654236908e-01 1.4923439530e-01 1.4940030851e-01 1.5407900247e-01 3.9434880127e-03 +4 9.7926210538e-02 1.7198595448e-01 1.4157212964e-01 1.4194533141e-01 9.2887251594e-02 3.8040407769e-03 +5 1.3374847928e-01 1.4152695159e-01 1.3680021859e-01 1.3684512045e-01 6.5527573321e-02 3.5411827441e-03 +6 1.4568841480e-01 1.0640061270e-01 1.3128346412e-01 1.3099345612e-01 5.0092459994e-02 3.2522643688e-03 +7 1.1503214026e-01 8.2632434433e-02 1.2726547633e-01 1.2708388793e-01 4.0215808456e-02 2.9656647699e-03 +8 7.7700307392e-02 7.1104027396e-02 1.2291778055e-01 1.2304105047e-01 3.3383982408e-02 2.6981706130e-03 +9 7.2349531834e-02 6.5559262632e-02 1.1889131701e-01 1.1928170164e-01 2.8392721618e-02 2.4551113159e-03 +10 6.7981404098e-02 6.0939440569e-02 1.1567057171e-01 1.1600892162e-01 2.4597706208e-02 2.2378422505e-03 +11 6.3198687904e-02 5.5504181121e-02 1.1330276821e-01 1.1330106556e-01 2.1624710466e-02 2.0463367909e-03 +12 5.8247385591e-02 5.0195797475e-02 1.1182914928e-01 1.1162036925e-01 1.9255274005e-02 1.8791298833e-03 +13 5.2045514004e-02 4.5616837913e-02 1.1076212871e-01 1.1065527024e-01 1.7339256087e-02 1.7339226304e-03 +14 4.6799706436e-02 4.2043861200e-02 1.0952746824e-01 1.0961878553e-01 1.5777689347e-02 1.6081380088e-03 +15 4.4459611172e-02 3.9218711832e-02 1.0789963377e-01 1.0811355080e-01 1.4489564564e-02 1.5008486676e-03 +16 4.1658126051e-02 3.6815790398e-02 1.0624590897e-01 1.0643004658e-01 1.3464183148e-02 1.4079827065e-03 +17 3.8232597845e-02 3.4669888806e-02 1.0495572740e-01 1.0500902457e-01 1.2627101704e-02 1.3286535888e-03 +18 3.5544268172e-02 3.2602308432e-02 1.0400440709e-01 1.0396537990e-01 1.1989677732e-02 1.2616702929e-03 +19 3.3890659202e-02 3.0600653506e-02 1.0299718934e-01 1.0298584438e-01 1.1498452434e-02 1.2056404824e-03 +20 3.2906582124e-02 2.8814623229e-02 1.0169925778e-01 1.0175495914e-01 1.1160739879e-02 1.1592733791e-03 +21 3.1807507261e-02 2.7289082847e-02 1.0014638814e-01 1.0022853711e-01 1.1004814431e-02 1.1214015050e-03 +22 3.0948510347e-02 2.5946376430e-02 9.8652205086e-02 9.8709501507e-02 1.1187684173e-02 1.0909638963e-03 +23 3.0177773293e-02 2.4684640051e-02 9.7662906820e-02 9.7676859616e-02 1.1533655790e-02 1.0669812002e-03 +24 2.9230038591e-02 2.3471490551e-02 9.7425433889e-02 9.7421144764e-02 1.1827361469e-02 1.0485552537e-03 +25 2.8356230734e-02 2.2345315067e-02 9.7442398730e-02 9.7464976858e-02 1.2072688702e-02 1.0347710237e-03 +26 2.8023140842e-02 2.1319941258e-02 9.7154932567e-02 9.7218155479e-02 1.2274355539e-02 1.0247790845e-03 +27 2.7750785643e-02 2.0384706358e-02 9.6529623864e-02 9.6610244817e-02 1.2437707653e-02 1.0179999144e-03 +28 2.7011061660e-02 1.9518798703e-02 9.5717454159e-02 9.5784914136e-02 1.2566402651e-02 1.0140219828e-03 +29 2.6116271237e-02 1.8712972251e-02 9.4925123178e-02 9.4963290561e-02 1.2663509550e-02 1.0122270672e-03 +30 2.5544757329e-02 1.7962524280e-02 9.4311478734e-02 9.4330629161e-02 1.2730491170e-02 1.0122577512e-03 +31 2.5281892719e-02 1.7264558980e-02 9.3787010125e-02 9.3811817186e-02 1.2768357969e-02 1.0136156935e-03 +32 2.5026639085e-02 1.6615509686e-02 9.3283075480e-02 9.3323450489e-02 1.2781290329e-02 1.0159888024e-03 +33 2.4644320873e-02 1.6009613776e-02 9.2716977692e-02 9.2766192425e-02 1.2769376902e-02 1.0191277553e-03 +34 2.4234818168e-02 1.5442827300e-02 9.2122706123e-02 9.2166236446e-02 1.2735167418e-02 1.0226228645e-03 +35 2.3933204118e-02 1.4909442743e-02 9.1514339120e-02 9.1544166911e-02 1.2688209944e-02 1.0262206780e-03 +36 2.3719534224e-02 1.4414916997e-02 9.0919884105e-02 9.0941287546e-02 1.2620808837e-02 1.0297323886e-03 +37 2.3572334532e-02 1.3958288297e-02 9.0363595624e-02 9.0385927977e-02 1.2534110492e-02 1.0328674604e-03 +38 2.3467137791e-02 1.3532842289e-02 8.9846433225e-02 8.9875518252e-02 1.2439915815e-02 1.0354886441e-03 +39 2.3264217169e-02 1.3131159108e-02 8.9328342034e-02 8.9364168262e-02 1.2362357698e-02 1.0374613269e-03 +40 2.2914595832e-02 1.2750489556e-02 8.8763191261e-02 8.8803657905e-02 1.2282500364e-02 1.0386640169e-03 +41 2.2431723185e-02 1.2386985571e-02 8.8077186710e-02 8.8120457818e-02 1.2198780424e-02 1.0390904449e-03 +42 2.1865825039e-02 1.2044682626e-02 8.7235199112e-02 8.7270199686e-02 1.2093317761e-02 1.0386144261e-03 +43 2.1208180024e-02 1.1722602406e-02 8.6257573034e-02 8.6274277218e-02 1.1953647533e-02 1.0372209962e-03 +44 2.1216503081e-02 1.1417726629e-02 8.5297804755e-02 8.5299378535e-02 1.1787829409e-02 1.0348888472e-03 +45 2.1730579959e-02 1.1127642004e-02 8.4568373779e-02 8.4566669896e-02 1.1613300097e-02 1.0314923449e-03 +46 2.1665539000e-02 1.0851079953e-02 8.4207554655e-02 8.4216517999e-02 1.1433428217e-02 1.0271855893e-03 +47 2.1049429122e-02 1.0587061983e-02 8.4060100878e-02 8.4086305335e-02 1.1250571661e-02 1.0218489054e-03 +48 2.0648524472e-02 1.0337114178e-02 8.3790388104e-02 8.3830341512e-02 1.1065299936e-02 1.0154469039e-03 +49 2.0528105043e-02 1.0101099815e-02 8.3310853491e-02 8.3353356453e-02 1.0879046317e-02 1.0080730735e-03 +50 2.0370868563e-02 9.8738778305e-03 8.2716410102e-02 8.2751521843e-02 1.0691882137e-02 9.9980774525e-04 +51 2.0040477396e-02 9.6536833946e-03 8.2119811741e-02 8.2145199768e-02 1.0504967812e-02 9.9073441645e-04 +52 1.9663755321e-02 9.4415238993e-03 8.1575381149e-02 8.1595318655e-02 1.0321134018e-02 9.8093145684e-04 +53 1.9407152588e-02 9.2391652588e-03 8.1063298039e-02 8.1084026111e-02 1.0137778533e-02 9.7043050628e-04 +54 1.9200756471e-02 9.0462877304e-03 8.0547018529e-02 8.0571508179e-02 9.9556982030e-03 9.5933274101e-04 +55 1.8960470778e-02 8.8617852464e-03 8.0013766407e-02 8.0040161214e-02 9.7764767674e-03 9.4771023112e-04 +56 1.8707010090e-02 8.6833349621e-03 7.9468383040e-02 7.9493281875e-02 9.6002814413e-03 9.3564778134e-04 +57 1.8480398448e-02 8.5105902076e-03 7.8930708036e-02 7.8952201975e-02 9.4279075210e-03 9.2323979688e-04 +58 1.8297842345e-02 8.3436710296e-03 7.8406478348e-02 7.8424994219e-02 9.2604484967e-03 9.1054719311e-04 +59 1.8151097659e-02 8.1832363883e-03 7.7882639768e-02 7.7900123073e-02 9.0970380477e-03 8.9763536185e-04 +60 1.8083092048e-02 8.0292713030e-03 7.7357926898e-02 7.7375980149e-02 8.9384456217e-03 8.8455838564e-04 +61 1.8060230553e-02 7.8809554677e-03 7.6833205276e-02 7.6852296844e-02 8.7850002968e-03 8.7140348962e-04 +62 1.7927024659e-02 7.7372476864e-03 7.6289615034e-02 7.6310179821e-02 8.6386979769e-03 8.5820828001e-04 +63 1.7584086883e-02 7.5978654122e-03 7.5721704937e-02 7.5744368856e-02 8.4979735988e-03 8.4504691627e-04 +64 1.7118579014e-02 7.4635767705e-03 7.5100778735e-02 7.5125586926e-02 8.3633438961e-03 8.3191471018e-04 +65 1.6695639094e-02 7.3330261727e-03 7.4416439941e-02 7.4440183139e-02 8.2341974270e-03 8.1897620597e-04 +66 1.6396553612e-02 7.2046837847e-03 7.3646151861e-02 7.3661088786e-02 8.1101168536e-03 8.0623443814e-04 +67 1.6074845291e-02 7.0811924382e-03 7.2865141945e-02 7.2868255673e-02 7.9868938523e-03 7.9371955387e-04 +68 1.5964072107e-02 6.9631701052e-03 7.2179736361e-02 7.2175626183e-02 7.8674490997e-03 7.8136356800e-04 +69 1.6056659835e-02 6.8505646619e-03 7.1665629037e-02 7.1663886518e-02 7.7523102325e-03 7.6918482433e-04 +70 1.5818830313e-02 6.7416990978e-03 7.1330484641e-02 7.1339309061e-02 7.6407919244e-03 7.5722690643e-04 +71 1.5507570052e-02 6.6355021999e-03 7.1018067686e-02 7.1037473391e-02 7.5332850564e-03 7.4548169155e-04 +72 1.5286307150e-02 6.5326555260e-03 7.0598477727e-02 7.0623468079e-02 7.4285355396e-03 7.3398514718e-04 +73 1.5133431702e-02 6.4313945796e-03 7.0063840122e-02 7.0088614606e-02 7.3266685853e-03 7.2275900575e-04 +74 1.4926936501e-02 6.3323291914e-03 6.9488421686e-02 6.9509019320e-02 7.2272063975e-03 7.1182535185e-04 +75 1.4644947504e-02 6.2356070316e-03 6.8930423768e-02 6.8946526880e-02 7.1300899916e-03 7.0117444008e-04 +76 1.4382962956e-02 6.1415404268e-03 6.8401830762e-02 6.8415632056e-02 7.0355549441e-03 6.9082904150e-04 +77 1.4195442832e-02 6.0506930571e-03 6.7886290037e-02 6.7900022209e-02 6.9435096262e-03 6.8079616900e-04 +78 1.4010288009e-02 5.9616376134e-03 6.7369002064e-02 6.7383781567e-02 6.8538496625e-03 6.7106099553e-04 +79 1.3817154865e-02 5.8745210053e-03 6.6850548262e-02 6.6865229749e-02 6.7663723607e-03 6.6165612235e-04 +80 1.3632661860e-02 5.7890620964e-03 6.6337704550e-02 6.6350950105e-02 6.6809919931e-03 6.5261361048e-04 +81 1.3485437884e-02 5.7053695024e-03 6.5834464184e-02 6.5845930940e-02 6.5980390719e-03 6.4393035318e-04 +82 1.3397430659e-02 5.6236131118e-03 6.5339343566e-02 6.5349671681e-02 6.5174264757e-03 6.3558480753e-04 +83 1.3389464222e-02 5.5438134182e-03 6.4847712845e-02 6.4857749826e-02 6.4391158688e-03 6.2752991604e-04 +84 1.3395402753e-02 5.4657760831e-03 6.4354625896e-02 6.4365007351e-02 6.3629725134e-03 6.1977140718e-04 +85 1.3307101661e-02 5.3892876234e-03 6.3856060255e-02 6.3866832720e-02 6.2886504462e-03 6.1230613513e-04 +86 1.3095772380e-02 5.3141985796e-03 6.3349825371e-02 6.3361261854e-02 6.2161118667e-03 6.0514605813e-04 +87 1.2775044226e-02 5.2405579573e-03 6.2826484201e-02 6.2838396045e-02 6.1453470310e-03 5.9826699113e-04 +88 1.2411418105e-02 5.1679527926e-03 6.2275710997e-02 6.2287961888e-02 6.0765944107e-03 5.9167615836e-04 +89 1.2089590284e-02 5.0967180932e-03 6.1702823762e-02 6.1713133996e-02 6.0097454933e-03 5.8534515185e-04 +90 1.1916868742e-02 5.0269386689e-03 6.1120293611e-02 6.1125389632e-02 5.9449315217e-03 5.7926003475e-04 +91 1.1717745260e-02 4.9588020570e-03 6.0554106874e-02 6.0552730715e-02 5.8806129630e-03 5.7339658440e-04 +92 1.1448202584e-02 4.8922031719e-03 6.0028965175e-02 6.0023998559e-02 5.8176856140e-03 5.6774195089e-04 +93 1.1315895394e-02 4.8269183380e-03 5.9575133985e-02 5.9571980454e-02 5.7563136760e-03 5.6228281754e-04 +94 1.1324444387e-02 4.7631166491e-03 5.9195541707e-02 5.9198119000e-02 5.6965975800e-03 5.5699658311e-04 +95 1.1201590865e-02 4.7007469879e-03 5.8842180218e-02 5.8850234186e-02 5.6386302889e-03 5.5187038675e-04 +96 1.1018563001e-02 4.6397873679e-03 5.8452111951e-02 5.8463737882e-02 5.5817736907e-03 5.4689631421e-04 +97 1.0876265502e-02 4.5802793167e-03 5.8007893253e-02 5.8020460541e-02 5.5259872191e-03 5.4206895722e-04 +98 1.0739092052e-02 4.5211300131e-03 5.7535917995e-02 5.7547878286e-02 5.4711967011e-03 5.3738810168e-04 +99 1.0559537088e-02 4.4628546071e-03 5.7069295349e-02 5.7079860499e-02 5.4173291008e-03 5.3284005727e-04 +100 1.0378932836e-02 4.4056822887e-03 5.6619709796e-02 5.6628918171e-02 5.3645683585e-03 5.2842359817e-04 +101 1.0235293815e-02 4.3493975353e-03 5.6184228334e-02 5.6192448805e-02 5.3125270728e-03 5.2412659520e-04 +102 1.0108717531e-02 4.2940417702e-03 5.5757872095e-02 5.5765516014e-02 5.2612520947e-03 5.1994444308e-04 +103 9.8741007503e-03 4.2397397755e-03 5.5311015905e-02 5.5318169463e-02 5.2169484104e-03 5.1411873052e-04 +104 9.6803590717e-03 4.1857258907e-03 5.4796273112e-02 5.4804030742e-02 5.1740740314e-03 5.0878921021e-04 +105 9.6096601808e-03 4.1322223228e-03 5.4238199410e-02 5.4245394786e-02 5.1323347094e-03 5.0383405586e-04 +106 9.6368060754e-03 4.0796206035e-03 5.3693996901e-02 5.3698732326e-02 5.0914976620e-03 4.9917308256e-04 +107 9.6657247754e-03 4.0281201792e-03 5.3186940118e-02 5.3189162912e-02 5.0515271511e-03 4.9476143227e-04 +108 9.6128302084e-03 3.9776125520e-03 5.2704404876e-02 5.2706228490e-02 5.0123806735e-03 4.9056403831e-04 +109 9.4688426162e-03 3.9279713137e-03 5.2220812204e-02 5.2224123512e-02 4.9740229157e-03 4.8653904527e-04 +110 9.2516972044e-03 3.8788585366e-03 5.1725061473e-02 5.1730142216e-02 4.9363423496e-03 4.8266014803e-04 +111 8.9927728026e-03 3.8304792217e-03 5.1221977260e-02 5.1227729923e-02 4.8991153218e-03 4.7891820179e-04 +112 8.8421121962e-03 3.7825418266e-03 5.0745066637e-02 5.0749455638e-02 4.8551176749e-03 4.7700307569e-04 +113 8.7188896917e-03 3.7356372311e-03 5.0354606575e-02 5.0355404761e-02 4.8120970512e-03 4.7477100038e-04 +114 8.5816085601e-03 3.6897284973e-03 5.0028788951e-02 5.0026902991e-02 4.7695507353e-03 4.7232990603e-04 +115 8.3952124509e-03 3.6443931142e-03 4.9707201215e-02 4.9704584709e-02 4.7271548802e-03 4.6974192246e-04 +116 8.1760909675e-03 3.5994127624e-03 4.9370776474e-02 4.9368218531e-02 4.6852335753e-03 4.6703966462e-04 +117 7.9891281185e-03 3.5548587257e-03 4.9046108496e-02 4.9043990535e-02 4.6439420511e-03 4.6423929929e-04 +118 7.9653827743e-03 3.5114908650e-03 4.8759298683e-02 4.8758096921e-02 4.6030668250e-03 4.6135534978e-04 +119 7.9835814192e-03 3.4680281300e-03 4.8503486795e-02 4.8504358105e-02 4.5629447705e-03 4.5839303794e-04 +120 7.7634245618e-03 3.4256853559e-03 4.8220807172e-02 4.8224356913e-02 4.5278858752e-03 4.5367793454e-04 +121 7.5389015156e-03 3.3834736529e-03 4.7825607050e-02 4.7833360428e-02 4.4934479332e-03 4.4924784190e-04 +122 7.4275609014e-03 3.3410790933e-03 4.7356519249e-02 4.7365498257e-02 4.4593270965e-03 4.4502597844e-04 +123 7.3645314032e-03 3.2997932922e-03 4.6891064252e-02 4.6897560695e-02 4.4255037427e-03 4.4095036072e-04 +124 7.2999495543e-03 3.2588134619e-03 4.6466890148e-02 4.6469567119e-02 4.3917491390e-03 4.3697232829e-04 +125 7.2174415603e-03 3.2185127695e-03 4.6073702557e-02 4.6074655198e-02 4.3580755380e-03 4.3306405604e-04 +126 7.1216264837e-03 3.1791431095e-03 4.5687426345e-02 4.5689937152e-02 4.3244372146e-03 4.2921360355e-04 +127 7.0514552876e-03 3.1401243313e-03 4.5299989836e-02 4.5304167318e-02 4.2909013081e-03 4.2539146046e-04 +128 7.0155062293e-03 3.1005755293e-03 4.4914811841e-02 4.4918636721e-02 4.2575046256e-03 4.2158497231e-04 +129 7.0128931054e-03 3.0624144688e-03 4.4539367015e-02 4.4541324246e-02 4.2240524559e-03 4.1778181635e-04 +130 7.0024311057e-03 3.0239898853e-03 4.4172930639e-02 4.4173235045e-02 4.1904399240e-03 4.1396014594e-04 +131 6.9508717109e-03 2.9862484552e-03 4.3810473741e-02 4.3810007938e-02 4.1565184208e-03 4.1010233390e-04 +132 6.8591637891e-03 2.9488963977e-03 4.3449987249e-02 4.3449988523e-02 4.1224017261e-03 4.0620593778e-04 +133 6.7300668968e-03 2.9113073885e-03 4.3089464397e-02 4.3090215518e-02 4.0878836289e-03 4.0224322103e-04 +134 6.5634999216e-03 2.8737043285e-03 4.2729697239e-02 4.2730465712e-02 4.0526876888e-03 3.9819904312e-04 +135 6.3719367006e-03 2.8367160393e-03 4.2372208421e-02 4.2372191399e-02 4.0167720044e-03 3.9403943233e-04 +136 6.1880354418e-03 2.8001755938e-03 4.2020511411e-02 4.2019562372e-02 3.9800123848e-03 3.8976209132e-04 +137 6.0411740678e-03 2.7636557517e-03 4.1674197380e-02 4.1672328749e-02 3.9422658612e-03 3.8535809011e-04 +138 5.9120578147e-03 2.7273847188e-03 4.1329258893e-02 4.1326429593e-02 3.9034436680e-03 3.8080354237e-04 +139 5.7924884135e-03 2.6913320903e-03 4.0986790402e-02 4.0982976407e-02 3.8626461804e-03 3.7608821007e-04 +140 5.6655488619e-03 2.6552902719e-03 4.0649886406e-02 4.0645460210e-02 3.8204958340e-03 3.7120502999e-04 +141 5.5334956357e-03 2.6193344010e-03 4.0322607327e-02 4.0318262746e-02 3.7769541139e-03 3.6613635396e-04 +142 5.4223521275e-03 2.5835562300e-03 4.0005017834e-02 4.0001700613e-02 3.7320864652e-03 3.6087706854e-04 +143 5.3839707382e-03 2.5478757646e-03 3.9694815510e-02 3.9693198151e-02 3.6855935424e-03 3.5541667469e-04 +144 5.3747932061e-03 2.5122387317e-03 3.9383071682e-02 3.9383173928e-02 3.6376651893e-03 3.4975199447e-04 +145 5.3266324321e-03 2.4766432303e-03 3.9061892115e-02 3.9063323308e-02 3.5882661040e-03 3.4388956507e-04 +146 5.2607214570e-03 2.4410075824e-03 3.8731895208e-02 3.8733930315e-02 3.5369776484e-03 3.3781525637e-04 +147 5.1952487887e-03 2.4053281643e-03 3.8398108712e-02 3.8400189928e-02 3.4841235777e-03 3.3153124101e-04 +148 5.1399794400e-03 2.3694678859e-03 3.8065439603e-02 3.8067305685e-02 3.4293273038e-03 3.2503770784e-04 +149 5.0954734839e-03 2.3334573367e-03 3.7737037058e-02 3.7738435208e-02 3.3727526677e-03 3.1833657837e-04 +150 5.0604502580e-03 2.2971411278e-03 3.7414150265e-02 3.7414925485e-02 3.3143837702e-03 3.1142544993e-04 +151 5.0360143784e-03 2.2604066355e-03 3.7094802808e-02 3.7094990567e-02 3.2541361689e-03 3.0431367589e-04 +152 5.0184184443e-03 2.2232028977e-03 3.6778321917e-02 3.6778017957e-02 3.1920788290e-03 2.9701431811e-04 +153 4.9930288823e-03 2.1856544427e-03 3.6463427659e-02 3.6462718250e-02 3.1281338187e-03 2.8953669364e-04 +154 4.9481851125e-03 2.1477130803e-03 3.6148878018e-02 3.6147917083e-02 3.0623560853e-03 2.8188825843e-04 +155 4.8821891201e-03 2.1091829970e-03 3.5834094708e-02 3.5832946373e-02 2.9947556955e-03 2.7407984191e-04 +156 4.7909363166e-03 2.0700706354e-03 3.5515886591e-02 3.5514609666e-02 2.9252633831e-03 2.6612593214e-04 +157 4.6804463785e-03 2.0303284174e-03 3.5193689490e-02 3.5192326320e-02 2.8540767936e-03 2.5803534657e-04 +158 4.5583696748e-03 1.9898162233e-03 3.4870617501e-02 3.4869102758e-02 2.7811505653e-03 2.4981605517e-04 +159 4.4358364736e-03 1.9485089513e-03 3.4547420788e-02 3.4545659025e-02 2.7066834065e-03 2.4149730141e-04 +160 4.3303060221e-03 1.9063839370e-03 3.4220928938e-02 3.4218805803e-02 2.6306919182e-03 2.3310317060e-04 +161 4.2431651105e-03 1.8632846037e-03 3.3886657972e-02 3.3884114518e-02 2.5532796225e-03 2.2465674952e-04 +162 4.1607722769e-03 1.8191875350e-03 3.3545118404e-02 3.3542082880e-02 2.4743755542e-03 2.1617949359e-04 +163 4.0757654598e-03 1.7739185558e-03 3.3197087146e-02 3.3193862839e-02 2.3945431256e-03 2.0769997810e-04 +164 3.9933356935e-03 1.7275015804e-03 3.2841344852e-02 3.2838434793e-02 2.3139410532e-03 1.9923519554e-04 +165 3.9127218924e-03 1.6798735811e-03 3.2477003031e-02 3.2474913254e-02 2.2328766243e-03 1.9080495619e-04 +166 3.8554319434e-03 1.6309293402e-03 3.2100282126e-02 3.2099359055e-02 2.1518248757e-03 1.8242856331e-04 +167 3.8346978482e-03 1.5804652897e-03 3.1705892326e-02 3.1706174252e-02 2.0710284503e-03 1.7413656430e-04 +168 3.8384323297e-03 1.5284127551e-03 3.1288169985e-02 3.1289492425e-02 1.9907743196e-03 1.6592449354e-04 +169 3.8252557941e-03 1.4747839053e-03 3.0845522398e-02 3.0847706692e-02 1.9113187462e-03 1.5780243695e-04 +170 3.7925031166e-03 1.4194125896e-03 3.0380729016e-02 3.0383500972e-02 1.8332215193e-03 1.4977798003e-04 +171 3.7521925462e-03 1.3621703469e-03 2.9899746791e-02 2.9902620535e-02 1.7567513899e-03 1.4185296682e-04 +172 4.1755858251e-03 1.3031006730e-03 2.9410764007e-02 2.9413304836e-02 1.6822032259e-03 1.3403056807e-04 +173 4.0192713483e-03 1.2419792618e-03 2.9469847139e-02 2.9472537912e-02 1.6098593779e-03 1.2628109784e-04 +174 3.6771777142e-03 1.1788377880e-03 2.9422069292e-02 2.9434711272e-02 1.5396597717e-03 1.1857243916e-04 +175 3.4207390034e-03 1.1138865765e-03 2.9027392688e-02 2.9053287431e-02 1.4713940609e-03 1.1090378034e-04 +176 3.3001020454e-03 1.0472609156e-03 2.8418770747e-02 2.8445000545e-02 1.4047414044e-03 1.0329076090e-04 +177 3.2953995809e-03 9.7912997704e-04 2.7879813471e-02 2.7890721344e-02 1.3392758410e-03 9.5751062627e-05 +178 3.2202087881e-03 9.0961762032e-04 2.7593036348e-02 2.7586937706e-02 1.2733211083e-03 8.8182373051e-05 +179 3.0809182289e-03 8.3966063293e-04 2.7007133291e-02 2.6996451724e-02 1.2081101320e-03 8.0823589643e-05 +180 2.9570857722e-03 7.6974543041e-04 2.6642702579e-02 2.6626802386e-02 1.1429236243e-03 7.3641147731e-05 +181 2.9522195200e-03 7.0084132974e-04 2.6736923547e-02 2.6717887408e-02 1.0769551863e-03 6.6646039453e-05 +182 2.9118989830e-03 6.3254083705e-04 2.7176199451e-02 2.7163435112e-02 1.0091220726e-03 5.9892129993e-05 +183 2.7896873592e-03 5.6460003270e-04 2.7681106060e-02 2.7681345649e-02 9.3880993383e-04 5.3451942133e-05 +184 2.6543713448e-03 4.9745209908e-04 2.8035440744e-02 2.8047107680e-02 8.6579998424e-04 4.7386904004e-05 +185 2.5816000209e-03 4.3196018193e-04 2.8162366854e-02 2.8177155814e-02 7.8996024722e-04 4.1738633737e-05 +186 2.5877887093e-03 3.6922738801e-04 2.8033213786e-02 2.8043242449e-02 7.1183498977e-04 3.6532055118e-05 +187 2.6387634682e-03 3.1047941529e-04 2.7571573628e-02 2.7574988163e-02 6.3235235822e-04 3.1782234231e-05 +188 2.6884299055e-03 2.5631798027e-04 2.6588199461e-02 2.6590308980e-02 5.5283212903e-04 2.7489002214e-05 +189 2.6746104832e-03 2.0733273103e-04 2.4936081274e-02 2.4944001064e-02 4.7514642296e-04 2.3597343160e-05 +190 2.6003134713e-03 1.6430031300e-04 2.2617025993e-02 2.2634265100e-02 4.0145446113e-04 2.0055937623e-05 +191 2.4739773161e-03 1.2769178529e-04 1.9773002604e-02 1.9795837040e-02 3.3385763982e-04 1.6871255037e-05 +192 2.2789979790e-03 9.6563679447e-05 1.6620666135e-02 1.6640733955e-02 2.7375996575e-04 1.4035305520e-05 +193 2.0518559612e-03 7.1337115203e-05 1.3409120218e-02 1.3423036019e-02 2.2197948894e-04 1.1534774376e-05 +194 1.8354451735e-03 5.2226591660e-05 1.0440231883e-02 1.0462081728e-02 1.7843960317e-04 9.3597148743e-06 +195 1.5667442657e-03 3.7043810344e-05 7.7979872834e-03 7.8029816563e-03 1.4251695216e-04 7.4989560968e-06 +196 1.3046570830e-03 2.6237483140e-05 5.6450936744e-03 5.6416017945e-03 1.1325445740e-04 5.9327209775e-06 +197 1.0698318556e-03 1.8423990883e-05 3.9793745481e-03 3.9754789118e-03 8.9640213660e-05 4.6294628908e-06 +198 8.6431353714e-04 1.2786234182e-05 2.7332709662e-03 2.7307715295e-03 7.0657510657e-05 3.5617385321e-06 +199 6.8665087300e-04 9.1322057013e-06 1.8381701704e-03 1.8364498521e-03 5.5425561602e-05 2.7033931133e-06 +200 5.4412148803e-04 6.5541638633e-06 1.2280858148e-03 1.2292705081e-03 4.3273010456e-05 2.0248667402e-06 + +Time = 200s + +smoothSolver: Solving for Ux, Initial residual = 6.554163863e-06, Final residual = 2.957562542e-07, No Iterations 2 +smoothSolver: Solving for Uy, Initial residual = 0.001228085815, Final residual = 5.614320714e-05, No Iterations 2 +smoothSolver: Solving for Uz, Initial residual = 0.001229270508, Final residual = 5.624475215e-05, No Iterations 2 +GAMG: Solving for p, Initial residual = 0.000544121488, Final residual = 6.5997789e-06, No Iterations 2 +time step continuity errors : sum local = 2.856497469e-06, global = -9.3671648e-07 +GAMG: Solving for p, Initial residual = 0.000375826353, Final residual = 4.311085228e-06, No Iterations 2 +time step continuity errors : sum local = 1.866032087e-06, global = -6.373096669e-07, cumulative = 0.0007662056485 +smoothSolver: Solving for epsilon, Initial residual = 2.02486674e-06, Final residual = 6.364703206e-08, No Iterations 2 +smoothSolver: Solving for k, Initial residual = 4.327301046e-05, Final residual = 2.305243259e-06, No Iterations 2 +ExecutionTime = 24.426286 s ClockTime = 35 s + +surfaceFieldValue massAvgOutletPressureVelocity write: + average(outlet) of p = 0 + average(outlet) of U = (8.712630281 1.642178629e-05 1.657427976e-05) + +End + +Finalising parallel run diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/U b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/U new file mode 100644 index 000000000..15f3e7672 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volVectorField; + location "0"; + object U; +} +// ************************************************************************* // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type flowRateInletVelocity; + profile turbulentBL; + massFlowRate $mdot_air; + rhoInlet $rho_air; + } + outlet + { + type inletOutlet; + inletValue uniform (0 0 0); + } + walls + { + type fixedValue; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/epsilon b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/epsilon new file mode 100644 index 000000000..6ece6591b --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/epsilon @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform $epsilon; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type turbulentMixingLengthDissipationRateInlet; + mixingLength 0.005; + phi phi; + k k; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + walls + { + type epsilonWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/k b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/k new file mode 100644 index 000000000..8d25bab0d --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/k @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform $k; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type turbulentIntensityKineticEnergyInlet; + intensity $I; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + } + walls + { + type kqRWallFunction; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/nut b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/nut new file mode 100644 index 000000000..eafec4c53 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/nut @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform $nut; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + walls + { + type nutkWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/p b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/p new file mode 100644 index 000000000..940fe36f5 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/0/p @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object p; +} +// ************************************************************************* // + +// XXX: do not use pressure from base in this reference case because it is +// provided in pascal for compressible flows! +// #include "$FOAM_CASE/../parameters" + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type zeroGradient; + } + outlet + { + type totalPressure; + p0 $internalField; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/constant/momentumTransport b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/constant/momentumTransport new file mode 100644 index 000000000..92e00ac8b --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/constant/momentumTransport @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object momentumTransport; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + model kEpsilon; + + turbulence on; + + printCoeffs on; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/constant/physicalProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/constant/physicalProperties new file mode 100644 index 000000000..288e81b74 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/constant/physicalProperties @@ -0,0 +1,21 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object physicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +viscosityModel constant; + +nu [0 2 -1 0 0 0 0] 1e-05; + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/system/controlDict b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/system/controlDict new file mode 100644 index 000000000..042f30cb0 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-01/zero/system/controlDict @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application foamRun; + +solver incompressibleFluid; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 200; + +deltaT 1; + +writeControl timeStep; + +writeInterval 20; + +purgeWrite 5; + +writeFormat ascii; + +writePrecision 10; + +writeCompression off; + +timeFormat fixed; + +timePrecision 0; + +runTimeModifiable yes; + +functions +{ + #includeFunc residuals(p, U, k, epsilon) + + #includeFunc patchFlowRate(patch=inlet, phi) + + #includeFunc patchFlowRate(patch=outlet, phi) + + #include "$FOAM_CASE/../functions/massAvgOutletPressureVelocity" +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/.gitignore b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/.gitignore new file mode 100644 index 000000000..ad4d540e8 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/.gitignore @@ -0,0 +1,12 @@ +# Ignore built case. +[0-9]* +constant/ +system/ +Allclean +processor*/ + +# Ignore all logs. +log.* + +# Unignore actual base case from zero/ directory. +!zero/* diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/Allrun b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/Allrun new file mode 100644 index 000000000..322a2209e --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/Allrun @@ -0,0 +1,25 @@ +#!/bin/sh +cd ${0%/*} || exit 1 + +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +touch case.foam + +cp -avr zero/* . +cp ../components/decomposeParDict system/ +cp ../components/blockMeshDict system/ +cp ../components/fv* system/ +cp ../components/Allclean . + +runApplication blockMesh +runApplication potentialFoam +rm -rf 0/phi +runApplication decomposePar +runApplication mpirun -np 32 foamRun -parallel +reconstructPar -latestTime +rm -rf processor*/ + +cp "postProcessing/residuals(p,U,k,epsilon,h)/0/residuals.dat" residuals.ref +tail -25 log.mpirun >> residuals.ref + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/residuals.ref b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/residuals.ref new file mode 100644 index 000000000..35166027b --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/residuals.ref @@ -0,0 +1,328 @@ +# Residuals +# Time p Ux Uy Uz k epsilon h +0 N/A N/A N/A N/A N/A +1 9.9999999562e-01 1.8587805277e-01 3.6726317119e-01 1.7903646897e-01 9.9999999997e-01 5.5179812140e-02 9.9999999356e-01 +2 3.2994713955e-01 2.4179828205e-01 2.4655011317e-01 1.5985383627e-01 5.4088771043e-01 1.4390242964e-02 4.2265420408e-01 +3 1.7296516958e-01 1.9891081713e-01 2.1150362110e-01 1.5087795315e-01 2.0911540482e-01 1.3179485147e-02 3.3018076101e-01 +4 1.0887845920e-01 1.6764446633e-01 2.1308133441e-01 1.4060363550e-01 1.2744522006e-01 1.2478660305e-02 4.0874670866e-01 +5 1.0940067584e-01 1.3217619844e-01 1.4693428870e-01 1.3074190369e-01 9.1991064007e-02 1.2028238847e-02 2.4220248189e-01 +6 1.1215327917e-01 9.7212681117e-02 1.4432558634e-01 1.3143027517e-01 7.2223157229e-02 1.1754331404e-02 2.6330511428e-01 +7 8.5807205156e-02 7.5762286231e-02 1.5640318451e-01 1.3164017060e-01 6.2139376216e-02 1.1585431280e-02 2.1760846975e-01 +8 6.6929006777e-02 6.4769058391e-02 1.2119659452e-01 1.2776426011e-01 5.6620446405e-02 1.1473559295e-02 1.6764812836e-01 +9 5.4446532966e-02 5.8653132166e-02 1.0218953094e-01 1.2428035573e-01 5.2342130316e-02 1.1392715678e-02 1.9647687104e-01 +10 4.7735671355e-02 5.3830935655e-02 1.0289244533e-01 1.2140450275e-01 4.9035278359e-02 1.1324747618e-02 1.7894748446e-01 +11 4.6760748955e-02 4.8850609226e-02 9.1440108737e-02 1.1766948086e-01 4.6636519074e-02 1.1264780911e-02 1.5246635972e-01 +12 4.3981009616e-02 4.3705888267e-02 8.5656517842e-02 1.1607497383e-01 4.5089042428e-02 1.1209675171e-02 1.5264190264e-01 +13 4.0691378662e-02 3.9335821101e-02 8.7241518245e-02 1.1608181277e-01 4.4871597041e-02 1.1149623073e-02 1.4065805681e-01 +14 3.9067585485e-02 3.5993609814e-02 8.1478164989e-02 1.1486956879e-01 4.5146802403e-02 1.1078758325e-02 1.2709867974e-01 +15 3.6931085281e-02 3.3434055884e-02 7.6412200294e-02 1.1280229178e-01 4.5700201288e-02 1.0994100173e-02 1.2708729225e-01 +16 3.4515445211e-02 3.1263655536e-02 7.5145556545e-02 1.1103553748e-01 4.6278477518e-02 1.0895118021e-02 1.2566915300e-01 +17 3.2521924848e-02 2.9292606406e-02 7.2446632166e-02 1.0930488705e-01 4.6902162443e-02 1.0783445280e-02 1.1291684980e-01 +18 3.1256924530e-02 2.7488944421e-02 6.9848768222e-02 1.0774172692e-01 4.7785647902e-02 1.0659638103e-02 1.0459761321e-01 +19 3.0093071277e-02 2.5884434052e-02 6.8848364676e-02 1.0650625360e-01 4.8725150486e-02 1.0524273044e-02 1.0169337306e-01 +20 2.9255022978e-02 2.4495317432e-02 6.7056686484e-02 1.0518928302e-01 4.8133950438e-02 1.0378257186e-02 1.0083811602e-01 +21 2.8669481534e-02 2.3271789884e-02 6.5398848946e-02 1.0377623232e-01 4.4107845160e-02 1.0222593716e-02 9.9354553503e-02 +22 2.7793576533e-02 2.2163686790e-02 6.4246645159e-02 1.0239575685e-01 4.0315159248e-02 1.0057975225e-02 9.8153749125e-02 +23 2.6536643471e-02 2.1109904692e-02 6.2887926341e-02 1.0076938641e-01 3.7088686001e-02 9.9255867979e-03 9.8845089581e-02 +24 2.5472860321e-02 2.0150073127e-02 6.1807088550e-02 9.9635045140e-02 3.4259409254e-02 9.7803013901e-03 9.5363177968e-02 +25 2.4928307721e-02 1.9274097383e-02 6.0849547672e-02 9.8461525644e-02 3.1794738960e-02 9.6236950430e-03 9.0325801035e-02 +26 2.4708710879e-02 1.8471996326e-02 5.9853504919e-02 9.7121282609e-02 2.9681172315e-02 9.4572837622e-03 8.6938932131e-02 +27 2.4305586370e-02 1.7734564178e-02 5.8900522555e-02 9.5745117828e-02 2.7822725733e-02 9.2831221237e-03 8.5778550581e-02 +28 2.3700349172e-02 1.7056347817e-02 5.8086320155e-02 9.4523727002e-02 2.6167924776e-02 9.1033900897e-03 8.6192519656e-02 +29 2.3101794535e-02 1.6432436391e-02 5.7404557822e-02 9.3539321698e-02 2.4676371665e-02 8.9203832089e-03 8.7063335653e-02 +30 2.2639481803e-02 1.5852358955e-02 5.6814454115e-02 9.2709050462e-02 2.3325311198e-02 8.7356471217e-03 8.7390737313e-02 +31 2.2258107369e-02 1.5310074984e-02 5.6257007024e-02 9.1892185354e-02 2.2101580692e-02 8.5502326118e-03 8.7157481595e-02 +32 2.1890120116e-02 1.4803255081e-02 5.5708048804e-02 9.1037655098e-02 2.0986205849e-02 8.3652133075e-03 8.6945623622e-02 +33 2.1505527770e-02 1.4330092725e-02 5.5177077651e-02 9.0168766665e-02 1.9965471842e-02 8.1812801955e-03 8.7110523417e-02 +34 2.1126351629e-02 1.3888266137e-02 5.4690786233e-02 8.9350178085e-02 1.9030686121e-02 7.9989890933e-03 8.7365367318e-02 +35 2.0784844062e-02 1.3473560841e-02 5.4264282497e-02 8.8623325667e-02 1.8174542478e-02 7.8188531380e-03 8.7053431047e-02 +36 2.0469977672e-02 1.3082095922e-02 5.3890614105e-02 8.7977054279e-02 1.7391677738e-02 7.6414031240e-03 8.6140735603e-02 +37 2.0246251172e-02 1.2712290122e-02 5.3550658925e-02 8.7370899252e-02 1.6672853328e-02 7.4670837316e-03 8.4587282761e-02 +38 1.9984457550e-02 1.2360921972e-02 5.3211348262e-02 8.6742531133e-02 1.6013008816e-02 7.2961178450e-03 8.2018487457e-02 +39 1.9634750914e-02 1.2024028539e-02 5.2846566536e-02 8.6042885011e-02 1.5406545476e-02 7.1286611299e-03 8.1010380076e-02 +40 1.9149660140e-02 1.1706541342e-02 5.2428466928e-02 8.5227282318e-02 1.4844193281e-02 6.9650730263e-03 8.1135870141e-02 +41 1.8586623149e-02 1.1407279249e-02 5.1929421142e-02 8.4258121961e-02 1.4325659984e-02 6.8055670861e-03 8.4877416255e-02 +42 1.8145694867e-02 1.1122031280e-02 5.1380898529e-02 8.3214651393e-02 1.3838306752e-02 6.6507319178e-03 8.6313143115e-02 +43 1.8181096253e-02 1.0849447134e-02 5.0877773971e-02 8.2273633009e-02 1.3384787090e-02 6.5007193051e-03 8.6061917107e-02 +44 1.8208586102e-02 1.0589033667e-02 5.0531560248e-02 8.1619034198e-02 1.2962687162e-02 6.3557091908e-03 8.3892531105e-02 +45 1.7904883575e-02 1.0340278901e-02 5.0406078534e-02 8.1344137456e-02 1.2568727247e-02 6.2154542800e-03 7.8769696881e-02 +46 1.7518267964e-02 1.0102031976e-02 5.0352937972e-02 8.1187646722e-02 1.2201905670e-02 6.0796265060e-03 7.5543484142e-02 +47 1.7260793798e-02 9.8740513750e-03 5.0192050938e-02 8.0843169467e-02 1.1857565139e-02 5.9478032558e-03 7.3742093274e-02 +48 1.7055098145e-02 9.6544542974e-03 4.9928219251e-02 8.0316113533e-02 1.1533768845e-02 5.8200603856e-03 7.1723514819e-02 +49 1.6813162649e-02 9.4424115736e-03 4.9623562627e-02 7.9715108947e-02 1.1229637439e-02 5.6966489641e-03 7.0937581805e-02 +50 1.6545001505e-02 9.2376094673e-03 4.9326909269e-02 7.9126594533e-02 1.0943154238e-02 5.5780733226e-03 7.1033115983e-02 +51 1.6297037906e-02 9.0408383336e-03 4.9051380636e-02 7.8575888283e-02 1.0671437728e-02 5.4633599821e-03 7.1446545456e-02 +52 1.6081872120e-02 8.8518537067e-03 4.8780828914e-02 7.8035558393e-02 1.0414142368e-02 5.3523736364e-03 7.1381160364e-02 +53 1.5867025391e-02 8.6699494805e-03 4.8505244013e-02 7.7486398388e-02 1.0170129191e-02 5.2448853009e-03 7.1263942695e-02 +54 1.5643987505e-02 8.4945912851e-03 4.8223323908e-02 7.6923762401e-02 9.9378031606e-03 5.1410403774e-03 7.0728415326e-02 +55 1.5429831630e-02 8.3252263126e-03 4.7944958538e-02 7.6364359149e-02 9.7173799137e-03 5.0407299765e-03 7.0025243278e-02 +56 1.5239513429e-02 8.1612517681e-03 4.7677233389e-02 7.5820935909e-02 9.5085641119e-03 4.9437191482e-03 6.9626058156e-02 +57 1.5066616788e-02 8.0032040176e-03 4.7416364716e-02 7.5288502830e-02 9.3100670739e-03 4.8498968737e-03 6.9241791473e-02 +58 1.4932634366e-02 7.8502012937e-03 4.7164626679e-02 7.4772221523e-02 9.1217705392e-03 4.7592665842e-03 6.8744125278e-02 +59 1.4853719428e-02 7.7021422181e-03 4.6914501457e-02 7.4257990872e-02 8.9426907154e-03 4.6716271567e-03 6.8089105312e-02 +60 1.4794484177e-02 7.5589840888e-03 4.6667857830e-02 7.3747848565e-02 8.7711414036e-03 4.5868679111e-03 6.6979233399e-02 +61 1.4674715728e-02 7.4202054048e-03 4.6418224566e-02 7.3230554747e-02 8.6076488626e-03 4.5048329149e-03 6.5634355154e-02 +62 1.4423230427e-02 7.2850486330e-03 4.6156368224e-02 7.2691482151e-02 8.4523805454e-03 4.4254767572e-03 6.4794089192e-02 +63 1.4131252338e-02 7.1534106373e-03 4.5869748801e-02 7.2109645500e-02 8.3048064242e-03 4.3488471616e-03 6.4401568705e-02 +64 1.3859745943e-02 7.0250132910e-03 4.5537281778e-02 7.1450925187e-02 8.1647403111e-03 4.2748145016e-03 6.5542492476e-02 +65 1.3627162586e-02 6.8993121164e-03 4.5142524355e-02 7.0687914401e-02 8.0312596053e-03 4.2033496552e-03 7.0661569785e-02 +66 1.3319227192e-02 6.7777017818e-03 4.4749432333e-02 6.9937776686e-02 7.9022527105e-03 4.1343955858e-03 7.2169427998e-02 +67 1.3202625545e-02 6.6613679890e-03 4.4439090162e-02 6.9342312412e-02 7.7792010257e-03 4.0679008651e-03 6.8384207358e-02 +68 1.3217967695e-02 6.5486072178e-03 4.4223367306e-02 6.8912672934e-02 7.6615908122e-03 4.0037738916e-03 6.6830016515e-02 +69 1.3109561037e-02 6.4380634458e-03 4.4089858523e-02 6.8619020367e-02 7.5493909524e-03 3.9417730300e-03 6.5939041220e-02 +70 1.2914285794e-02 6.3305143030e-03 4.3955649429e-02 6.8325251995e-02 7.4410223041e-03 3.8816932224e-03 6.3738180105e-02 +71 1.2751255023e-02 6.2266156232e-03 4.3753009109e-02 6.7921030360e-02 7.3372997183e-03 3.8237609400e-03 6.1789369896e-02 +72 1.2616044323e-02 6.1246453821e-03 4.3493310395e-02 6.7423883054e-02 7.2368729306e-03 3.7677808629e-03 6.0140144659e-02 +73 1.2475029686e-02 6.0251574656e-03 4.3212694138e-02 6.6892456156e-02 7.1398829648e-03 3.7136285051e-03 5.9105448261e-02 +74 1.2309959489e-02 5.9275165933e-03 4.2936546247e-02 6.6368986430e-02 7.0462006420e-03 3.6612742340e-03 5.8746079098e-02 +75 1.2156247887e-02 5.8329801073e-03 4.2671134525e-02 6.5865425628e-02 6.9558374551e-03 3.6106342838e-03 5.8591574831e-02 +76 1.2016282322e-02 5.7407776940e-03 4.2408645445e-02 6.5369831149e-02 6.8685161767e-03 3.5615738744e-03 5.8295068704e-02 +77 1.1873472147e-02 5.6506564821e-03 4.2144842700e-02 6.4874035073e-02 6.7836050107e-03 3.5139933442e-03 5.8194990217e-02 +78 1.1725644009e-02 5.5625962591e-03 4.1882941146e-02 6.4381074074e-02 6.7015016609e-03 3.4678295473e-03 5.7627933907e-02 +79 1.1592143252e-02 5.4768644555e-03 4.1626616106e-02 6.3897699773e-02 6.6224620814e-03 3.4230316467e-03 5.7196793487e-02 +80 1.1489415243e-02 5.3929155334e-03 4.1375373838e-02 6.3423089279e-02 6.5462224076e-03 3.3795754214e-03 5.6847921050e-02 +81 1.1420469104e-02 5.3108997930e-03 4.1127362562e-02 6.2954748356e-02 6.4726195735e-03 3.3374426716e-03 5.6513127500e-02 +82 1.1382817331e-02 5.2307989694e-03 4.0878569868e-02 6.2486834941e-02 6.4010712280e-03 3.2965626164e-03 5.6196119533e-02 +83 1.1375285391e-02 5.1524304348e-03 4.0630118331e-02 6.2020924401e-02 6.3316044447e-03 3.2569058323e-03 5.5781775840e-02 +84 1.1333939185e-02 5.0756132472e-03 4.0380826894e-02 6.1554596884e-02 6.2642922343e-03 3.2184367038e-03 5.5199382855e-02 +85 1.1228076617e-02 5.0003967809e-03 4.0125844588e-02 6.1080166392e-02 6.1991304917e-03 3.1811519000e-03 5.4739331487e-02 +86 1.1049328790e-02 4.9262057344e-03 3.9856981834e-02 6.0584934615e-02 6.1360414147e-03 3.1449970200e-03 5.4855600010e-02 +87 1.0826487287e-02 4.8537170987e-03 3.9573144293e-02 6.0066849636e-02 6.0753371866e-03 3.1099105181e-03 5.5009833911e-02 +88 1.0584995438e-02 4.7826072625e-03 3.9271358521e-02 5.9521237393e-02 6.0169122915e-03 3.0758603682e-03 5.5939782477e-02 +89 1.0414064000e-02 4.7128097929e-03 3.8957225791e-02 5.8957347080e-02 5.9602363783e-03 3.0428605590e-03 5.7410823244e-02 +90 1.0230881095e-02 4.6443046223e-03 3.8648949925e-02 5.8405695159e-02 5.9042820473e-03 3.0108608176e-03 5.9003522871e-02 +91 1.0024445547e-02 4.5771743144e-03 3.8373598878e-02 5.7912790504e-02 5.8496498873e-03 2.9797808873e-03 5.9598688020e-02 +92 9.9590608642e-03 4.5116894558e-03 3.8142938109e-02 5.7498112190e-02 5.7965696381e-03 2.9497427172e-03 5.9324244577e-02 +93 9.9871258719e-03 4.4480181031e-03 3.7953690726e-02 5.7154158958e-02 5.7448683199e-03 2.9205929903e-03 5.7568301438e-02 +94 9.9143033807e-03 4.3857440526e-03 3.7780064518e-02 5.6835812227e-02 5.6948825488e-03 2.8922452490e-03 5.5667448850e-02 +95 9.7925661587e-03 4.3250390382e-03 3.7581991059e-02 5.6479157942e-02 5.6457699087e-03 2.8646041876e-03 5.4498203406e-02 +96 9.6968824505e-03 4.2644214691e-03 3.7342290704e-02 5.6059132438e-02 5.5978377558e-03 2.8376683941e-03 5.3205918927e-02 +97 9.6066707183e-03 4.2047159122e-03 3.7080860542e-02 5.5606536114e-02 5.5508172484e-03 2.8114420095e-03 5.2084153876e-02 +98 9.4950465616e-03 4.1461284004e-03 3.6817228404e-02 5.5151707614e-02 5.5049496797e-03 2.7859006707e-03 5.1507441522e-02 +99 9.3836551067e-03 4.0885329804e-03 3.6560551043e-02 5.4709037722e-02 5.4600525198e-03 2.7610012729e-03 5.1321015785e-02 +100 9.2864600636e-03 4.0324142912e-03 3.6312183240e-02 5.4281147288e-02 5.4161748430e-03 2.7367100615e-03 5.1246280225e-02 +101 9.1942916005e-03 3.9767779107e-03 3.6064726886e-02 5.3857209836e-02 5.3731950605e-03 2.7130152545e-03 5.1036139550e-02 +102 9.1085793668e-03 3.9219156267e-03 3.5819080802e-02 5.3437601498e-02 5.3311788971e-03 2.6899099762e-03 5.0813631400e-02 +103 9.0394102442e-03 3.8680078891e-03 3.5577127859e-02 5.3024524942e-02 5.2901370809e-03 2.6673881007e-03 5.0497041066e-02 +104 8.9905752171e-03 3.8151978489e-03 3.5340298656e-02 5.2620440332e-02 5.2501371258e-03 2.6454617743e-03 5.0135690013e-02 +105 8.9655546648e-03 3.7634333630e-03 3.5107203833e-02 5.2223476509e-02 5.2111863890e-03 2.6241021131e-03 4.9913214108e-02 +106 8.9593743719e-03 3.7126395628e-03 3.4875962064e-02 5.1830665695e-02 5.1731752503e-03 2.6032973993e-03 4.9687080419e-02 +107 8.9411105663e-03 3.6618687264e-03 3.4645946354e-02 5.1441487095e-02 5.1361855740e-03 2.5830394663e-03 4.9166877804e-02 +108 8.8919199133e-03 3.6122082090e-03 3.4413536194e-02 5.1049768483e-02 5.1000920513e-03 2.5633124901e-03 4.8719032274e-02 +109 8.7965760492e-03 3.5635842510e-03 3.4177481264e-02 5.0653604848e-02 5.0650158147e-03 2.5441211416e-03 4.8279051004e-02 +110 8.6538153536e-03 3.5152430404e-03 3.3934966655e-02 5.0249258417e-02 5.0308826049e-03 2.5254305183e-03 4.8050182090e-02 +111 8.4849611047e-03 3.4675350035e-03 3.3687869943e-02 4.9838722082e-02 4.9976051278e-03 2.5072457184e-03 4.7840523523e-02 +112 8.2963417741e-03 3.4206382603e-03 3.3438177256e-02 4.9425203551e-02 4.9651865458e-03 2.4895800416e-03 4.8074358436e-02 +113 8.1515818420e-03 3.3742371855e-03 3.3190761059e-02 4.9015999955e-02 4.9333899317e-03 2.4723990089e-03 4.8465883344e-02 +114 8.0243220187e-03 3.3286866059e-03 3.2954858879e-02 4.8625559573e-02 4.9019263282e-03 2.4556756867e-03 4.8904350239e-02 +115 7.8929959317e-03 3.2836435966e-03 3.2734328395e-02 4.8261145681e-02 4.8710866132e-03 2.4394410889e-03 4.9282180972e-02 +116 7.7848445067e-03 3.2394297391e-03 3.2532341280e-02 4.7928977950e-02 4.8408516749e-03 2.4236115590e-03 4.9468072999e-02 +117 7.7762046931e-03 3.1961955397e-03 3.2349867948e-02 4.7630391331e-02 4.8112918061e-03 2.4081784290e-03 4.9201097985e-02 +118 7.7837989309e-03 3.1532106898e-03 3.2179658824e-02 4.7352682229e-02 4.7824461745e-03 2.3930433435e-03 4.8311839470e-02 +119 7.7301815845e-03 3.1111156197e-03 3.2002756227e-02 4.7066135458e-02 4.7540056103e-03 2.3781919307e-03 4.7395345669e-02 +120 7.6663222015e-03 3.0697437718e-03 3.1805428230e-02 4.6749420806e-02 4.7260888744e-03 2.3636253373e-03 4.6584970353e-02 +121 7.6094983841e-03 3.0288675523e-03 3.1588191110e-02 4.6404289223e-02 4.6986436980e-03 2.3493361787e-03 4.5933409368e-02 +122 7.5348520687e-03 2.9884084832e-03 3.1363358291e-02 4.6049086904e-02 4.6716423008e-03 2.3353257970e-03 4.5516139644e-02 +123 7.4600266142e-03 2.9484500671e-03 3.1140192714e-02 4.5698034559e-02 4.6450014698e-03 2.3215757387e-03 4.5376024156e-02 +124 7.3948324453e-03 2.9089107382e-03 3.0922186828e-02 4.5356837678e-02 4.6187178197e-03 2.3080588249e-03 4.5411532497e-02 +125 7.3413835318e-03 2.8696254497e-03 3.0708482821e-02 4.5024279673e-02 4.5927108299e-03 2.2947391942e-03 4.5322276365e-02 +126 7.2934345589e-03 2.8308459177e-03 3.0495352256e-02 4.4695741932e-02 4.5669641456e-03 2.2816133515e-03 4.5036328167e-02 +127 7.2527600342e-03 2.7927003083e-03 3.0286242988e-02 4.4375059902e-02 4.5415225573e-03 2.2686639840e-03 4.4850614066e-02 +128 7.2228839086e-03 2.7550980872e-03 3.0081331123e-02 4.4062285436e-02 4.5162618340e-03 2.2558755818e-03 4.4620732824e-02 +129 7.2036138760e-03 2.7179382568e-03 2.9878926521e-02 4.3754971317e-02 4.4912811200e-03 2.2432197668e-03 4.4405896233e-02 +130 7.1766733284e-03 2.6810180259e-03 2.9677675319e-02 4.3451065154e-02 4.4665028601e-03 2.2306734447e-03 4.4196344496e-02 +131 7.1278669792e-03 2.6443439699e-03 2.9475653382e-02 4.3147911105e-02 4.4419293845e-03 2.2182146577e-03 4.4054197757e-02 +132 7.0494478023e-03 2.6081264532e-03 2.9272638028e-02 4.2844976546e-02 4.4173892890e-03 2.2058345490e-03 4.3871860655e-02 +133 6.9358802963e-03 2.5721094348e-03 2.9068348830e-02 4.2541345268e-02 4.3927686182e-03 2.1935287861e-03 4.3701743778e-02 +134 6.7977662399e-03 2.5365373719e-03 2.8861600246e-02 4.2235150970e-02 4.3680342186e-03 2.1812674976e-03 4.3546696577e-02 +135 6.6426126605e-03 2.5013359329e-03 2.8653866761e-02 4.1928516060e-02 4.3431177943e-03 2.1689767475e-03 4.3470554901e-02 +136 6.4962169296e-03 2.4664092134e-03 2.8450020329e-02 4.1628368279e-02 4.3177981643e-03 2.1565841746e-03 4.3505837601e-02 +137 6.3688188138e-03 2.4317426516e-03 2.8255664113e-02 4.1342720626e-02 4.2920086927e-03 2.1440197215e-03 4.3729777499e-02 +138 6.2495615904e-03 2.3972575886e-03 2.8072331207e-02 4.1074055202e-02 4.2656638968e-03 2.1312439886e-03 4.4011786916e-02 +139 6.1336340281e-03 2.3631839231e-03 2.7899986838e-02 4.0823239776e-02 4.2388380684e-03 2.1181930592e-03 4.4311388350e-02 +140 6.0421330554e-03 2.3295278361e-03 2.7739697206e-02 4.0591842095e-02 4.2113732657e-03 2.1047357585e-03 4.4540931174e-02 +141 6.0162887548e-03 2.2961536413e-03 2.7587738879e-02 4.0373560699e-02 4.1831325313e-03 2.0908403861e-03 4.4312231774e-02 +142 5.9849953197e-03 2.2631894501e-03 2.7437771132e-02 4.0158053879e-02 4.1540438081e-03 2.0764434949e-03 4.3890361828e-02 +143 5.9125480343e-03 2.2308238076e-03 2.7279172554e-02 3.9927932056e-02 4.1237295941e-03 2.0615131937e-03 4.3433153789e-02 +144 5.8344090156e-03 2.1981049205e-03 2.7107245166e-02 3.9674975103e-02 4.0922042659e-03 2.0458919135e-03 4.2920789616e-02 +145 5.7503343224e-03 2.1652849098e-03 2.6926849286e-02 3.9405713054e-02 4.0593361246e-03 2.0295485791e-03 4.2576134109e-02 +146 5.6552824479e-03 2.1329099490e-03 2.6744717398e-02 3.9129709857e-02 4.0249452833e-03 2.0123702006e-03 4.2473875946e-02 +147 5.5644170139e-03 2.1007618763e-03 2.6565650502e-02 3.8853765759e-02 3.9889868638e-03 1.9942552064e-03 4.2483062302e-02 +148 5.4800906175e-03 2.0688455405e-03 2.6391248514e-02 3.8579792153e-02 3.9512531800e-03 1.9751349856e-03 4.2440001200e-02 +149 5.4013351546e-03 2.0370608381e-03 2.6222629416e-02 3.8309271048e-02 3.9115611194e-03 1.9549298173e-03 4.2430301038e-02 +150 5.3274749277e-03 2.0052027074e-03 2.6057916552e-02 3.8039362662e-02 3.8698373687e-03 1.9335684241e-03 4.2293062564e-02 +151 5.2568821316e-03 1.9730360880e-03 2.5896030936e-02 3.7768127264e-02 3.8258438731e-03 1.9109778240e-03 4.1890408937e-02 +152 5.1865252202e-03 1.9413165477e-03 2.5737502199e-02 3.7495002729e-02 3.7795071167e-03 1.8870840295e-03 4.1659425787e-02 +153 5.1062697590e-03 1.9095962202e-03 2.5581539276e-02 3.7218764073e-02 3.7306179444e-03 1.8618264850e-03 4.1280285891e-02 +154 5.0113242188e-03 1.8777003257e-03 2.5426570788e-02 3.6936863582e-02 3.6792561675e-03 1.8351356854e-03 4.0912187586e-02 +155 4.8961346310e-03 1.8455623929e-03 2.5270235517e-02 3.6646108573e-02 3.6252468051e-03 1.8069616669e-03 4.0531525637e-02 +156 4.7611696804e-03 1.8131853516e-03 2.5110293001e-02 3.6343333996e-02 3.5684586511e-03 1.7772638876e-03 4.0118563519e-02 +157 4.6180568710e-03 1.7805419117e-03 2.4947981737e-02 3.6029528464e-02 3.5086741851e-03 1.7460046048e-03 3.9694752983e-02 +158 4.4743187547e-03 1.7474741763e-03 2.4782919718e-02 3.5705243759e-02 3.4457771612e-03 1.7131451018e-03 3.9563009438e-02 +159 4.3461852921e-03 1.7140502980e-03 2.4619643671e-02 3.5376965351e-02 3.3798666983e-03 1.6786481802e-03 3.9219326753e-02 +160 4.2285050932e-03 1.6799626732e-03 2.4458938955e-02 3.5046302354e-02 3.3107703294e-03 1.6424370588e-03 3.8919356875e-02 +161 4.1304693256e-03 1.6458789466e-03 2.4297727022e-02 3.4709567726e-02 3.2384811076e-03 1.6045069064e-03 3.9005922748e-02 +162 4.0515842892e-03 1.6100520940e-03 2.4133592591e-02 3.4365715967e-02 3.1629856599e-03 1.5648692342e-03 3.8396567074e-02 +163 4.0048101553e-03 1.5739209818e-03 2.3961479165e-02 3.4007808022e-02 3.0843321868e-03 1.5234803309e-03 3.8009462207e-02 +164 4.0073426853e-03 1.5367548562e-03 2.3775787478e-02 3.3628921885e-02 3.0025226096e-03 1.4803738588e-03 3.7415451540e-02 +165 4.0063122602e-03 1.4979069598e-03 2.3566143790e-02 3.3215767541e-02 2.9176234248e-03 1.4356366287e-03 3.6703454860e-02 +166 3.9769832071e-03 1.4581556173e-03 2.3320477508e-02 3.2754209109e-02 2.8297652472e-03 1.3892805803e-03 3.5950328793e-02 +167 3.9516300313e-03 1.4166074560e-03 2.3034041850e-02 3.2240422794e-02 2.7391081702e-03 1.3414363258e-03 3.5358338542e-02 +168 3.9236409118e-03 1.3730627765e-03 2.2705809102e-02 3.1677002161e-02 2.6457943376e-03 1.2922215006e-03 3.5038262699e-02 +169 3.8782311446e-03 1.3274325976e-03 2.2335092666e-02 3.1067533699e-02 2.5500296039e-03 1.2417866130e-03 3.4936754134e-02 +170 3.8221802144e-03 1.2795741524e-03 2.1921270760e-02 3.0414608207e-02 2.4521016487e-03 1.1902902927e-03 3.4973387607e-02 +171 3.7544078645e-03 1.2293214212e-03 2.1461062508e-02 2.9720592754e-02 2.3524713773e-03 1.1379456311e-03 3.5088685505e-02 +172 3.6703841496e-03 1.1764746822e-03 2.0954959258e-02 2.8990677658e-02 2.2515616269e-03 1.0849774785e-03 3.5181317651e-02 +173 3.5648988458e-03 1.1208731617e-03 2.0404646080e-02 2.8235397887e-02 2.1499527654e-03 1.0316487758e-03 3.5243054678e-02 +174 3.4336172945e-03 1.0623939316e-03 1.9818033606e-02 2.7474121391e-02 2.0482262145e-03 9.7824241725e-04 3.5253358787e-02 +175 3.2763869821e-03 1.0010310340e-03 1.9210923590e-02 2.6735789911e-02 1.9470446707e-03 9.2505408161e-04 3.5237285454e-02 +176 3.0935936780e-03 9.3686333880e-04 1.8605657615e-02 2.6059280940e-02 1.8474066023e-03 8.7236314834e-04 3.5219156765e-02 +177 2.8904129538e-03 8.7012145582e-04 1.8035889185e-02 2.5500202220e-02 1.7491707874e-03 8.2041725511e-04 3.5187391237e-02 +178 2.6660251192e-03 8.0105929034e-04 1.7536814766e-02 2.5119068668e-02 1.6517817114e-03 7.6943759156e-04 3.5054639968e-02 +179 2.4274124691e-03 7.3034620011e-04 1.7140024599e-02 2.4976298909e-02 1.5551277598e-03 7.1955170907e-04 3.4752789092e-02 +180 2.1863411404e-03 6.5858059392e-04 1.6847941804e-02 2.5092671891e-02 1.4589185277e-03 6.7069763686e-04 3.3901115265e-02 +181 1.9589798742e-03 5.8656351361e-04 1.6600535602e-02 2.5387557162e-02 1.3629793043e-03 6.2268070727e-04 3.2347035773e-02 +182 1.7699863359e-03 5.1539991760e-04 1.6292919275e-02 2.5705576977e-02 1.2672173980e-03 5.7531288043e-04 3.0551800300e-02 +183 1.5180022829e-03 4.4647535160e-04 1.5809292218e-02 2.5851373791e-02 1.1708828438e-03 5.2784325436e-04 2.9127023712e-02 +184 1.4517865686e-03 3.8353440584e-04 1.4815795433e-02 2.5199243203e-02 1.0750451936e-03 4.8122005142e-04 2.8496012231e-02 +185 1.4610667844e-03 3.2464384736e-04 1.3575453335e-02 2.4081330848e-02 9.8030260655e-04 4.3558373703e-04 2.7761871461e-02 +186 1.4806447083e-03 2.7050332022e-04 1.2230720547e-02 2.2652734452e-02 8.8768580912e-04 3.9119345170e-04 2.6993456472e-02 +187 1.5368830675e-03 2.2211669919e-04 1.0811481476e-02 2.0882619192e-02 7.9791883946e-04 3.4826796938e-04 2.6461499299e-02 +188 1.4274909069e-03 1.8030840922e-04 9.4736812289e-03 1.9006424444e-02 7.1757374304e-04 3.0634899107e-04 2.5860011308e-02 +189 1.3104711630e-03 1.4530947259e-04 8.0632653837e-03 1.6734078908e-02 6.4138540101e-04 2.6710455543e-04 2.5550675935e-02 +190 1.2278091282e-03 1.1672448225e-04 6.6363191297e-03 1.4170835245e-02 5.6966478862e-04 2.3076831081e-04 2.5202468358e-02 +191 1.1439798728e-03 9.3742403516e-05 5.3108504070e-03 1.1599508866e-02 5.0268268413e-04 1.9751655192e-04 2.4286868255e-02 +192 1.0390304633e-03 7.5453101293e-05 4.1738817398e-03 9.2758973308e-03 4.4067578787e-04 1.6747235074e-04 2.2742719863e-02 +193 9.2035808229e-04 6.1072209789e-05 3.2497596986e-03 7.3200418234e-03 3.8384143069e-04 1.4067727005e-04 2.0937797831e-02 +194 7.9747339112e-04 4.9878610768e-05 2.5178153789e-03 5.7313570801e-03 3.3225461279e-04 1.1708896517e-04 1.9267106697e-02 +195 6.7825232962e-04 4.1234175648e-05 1.9428943250e-03 4.4572258869e-03 2.8591804753e-04 9.6591935522e-05 1.7905658477e-02 +196 5.8016750526e-04 3.4517703131e-05 1.4982061043e-03 3.4575507112e-03 2.4462286103e-04 7.8983988778e-05 2.2386245301e-02 +197 4.7662145911e-04 2.9336040540e-05 1.1525840927e-03 2.6604171309e-03 2.0819680061e-04 6.4069629915e-05 1.4955891144e-02 +198 3.8184098693e-04 2.5245523219e-05 8.9740736212e-04 2.0668396046e-03 1.7627220644e-04 5.1568064560e-05 1.4112329776e-02 +199 3.0319448418e-04 2.1930438565e-05 7.1302301811e-04 1.6380690515e-03 1.4847411063e-04 4.1210786747e-05 1.3457692666e-02 +200 2.3978912206e-04 1.9174007548e-05 5.8074287800e-04 1.3304536738e-03 1.2443606378e-04 3.2729967043e-05 1.2498505264e-02 +201 1.8498189563e-04 1.6788748237e-05 4.8632209604e-04 1.1109010385e-03 1.0379457731e-04 2.5877538263e-05 1.1376119916e-02 +202 1.4456632710e-04 1.4699907818e-05 4.0982251290e-04 9.3244189897e-04 8.6185250142e-05 2.0401758744e-05 1.0539703050e-02 +203 1.1371035121e-04 1.2814254579e-05 3.5482071070e-04 8.0418555119e-04 7.1258780732e-05 1.6066737100e-05 9.7382123818e-03 +204 9.1186349287e-05 1.1103371723e-05 3.1746977195e-04 7.1831263306e-04 5.8684278148e-05 1.2668913743e-05 8.9778793593e-03 +205 7.3773636622e-05 9.5605938896e-06 2.9000591405e-04 6.5814949415e-04 4.8157254595e-05 1.0032010083e-05 8.2753520263e-03 +206 6.0242165048e-05 8.1726798030e-06 2.6533306268e-04 6.0612349742e-04 3.9396946149e-05 8.0001205978e-06 7.6044588546e-03 +207 5.0693612778e-05 6.9359112916e-06 2.3932311400e-04 5.5147747311e-04 3.2144599160e-05 6.4421938543e-06 6.9278669246e-03 +208 4.4183929571e-05 5.8498186980e-06 2.1212608164e-04 4.9242315118e-04 2.6159430308e-05 5.2449017786e-06 6.2554822443e-03 +209 3.9549400452e-05 4.9049026670e-06 1.8558405489e-04 4.3295590388e-04 2.1228827381e-05 4.3170258454e-06 5.6106735262e-03 +210 3.6041688975e-05 4.0886885513e-06 1.6098960033e-04 3.7707908758e-04 1.7172610926e-05 3.5938598503e-06 5.0074139375e-03 +211 3.3119014631e-05 3.3906164685e-06 1.3875101171e-04 3.2651748845e-04 1.3840641414e-05 3.0234485582e-06 4.4530148895e-03 +212 3.0959814830e-05 2.8057774850e-06 1.1822722399e-04 2.7989154673e-04 1.1118615566e-05 2.5670138583e-06 3.7928338120e-03 +213 2.7801699436e-05 2.3005210313e-06 1.0084497208e-04 2.4045326250e-04 8.9021329093e-06 2.1957499335e-06 3.5053802785e-03 +214 2.5082171433e-05 1.8874356897e-06 8.4855087654e-05 2.0380043134e-04 7.1092909371e-06 1.8895958335e-06 3.0276387961e-03 +215 2.1929664727e-05 1.5369874136e-06 7.1223013882e-05 1.7230843193e-04 5.6646079614e-06 1.6318980239e-06 2.7185236678e-03 +216 1.9040676596e-05 1.2504919274e-06 5.9257950263e-05 1.4437923249e-04 4.5060764246e-06 1.4110615329e-06 2.4091138598e-03 +217 1.6696035289e-05 1.0198453515e-06 4.8859416886e-05 1.2004385102e-04 3.5816150761e-06 1.2187678806e-06 2.1192764761e-03 +218 1.4674947966e-05 8.2972219043e-07 4.0179360893e-05 9.9570376611e-05 2.8487990298e-06 1.0513247047e-06 1.8923705168e-03 +219 1.2705866940e-05 6.7298216802e-07 3.3023960979e-05 8.2621787234e-05 2.2721576791e-06 9.0542384815e-07 1.6869865113e-03 +220 1.0612120460e-05 5.4561378987e-07 2.7241448838e-05 6.8963884815e-05 1.8200484993e-06 7.7803044646e-07 1.4531600497e-03 +221 8.8136945997e-06 4.4471181281e-07 2.2346569153e-05 5.7421065766e-05 1.4674166424e-06 6.6693367374e-07 1.3103555541e-03 +222 7.4102047097e-06 3.6440120825e-07 1.8185120951e-05 4.7509289378e-05 1.1939281626e-06 5.7002262340e-07 1.2239772687e-03 +223 6.2518878399e-06 3.0008889212e-07 1.4765572236e-05 3.9269468677e-05 9.8294523062e-07 4.8601359886e-07 1.1084227632e-03 +224 5.2844314317e-06 2.4855411064e-07 1.2187622983e-05 3.2531341803e-05 8.2136243575e-07 4.1395992711e-07 1.0335974238e-03 +225 4.3996199996e-06 2.0784712548e-07 9.9749891035e-06 2.7105394933e-05 6.9808952417e-07 3.5258529604e-07 9.6434847128e-04 +226 3.5289599485e-06 1.7626072333e-07 8.1731242435e-06 2.2886999465e-05 6.0283739058e-07 3.0052103305e-07 8.5863213307e-04 +227 2.8744905299e-06 1.5007724867e-07 6.6767158950e-06 1.9317396066e-05 5.2797395093e-07 2.5663875980e-07 8.4752524847e-04 +228 2.3118655240e-06 1.2864489549e-07 5.5499612006e-06 1.6691308679e-05 4.6772528434e-07 2.1968741124e-07 7.7430198807e-04 +229 1.8983156978e-06 1.1135572206e-07 4.6340011798e-06 1.4363710848e-05 4.1527085129e-07 1.8972266401e-07 7.5520884627e-04 +230 1.5761610623e-06 9.7513768556e-08 3.8957621989e-06 1.2412171886e-05 3.7108246214e-07 1.6456001815e-07 7.1632238360e-04 +231 1.2582439933e-06 8.6536874172e-08 3.3152116193e-06 1.0810283979e-05 3.3352700932e-07 1.4362387551e-07 6.7864363634e-04 +232 1.0224198881e-06 7.7405690694e-08 2.8279766055e-06 9.4647141456e-06 3.0145955319e-07 1.2629381261e-07 6.5499759881e-04 +233 8.0953585560e-07 6.9695668781e-08 2.4337052857e-06 8.3579278870e-06 2.7398880377e-07 1.1205709807e-07 6.1977079589e-04 +234 6.4175825270e-07 6.3256858965e-08 2.1221140979e-06 7.4719261727e-06 2.5047593230e-07 1.0039484421e-07 5.8987324597e-04 +235 5.1939489761e-07 5.7712643102e-08 1.8809555430e-06 6.7633853414e-06 2.3045697092e-07 9.0878353558e-08 5.5982971514e-04 +236 4.2323380979e-07 5.2649147205e-08 1.6891774487e-06 6.1582102553e-06 2.1351106049e-07 8.3130291857e-08 5.3055519635e-04 +237 3.5163908558e-07 4.8241407611e-08 1.5195318218e-06 5.5891123687e-06 1.9921207489e-07 7.6819399919e-08 4.9971008465e-04 +238 2.8756639661e-07 4.4365816771e-08 1.3791240514e-06 5.0913073501e-06 1.8721218948e-07 7.1681984320e-08 4.7042477059e-04 +239 2.3765949015e-07 4.0936834515e-08 1.2536981141e-06 4.6326733250e-06 1.7717314373e-07 6.7479960730e-08 4.4151995530e-04 +240 1.9941564037e-07 3.7794397769e-08 1.1411008525e-06 4.2143299469e-06 1.6878780133e-07 6.4010748278e-08 4.1384582135e-04 +241 1.6997158244e-07 3.4965607695e-08 1.0399366810e-06 3.8353512274e-06 1.6176781051e-07 6.1081087336e-08 3.8739619988e-04 +242 1.4773453487e-07 3.2426783447e-08 9.4931044226e-07 3.4936785533e-06 1.5583812048e-07 5.8550029798e-08 3.6239222903e-04 +243 1.3029862780e-07 3.0084549759e-08 8.6772824143e-07 3.1845008852e-06 1.5073559773e-07 5.6312824641e-08 3.3864125416e-04 +244 1.1549972799e-07 2.7944551670e-08 7.9426838342e-07 2.9050856056e-06 1.4625883668e-07 5.4284788821e-08 3.1620279258e-04 +245 1.0317495758e-07 2.6033508431e-08 7.2734040030e-07 2.6502575226e-06 1.4224846484e-07 5.2410305553e-08 2.9509259250e-04 +246 9.3275181400e-08 2.4294677553e-08 6.6593008012e-07 2.4166308360e-06 1.3856450343e-07 5.0651796337e-08 2.7546465360e-04 +247 8.4910661705e-08 2.2704373163e-08 6.1008565308e-07 2.2041313185e-06 1.3510970511e-07 4.8984995648e-08 2.5719661808e-04 +248 7.7825106629e-08 2.1260382027e-08 5.5925360761e-07 2.0107874097e-06 1.3182053620e-07 4.7388808947e-08 2.4032243286e-04 +249 7.1713654914e-08 1.9941717928e-08 5.1305581523e-07 1.8350381570e-06 1.2864406142e-07 4.5843154056e-08 2.2473076637e-04 +250 6.6280009101e-08 1.8733615772e-08 4.7116675373e-07 1.6756748512e-06 1.2552242507e-07 4.4342038719e-08 2.1036111051e-04 +251 6.1314414824e-08 1.7627659719e-08 4.3313053898e-07 1.5311132561e-06 1.2241980552e-07 4.2883696816e-08 1.9714132799e-04 +252 5.6867037211e-08 1.6623256202e-08 3.9830361638e-07 1.3992121019e-06 1.1933529735e-07 4.1467083061e-08 1.8501956847e-04 +253 5.2916592634e-08 1.5707318145e-08 3.6638619932e-07 1.2785843334e-06 1.1626642174e-07 4.0090273242e-08 1.7393178509e-04 +254 4.9271041502e-08 1.4865530031e-08 3.3717855136e-07 1.1689503746e-06 1.1321226567e-07 3.8749889864e-08 1.6379555344e-04 +255 4.6008755142e-08 1.4094100669e-08 3.1053842914e-07 1.0688597793e-06 1.1016870954e-07 3.7442616229e-08 1.5456237758e-04 +256 4.3155325225e-08 1.3383936648e-08 2.8627533334e-07 9.7776649827e-07 1.0713326672e-07 3.6166550779e-08 1.4616076990e-04 +257 4.0605982413e-08 1.2728033831e-08 2.6413895684e-07 8.9492825089e-07 1.0411393477e-07 3.4922576302e-08 1.3851299815e-04 +258 3.8258523151e-08 1.2125439494e-08 2.4387077507e-07 8.1970112719e-07 1.0111934077e-07 3.3710346530e-08 1.3156029761e-04 +259 3.6071550830e-08 1.1571397174e-08 2.2529995863e-07 7.5121331013e-07 9.8156688758e-08 3.2529844752e-08 1.2524649891e-04 +260 3.4040710133e-08 1.1060078440e-08 2.0831396214e-07 6.8872805871e-07 9.5231245210e-08 3.1380554943e-08 1.1951041175e-04 +261 3.2203402787e-08 1.0587623029e-08 1.9279048835e-07 6.3185397165e-07 9.2347257362e-08 3.0262068853e-08 1.1430945477e-04 +262 3.0525983694e-08 1.0150736277e-08 1.7860771479e-07 5.8007186355e-07 8.9507507704e-08 2.9174209783e-08 1.0959092264e-04 +263 2.8980882742e-08 9.7459624410e-09 1.6564208132e-07 5.3298343632e-07 8.6713925207e-08 2.8115704179e-08 1.0531148964e-04 +264 2.7527338631e-08 9.3722922548e-09 1.5377152816e-07 4.9014125598e-07 8.3968624949e-08 2.7084981837e-08 1.0143611244e-04 +265 2.6175696815e-08 9.0261057885e-09 1.4291744326e-07 4.5108426738e-07 8.1273261729e-08 2.6081741729e-08 9.7914615585e-05 +266 2.4934177488e-08 8.7042487722e-09 1.3296029599e-07 4.1552499174e-07 7.8626293425e-08 2.5104487235e-08 9.4716930905e-05 +267 2.3780771823e-08 8.4056099962e-09 1.2385629302e-07 3.8311659913e-07 7.6028613034e-08 2.4153669265e-08 9.1810591514e-05 +268 2.2701139594e-08 8.1281015360e-09 1.1554187874e-07 3.5360047217e-07 7.3478747890e-08 2.3227771497e-08 8.9166780130e-05 +269 2.1702009967e-08 7.8703174848e-09 1.0791363421e-07 3.2670978434e-07 7.0977177664e-08 2.2326983660e-08 8.6760650041e-05 +270 2.0752516695e-08 7.6294546764e-09 1.0094460080e-07 3.0219247920e-07 6.8523677359e-08 2.1450081547e-08 8.4573133045e-05 +271 1.9867564855e-08 7.4055147145e-09 9.4566522472e-08 2.7987709865e-07 6.6117910227e-08 2.0596826825e-08 8.2585854627e-05 +272 1.9046368189e-08 7.1958526279e-09 8.8748264474e-08 2.5955924580e-07 6.3759889860e-08 1.9766397162e-08 8.0780544740e-05 +273 1.8265516210e-08 7.0000670230e-09 8.3392339425e-08 2.4098072760e-07 6.1449036364e-08 1.8958471626e-08 7.9137895344e-05 +274 1.7527809895e-08 6.8169149072e-09 7.8486201135e-08 2.2408356252e-07 5.9184831753e-08 1.8172356428e-08 7.7651231995e-05 +275 1.6847550552e-08 6.6443464094e-09 7.4006547454e-08 2.0868497401e-07 5.6967564189e-08 1.7407546168e-08 7.6303271016e-05 +276 1.6194895295e-08 6.4814889884e-09 6.9919610342e-08 1.9464492407e-07 5.4796361099e-08 1.6663735167e-08 7.5090011760e-05 +277 1.5588399487e-08 6.3267234632e-09 6.6175823685e-08 1.8184142831e-07 5.2670819611e-08 1.5940501128e-08 7.4002345386e-05 +278 1.4998880244e-08 6.1793608145e-09 6.2744385556e-08 1.7021944691e-07 5.0590956488e-08 1.5237476604e-08 7.3016053734e-05 +279 1.4451318752e-08 6.0383800635e-09 5.9600469645e-08 1.5962313979e-07 4.8556166515e-08 1.4554640175e-08 7.2126132595e-05 +280 1.3914727916e-08 5.9032214623e-09 5.6726741368e-08 1.4993541913e-07 4.6566489713e-08 1.3891754159e-08 7.1310633467e-05 +281 1.3429323025e-08 5.7733657308e-09 5.4101487660e-08 1.4112040767e-07 4.4621515875e-08 1.3248626710e-08 7.0549450900e-05 +282 1.2949143464e-08 5.6459420225e-09 5.1707381429e-08 1.3315891058e-07 4.2721502210e-08 1.2625061016e-08 6.9802332103e-05 +283 1.2477195329e-08 5.5214033800e-09 4.9521495152e-08 1.2589845917e-07 4.0867655531e-08 1.2020816798e-08 6.9029500347e-05 +284 1.2041151765e-08 5.3999303824e-09 4.7509601158e-08 1.1932972161e-07 3.9058813380e-08 1.1435188238e-08 6.8201639205e-05 +285 1.1630995332e-08 5.2795074972e-09 4.5676725915e-08 1.1332390741e-07 3.7294969858e-08 1.0868617086e-08 6.7304301611e-05 +286 1.1230320625e-08 5.1599133742e-09 4.4013635073e-08 1.0791932200e-07 3.5576321622e-08 1.0320928880e-08 6.6314453612e-05 +287 1.0829542645e-08 5.0406934810e-09 4.2489447630e-08 1.0300717122e-07 3.3901799182e-08 9.7927188679e-09 6.5213197991e-05 +288 1.0455769986e-08 4.9200098945e-09 4.1118811184e-08 9.8599166929e-08 3.2272279516e-08 9.2835738882e-09 6.4001237084e-05 +289 1.0093206402e-08 4.7984384116e-09 3.9869006497e-08 9.4609146379e-08 3.0688344036e-08 8.7935022077e-09 6.2690599485e-05 +290 9.7522002009e-09 4.6764955769e-09 3.8742930938e-08 9.1048637167e-08 2.9150762034e-08 8.3226883587e-09 6.1281799178e-05 +291 9.4260257456e-09 4.5537936809e-09 3.7719040412e-08 8.7863353279e-08 2.7659959258e-08 7.8707759448e-09 5.9783701665e-05 +292 9.1022892649e-09 4.4303398027e-09 3.6794005591e-08 8.5025240743e-08 2.6215776385e-08 7.4381008740e-09 5.8205460748e-05 +293 8.8004109379e-09 4.3060705685e-09 3.5960725112e-08 8.2504531264e-08 2.4819017667e-08 7.0246429382e-09 5.6553670632e-05 +294 8.4892385819e-09 4.1804600224e-09 3.5229503640e-08 8.0250334097e-08 2.3470283588e-08 6.6303776609e-09 5.4837649846e-05 +295 8.1975757643e-09 4.0540737769e-09 3.4577716964e-08 7.8230919305e-08 2.2169714573e-08 6.2555252968e-09 5.3064280674e-05 +296 7.9185157826e-09 3.9265352261e-09 3.3979793809e-08 7.6445631174e-08 2.0917794920e-08 5.9000365166e-09 5.1243639898e-05 +297 7.6264790312e-09 3.7981292428e-09 3.3442470356e-08 7.4887294101e-08 1.9714912210e-08 5.5637956902e-09 4.9381094491e-05 +298 7.3587405001e-09 3.6706177698e-09 3.2951160446e-08 7.3502938285e-08 1.8561331490e-08 5.2468664935e-09 4.7486509273e-05 +299 7.1026262235e-09 3.5387622560e-09 3.2509922840e-08 7.2262402632e-08 1.7457268092e-08 4.9492050937e-09 4.5574781195e-05 +300 6.8544111914e-09 3.4090059298e-09 3.2113577106e-08 7.1161726852e-08 1.6402833648e-08 4.6705674997e-09 4.3645369228e-05 + +Time = 300s + +smoothSolver: Solving for Ux, Initial residual = 3.40900593e-09, Final residual = 1.249850175e-10, No Iterations 3 +smoothSolver: Solving for Uy, Initial residual = 3.211357711e-08, Final residual = 1.418981e-09, No Iterations 3 +smoothSolver: Solving for Uz, Initial residual = 7.116172685e-08, Final residual = 3.160532824e-09, No Iterations 3 +smoothSolver: Solving for h, Initial residual = 4.364536923e-05, Final residual = 1.818881922e-06, No Iterations 3 +GAMG: Solving for p, Initial residual = 6.854411191e-09, Final residual = 1.712875309e-09, No Iterations 50 +time step continuity errors : sum local = 9.056307407e-10, global = 1.890478884e-12 +GAMG: Solving for p, Initial residual = 4.718168999e-09, Final residual = 1.715102672e-09, No Iterations 50 +time step continuity errors : sum local = 9.062917944e-10, global = -1.136934386e-12, cumulative = 0.0002099910572 +smoothSolver: Solving for epsilon, Initial residual = 4.6705675e-09, Final residual = 4.240216943e-10, No Iterations 2 +smoothSolver: Solving for k, Initial residual = 1.640283365e-08, Final residual = 6.18970925e-10, No Iterations 3 +ExecutionTime = 59.291686 s ClockTime = 80 s + +surfaceFieldValue massAvgOutletPressureVelocity write: + average(outlet) of p = 101325 + average(outlet) of U = (8.705956956 -0.06841403445 -8.114260473e-09) + +surfaceFieldValue massAvgOutletTemperature write: + average(outlet) of T = 799.9996448 + +End + +Finalising parallel run diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/T b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/T new file mode 100644 index 000000000..476151263 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/T @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object T; +} +// ************************************************************************* // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform $T_air; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/U b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/U new file mode 100644 index 000000000..15f3e7672 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volVectorField; + location "0"; + object U; +} +// ************************************************************************* // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type flowRateInletVelocity; + profile turbulentBL; + massFlowRate $mdot_air; + rhoInlet $rho_air; + } + outlet + { + type inletOutlet; + inletValue uniform (0 0 0); + } + walls + { + type fixedValue; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/Ydefault b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/Ydefault new file mode 100644 index 000000000..e9f52d181 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/Ydefault @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object Ydefault; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + walls + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/air b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/air new file mode 100644 index 000000000..817601e89 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/air @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + walls + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/alphat b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/alphat new file mode 100644 index 000000000..45c6048d8 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/alphat @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + walls + { + type compressible::alphatWallFunction; + // Prt 0.85; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/epsilon b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/epsilon new file mode 100644 index 000000000..6ece6591b --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/epsilon @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform $epsilon; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type turbulentMixingLengthDissipationRateInlet; + mixingLength 0.005; + phi phi; + k k; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + walls + { + type epsilonWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/k b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/k new file mode 100644 index 000000000..8d25bab0d --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/k @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform $k; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type turbulentIntensityKineticEnergyInlet; + intensity $I; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + } + walls + { + type kqRWallFunction; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/nut b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/nut new file mode 100644 index 000000000..eafec4c53 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/nut @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform $nut; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + walls + { + type nutkWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/p b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/p new file mode 100644 index 000000000..c309f953e --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/0/p @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object p; +} +// ************************************************************************* // + +#include "$FOAM_CASE/../parameters" + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform $P_air; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type zeroGradient; + } + outlet + { + type totalPressure; + p0 $internalField; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/fvModels b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/fvModels new file mode 100644 index 000000000..ee715082c --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/fvModels @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object fvModels; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +buoyancyForce +{ + type buoyancyForce; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/g b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/g new file mode 100644 index 000000000..51cd738d0 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/g @@ -0,0 +1,21 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 -9.81 0); + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/momentumTransport b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/momentumTransport new file mode 100644 index 000000000..92e00ac8b --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/momentumTransport @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object momentumTransport; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + model kEpsilon; + + turbulence on; + + printCoeffs on; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/physicalProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/physicalProperties new file mode 100644 index 000000000..f921208a4 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/physicalProperties @@ -0,0 +1,38 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object physicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture multicomponentMixture; + transport sutherland; + thermo janaf; + energy sensibleEnthalpy; + equationOfState perfectGas; + specie specie; +} + +#include "speciesThermo" + +defaultSpecie air; + +liquids +{} + +solids +{} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/speciesThermo b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/speciesThermo new file mode 100644 index 000000000..41044f0f9 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/constant/speciesThermo @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ + +species +( + air +); + +air +{ + specie + { + nMoles 1; + molWeight 28.9596; + } + thermodynamics + { + Tlow 200; + Thigh 3000; + Tcommon 1000; + highCpCoeffs ( 3.05809 0.00133634 -4.73394e-07 7.38653e-11 -3.34205e-15 -972.89 6.09034 ); + lowCpCoeffs ( 3.393 0.000544363 -1.24622e-06 2.65579e-09 -1.35538e-12 -1029.28 4.43259 ); + } + transport + { + As 1.67212e-06; + Ts 170.672; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/system/controlDict b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/system/controlDict new file mode 100644 index 000000000..1e36db6bf --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-02/zero/system/controlDict @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application foamRun; + +solver multicomponentFluid; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 300; + +deltaT 1; + +writeControl timeStep; + +writeInterval 20; + +purgeWrite 5; + +writeFormat ascii; + +writePrecision 10; + +writeCompression off; + +timeFormat fixed; + +timePrecision 0; + +runTimeModifiable yes; + +functions +{ + #includeFunc residuals(p, U, k, epsilon, h) + + #includeFunc patchFlowRate(patch=inlet, phi) + + #includeFunc patchFlowRate(patch=outlet, phi) + + #include "$FOAM_CASE/../functions/massAvgOutletPressureVelocity" + #include "$FOAM_CASE/../functions/massAvgOutletTemperature" +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/.gitignore b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/.gitignore new file mode 100644 index 000000000..ad4d540e8 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/.gitignore @@ -0,0 +1,12 @@ +# Ignore built case. +[0-9]* +constant/ +system/ +Allclean +processor*/ + +# Ignore all logs. +log.* + +# Unignore actual base case from zero/ directory. +!zero/* diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/Allrun b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/Allrun new file mode 100644 index 000000000..aa5149b09 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/Allrun @@ -0,0 +1,25 @@ +#!/bin/sh +cd ${0%/*} || exit 1 + +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +touch case.foam + +cp -avr zero/* . +cp ../components/decomposeParDict system/ +cp ../components/blockMeshDict system/ +cp ../components/fv* system/ +cp ../components/Allclean . + +runApplication blockMesh +runApplication potentialFoam +rm -rf 0/phi +runApplication decomposePar +runApplication mpirun -np 32 foamRun -parallel +reconstructPar -latestTime +rm -rf processor*/ + +cp "postProcessing/residuals(p,U,k,epsilon,h,C7H16)/0/residuals.dat" residuals.ref +tail -52 log.mpirun >> residuals.ref + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/residuals.ref b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/residuals.ref new file mode 100644 index 000000000..95c93664a --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/residuals.ref @@ -0,0 +1,555 @@ +# Residuals +# Time p Ux Uy Uz k epsilon h C7H16 +0 N/A N/A N/A N/A N/A N/A +1 9.9999999562e-01 1.8587805277e-01 3.6726317119e-01 1.7903646897e-01 9.9999999997e-01 5.5179812140e-02 9.9999999356e-01 0.0000000000e+00 +2 3.2994713955e-01 2.4179828205e-01 2.4655011317e-01 1.5985383627e-01 5.4088771043e-01 1.4390242964e-02 4.2265420408e-01 0.0000000000e+00 +3 1.7296516958e-01 1.9891081713e-01 2.1150362110e-01 1.5087795315e-01 2.0911540482e-01 1.3179485147e-02 3.3018076101e-01 0.0000000000e+00 +4 1.0887845920e-01 1.6764446633e-01 2.1308133441e-01 1.4060363550e-01 1.2744522006e-01 1.2478660305e-02 4.0874670866e-01 0.0000000000e+00 +5 1.0940067584e-01 1.3217619844e-01 1.4693428870e-01 1.3074190369e-01 9.1991064007e-02 1.2028238847e-02 2.4220248189e-01 0.0000000000e+00 +6 1.1215327917e-01 9.7212681117e-02 1.4432558634e-01 1.3143027517e-01 7.2223157229e-02 1.1754331404e-02 2.6330511428e-01 0.0000000000e+00 +7 8.5807205156e-02 7.5762286231e-02 1.5640318451e-01 1.3164017060e-01 6.2139376216e-02 1.1585431280e-02 2.1760846975e-01 0.0000000000e+00 +8 6.6929006777e-02 6.4769058391e-02 1.2119659452e-01 1.2776426011e-01 5.6620446405e-02 1.1473559295e-02 1.6764812836e-01 0.0000000000e+00 +9 5.4446532966e-02 5.8653132166e-02 1.0218953094e-01 1.2428035573e-01 5.2342130316e-02 1.1392715678e-02 1.9647687104e-01 0.0000000000e+00 +10 3.1011217529e-01 6.1227299263e-02 1.2404573582e-01 1.5136663018e-01 5.2235942187e-02 1.0475320160e-02 9.5662166936e-01 1.0000000000e+00 +11 1.5822407609e-02 7.6255510879e-01 2.0107065008e-01 2.3708593446e-01 7.7312461541e-02 1.4245289211e-02 3.7381096086e-01 1.7641502392e-01 +12 1.9226537155e-02 6.2506066562e-01 1.6129466073e-01 1.8157817808e-01 8.4222509866e-02 1.7510908827e-02 1.4979407299e-01 1.0828103258e-01 +13 9.6536788127e-02 1.0617704764e-01 1.2748584701e-01 1.4010317234e-01 6.6401967566e-02 2.0740845875e-02 9.6671360904e-02 7.8441944992e-02 +14 3.2680603285e-02 3.0681979413e-01 1.2098151238e-01 1.3338576411e-01 6.2183176628e-02 2.5161253717e-02 7.2342967297e-02 6.2454468845e-02 +15 3.5187494842e-02 3.3011345497e-01 1.1696789830e-01 1.3011113153e-01 6.6767773804e-02 2.9486705310e-02 5.8207324014e-02 5.2377111258e-02 +16 1.7246307249e-01 6.7782221328e-02 1.0852504472e-01 1.2073287692e-01 6.3964679981e-02 3.1164467239e-02 4.9249813790e-02 4.5498108213e-02 +17 4.4230627859e-02 1.6135595626e-01 9.9360045200e-02 1.1020488878e-01 5.9210328887e-02 3.0912272604e-02 4.2563503845e-02 4.0077663083e-02 +18 4.8065471239e-02 1.4239587690e-01 9.5647482680e-02 1.0582079728e-01 5.6284212336e-02 2.9147083525e-02 3.7550725416e-02 3.6155293349e-02 +19 8.3760444905e-02 6.9284739530e-02 9.7299059471e-02 1.0753013392e-01 5.6314474731e-02 2.6355999537e-02 3.3849762084e-02 3.3240638469e-02 +20 4.4008737395e-01 5.2528928955e-02 1.0266742281e-01 1.1331706528e-01 6.3978528838e-02 2.6209453372e-02 4.1769209541e-02 6.1649977589e-02 +21 2.5639468898e-01 6.7529871470e-02 1.3798471667e-01 1.4958615175e-01 6.8137931649e-02 2.6134082496e-02 6.0046071177e-02 5.4372963033e-02 +22 3.1434450223e-01 5.4059408052e-02 1.2483756724e-01 1.3501552843e-01 6.8414464298e-02 2.4323245154e-02 5.1317280445e-02 4.9192393010e-02 +23 1.9135278628e-01 4.7739716250e-02 1.1667710247e-01 1.2506845816e-01 6.5390834655e-02 2.2129015461e-02 4.5008294414e-02 4.4930843668e-02 +24 1.4392601294e-01 4.6351007274e-02 1.2270721866e-01 1.3100343320e-01 6.2868473671e-02 2.1918698532e-02 4.0329275808e-02 4.1395110107e-02 +25 1.5296921646e-01 4.2350592162e-02 1.2340072890e-01 1.3303308061e-01 6.0043778968e-02 2.1942738081e-02 3.6283474120e-02 3.8462333526e-02 +26 1.8033227411e-01 3.6325001824e-02 1.1230205638e-01 1.2216869133e-01 5.7080876349e-02 2.2330856636e-02 3.3088658061e-02 3.6006126624e-02 +27 1.8004960333e-01 3.2081318990e-02 1.0223143293e-01 1.1101694220e-01 5.3990474299e-02 2.2423995039e-02 3.0506071815e-02 3.3952476244e-02 +28 1.6265028764e-01 2.9871800582e-02 9.7041630455e-02 1.0490166998e-01 5.0968996220e-02 2.1584870600e-02 2.8413439601e-02 3.2269910297e-02 +29 1.4038495542e-01 2.9231301191e-02 9.5527759933e-02 1.0279705752e-01 4.8125375777e-02 2.0031937676e-02 2.6713518155e-02 3.0794264102e-02 +30 3.3587002828e-01 3.0424529368e-02 9.8961342581e-02 1.0635270749e-01 4.9990585389e-02 4.0228952989e-02 3.1501894874e-02 4.8736189905e-02 +31 2.4180291788e-01 4.1802354215e-02 1.4409139934e-01 1.5413773297e-01 4.6138117699e-02 3.2559025762e-02 4.2014020236e-02 4.7950053129e-02 +32 2.5633871445e-01 4.2066368947e-02 1.4231912595e-01 1.5390727916e-01 4.6830734579e-02 3.8352561819e-02 3.8661151391e-02 4.4583678439e-02 +33 2.5079335119e-01 3.6519276885e-02 1.2897973605e-01 1.3948643937e-01 4.5653719397e-02 3.4451616751e-02 3.5655163187e-02 4.1093550751e-02 +34 2.1330946003e-01 3.3215285690e-02 1.2491744178e-01 1.3468601582e-01 4.3501640424e-02 2.7548017750e-02 3.2804565913e-02 3.8294915102e-02 +35 2.1218501366e-01 3.0617848613e-02 1.1937740885e-01 1.2914686589e-01 4.1625195095e-02 2.4063047263e-02 3.0433901575e-02 3.5742736282e-02 +36 2.0261206990e-01 2.7720139313e-02 1.1374630968e-01 1.2266428716e-01 3.9840134178e-02 2.1340281695e-02 2.8407472063e-02 3.3473123129e-02 +37 1.8157171987e-01 2.5863790567e-02 1.0871696894e-01 1.1723858105e-01 3.8032715796e-02 1.9052043918e-02 2.6632386883e-02 3.1397592142e-02 +38 1.7665635479e-01 2.4104648289e-02 1.0370541458e-01 1.1198099393e-01 3.6247991376e-02 1.7153699268e-02 2.5020752130e-02 2.9503311434e-02 +39 1.6416762536e-01 2.2996415563e-02 1.0144113995e-01 1.0966294073e-01 3.4526334573e-02 1.5576213813e-02 2.3553473811e-02 2.7763555934e-02 +40 3.3924258881e-01 2.4167294769e-02 1.0554765937e-01 1.1442831284e-01 3.3953760099e-02 1.4924458890e-02 2.6168914556e-02 3.8778866123e-02 +41 2.6525140620e-01 3.0145709958e-02 1.2835963611e-01 1.3797712719e-01 3.3714158989e-02 1.4881257306e-02 3.2539968041e-02 3.5094229460e-02 +42 3.0053429668e-01 2.7154440876e-02 1.1891730831e-01 1.2807663434e-01 3.3188048790e-02 1.4498814483e-02 2.9574274594e-02 3.2284060142e-02 +43 2.7076245209e-01 2.2466548451e-02 1.1243796592e-01 1.2018185429e-01 3.2413418441e-02 1.3965697740e-02 2.7137213838e-02 2.9777410076e-02 +44 2.0593196689e-01 2.2359034443e-02 1.1840921087e-01 1.2684984074e-01 3.1433905363e-02 1.3383699985e-02 2.4955176292e-02 2.7565263724e-02 +45 2.0330086266e-01 2.1331907181e-02 1.1518335602e-01 1.2552309555e-01 3.0338966538e-02 1.2906947925e-02 2.3088649677e-02 2.5612909197e-02 +46 1.9365539338e-01 1.9045965427e-02 1.0130703223e-01 1.1128695588e-01 2.9143401281e-02 1.2508090378e-02 2.1558683133e-02 2.3912508490e-02 +47 1.7832996696e-01 1.7256976071e-02 9.0189142112e-02 9.8758270222e-02 2.7930762162e-02 1.2193454350e-02 2.0291685781e-02 2.2448544483e-02 +48 1.6978068209e-01 1.6286508790e-02 8.4192993881e-02 9.1626808410e-02 2.6694547986e-02 1.1867976220e-02 1.9232091051e-02 2.1169868397e-02 +49 1.6542837773e-01 1.5776436791e-02 8.1235628570e-02 8.8163432389e-02 2.5470366215e-02 1.1478496123e-02 1.8349970026e-02 2.0083973737e-02 +50 3.7591444543e-01 1.7006838890e-02 8.4423730370e-02 9.1903059544e-02 2.5753699266e-02 1.3653845645e-02 2.0972072123e-02 3.0013470131e-02 +51 2.6238031951e-01 2.3706932861e-02 1.2297932893e-01 1.3252956890e-01 2.4886322178e-02 1.2414592293e-02 2.6587391415e-02 2.9053099633e-02 +52 2.7232494722e-01 2.3484810617e-02 1.2037094027e-01 1.3113234122e-01 2.4330639959e-02 1.1986681305e-02 2.4869302224e-02 2.7139765812e-02 +53 2.5412446332e-01 2.0319456841e-02 1.0895750294e-01 1.1871677221e-01 2.3640077390e-02 1.1136132211e-02 2.3514087460e-02 2.5687154681e-02 +54 2.2165313132e-01 1.9112522793e-02 1.0793004125e-01 1.1700308316e-01 2.3054608009e-02 1.0726237447e-02 2.2269322286e-02 2.4413934395e-02 +55 2.2845974247e-01 1.8080085031e-02 1.0155993225e-01 1.1058551513e-01 2.2548690161e-02 1.0626671087e-02 2.1131691431e-02 2.3326409479e-02 +56 2.1201276873e-01 1.6712577151e-02 9.2990319190e-02 1.0104313857e-01 2.2166706872e-02 1.0679063321e-02 2.0282415981e-02 2.2398820890e-02 +57 1.9291524770e-01 1.5881090911e-02 8.8840064645e-02 9.6257821480e-02 2.1828348188e-02 1.0654889253e-02 1.9572795164e-02 2.1600080184e-02 +58 1.8920615743e-01 1.5277843680e-02 8.6843696773e-02 9.4008377424e-02 2.1489541264e-02 1.0493294775e-02 1.8980069315e-02 2.0926359559e-02 +59 1.7516294911e-01 1.4943229102e-02 8.6839737049e-02 9.4073402211e-02 2.1115243809e-02 1.0208905405e-02 1.8486147528e-02 2.0335006861e-02 +60 3.4737039375e-01 1.6307162362e-02 9.0809505483e-02 9.8650848825e-02 2.1649931258e-02 1.0557316239e-02 2.0454892861e-02 2.8324420626e-02 +61 2.7835316059e-01 2.1902421813e-02 1.1675878910e-01 1.2553998302e-01 2.2064647337e-02 1.0760019531e-02 2.5063965170e-02 2.6403982304e-02 +62 3.1684283923e-01 2.0353672412e-02 1.0900304879e-01 1.1768853066e-01 2.2180590522e-02 1.0560992232e-02 2.3573763573e-02 2.5058346126e-02 +63 2.8837697850e-01 1.7325496497e-02 1.0355127287e-01 1.1303215246e-01 2.2120599923e-02 1.0205201911e-02 2.2358538454e-02 2.3879472341e-02 +64 2.2733179337e-01 1.7506665887e-02 1.0962682623e-01 1.1899050044e-01 2.1934706103e-02 9.7880758380e-03 2.1273801521e-02 2.2862073092e-02 +65 2.2702861565e-01 1.7071165838e-02 1.0862890532e-01 1.1849813930e-01 2.1681135108e-02 9.4766761378e-03 2.0367289037e-02 2.1973856176e-02 +66 2.2056636714e-01 1.5596377004e-02 9.8566906649e-02 1.0774113780e-01 2.1389339666e-02 9.2796430209e-03 1.9601128193e-02 2.1203029098e-02 +67 2.0652194298e-01 1.4472218453e-02 9.0950387344e-02 9.9417722684e-02 2.1083309997e-02 9.1599026786e-03 1.8973969229e-02 2.0535584298e-02 +68 1.9776001486e-01 1.3937400970e-02 8.7740212546e-02 9.5849556232e-02 2.0784357380e-02 9.0857453476e-03 1.8446601887e-02 1.9938113681e-02 +69 1.9196830162e-01 1.3744260937e-02 8.7044573123e-02 9.5165544295e-02 2.0472039412e-02 8.9858887273e-03 1.7972680881e-02 1.9405458534e-02 +70 3.8980043625e-01 1.4935223005e-02 9.1279223802e-02 9.9948047209e-02 2.1342617702e-02 1.1124538713e-02 2.0099050888e-02 2.7275101126e-02 +71 2.8805021838e-01 2.0552036345e-02 1.2697049112e-01 1.3776603936e-01 2.1304200539e-02 1.0501506400e-02 2.4579985783e-02 2.7420959540e-02 +72 2.9442241578e-01 2.0414176527e-02 1.2651878731e-01 1.3836060700e-01 2.1339156494e-02 1.0201232989e-02 2.3367258348e-02 2.5850778184e-02 +73 2.6952629065e-01 1.8046719459e-02 1.1696817168e-01 1.2834590960e-01 2.1198801898e-02 9.6941641408e-03 2.2321032783e-02 2.4640566282e-02 +74 2.4592462353e-01 1.7165362217e-02 1.1546905429e-01 1.2648807209e-01 2.1056066641e-02 9.3797109087e-03 2.1366700303e-02 2.3585710739e-02 +75 2.5107705021e-01 1.6410247902e-02 1.1043002053e-01 1.2177568385e-01 2.0897362758e-02 9.4236972355e-03 2.0524588892e-02 2.2638936363e-02 +76 2.3782077179e-01 1.5337448333e-02 1.0347301098e-01 1.1415102038e-01 2.0793603175e-02 9.7205396605e-03 1.9754477785e-02 2.1795963723e-02 +77 2.1994177444e-01 1.4638571910e-02 9.7046337494e-02 1.0721698622e-01 2.0653042402e-02 9.8493195406e-03 1.9085040270e-02 2.1032496023e-02 +78 2.1321433341e-01 1.4058424351e-02 9.2415846434e-02 1.0226651710e-01 2.0429698358e-02 9.7783030725e-03 1.8485092063e-02 2.0344774287e-02 +79 1.9898312183e-01 1.3723933258e-02 9.1082217204e-02 1.0107993671e-01 2.0127669802e-02 9.5734132917e-03 1.7941426711e-02 1.9700208009e-02 +80 3.6053690660e-01 1.4784328705e-02 9.4957150042e-02 1.0591707758e-01 2.0452164680e-02 9.6744602896e-03 1.9441268524e-02 2.6121918999e-02 +81 3.0156367615e-01 1.9108408849e-02 1.1730494549e-01 1.3024049925e-01 2.0700509904e-02 9.8452637616e-03 2.3075103557e-02 2.4511243626e-02 +82 3.3155371060e-01 1.7935883058e-02 1.1127876099e-01 1.2421887575e-01 2.0675108873e-02 9.6164101722e-03 2.1824852428e-02 2.3297157553e-02 +83 3.0628268720e-01 1.5527425482e-02 1.0674141346e-01 1.1886843837e-01 2.0508565494e-02 9.2205549757e-03 2.0742738072e-02 2.2194524267e-02 +84 2.4540947549e-01 1.5533040356e-02 1.1218684985e-01 1.2552507078e-01 2.0226780471e-02 8.7847442963e-03 1.9752464899e-02 2.1219104847e-02 +85 2.4362691105e-01 1.5011887170e-02 1.0903701634e-01 1.2393465493e-01 1.9870762027e-02 8.3529800857e-03 1.8889380720e-02 2.0340697732e-02 +86 2.3360625535e-01 1.3618687772e-02 9.7549224637e-02 1.1186796597e-01 1.9477572948e-02 8.0004948644e-03 1.8137088288e-02 1.9550419891e-02 +87 2.1361732598e-01 1.2601951497e-02 8.9292958923e-02 1.0239277126e-01 1.9070193038e-02 7.7227513954e-03 1.7482031462e-02 1.8841580703e-02 +88 2.0471978197e-01 1.2094736514e-02 8.5723883502e-02 9.8148012994e-02 1.8671360838e-02 7.5141548410e-03 1.6915281083e-02 1.8193386373e-02 +89 1.9806754627e-01 1.1867419984e-02 8.4120730249e-02 9.6389722361e-02 1.8259257851e-02 7.3326021074e-03 1.6409131930e-02 1.7602977956e-02 +90 3.9767382640e-01 1.2857294800e-02 8.6788438401e-02 9.9998728757e-02 1.9000444696e-02 9.0811577261e-03 1.7967487643e-02 2.3981111745e-02 +91 3.1061752590e-01 1.7335745223e-02 1.1932628570e-01 1.3591888903e-01 1.8949682579e-02 8.5872049674e-03 2.1518493559e-02 2.5703875980e-02 +92 3.0444956072e-01 1.7309326094e-02 1.1880988826e-01 1.3644388127e-01 1.8864735978e-02 7.9823458430e-03 2.0445648044e-02 2.3613997742e-02 +93 2.7734847342e-01 1.5467331008e-02 1.1015923720e-01 1.2667258692e-01 1.8910581446e-02 8.0337303349e-03 1.9512857236e-02 2.2360244041e-02 +94 2.5035588393e-01 1.4661905829e-02 1.0697356012e-01 1.2310116841e-01 1.8911084564e-02 8.3807621104e-03 1.8731185199e-02 2.1307825491e-02 +95 2.5389600093e-01 1.3987654041e-02 1.0130817636e-01 1.1761256691e-01 1.8891679556e-02 8.9826294553e-03 1.7997754790e-02 2.0347369846e-02 +96 2.4121682060e-01 1.3143118663e-02 9.5536102218e-02 1.1099626895e-01 1.8856808930e-02 9.5924267410e-03 1.7364012696e-02 1.9539533769e-02 +97 2.2035698445e-01 1.2540278081e-02 8.9113820603e-02 1.0387622361e-01 1.8683503681e-02 9.9042765127e-03 1.6782906435e-02 1.8831711636e-02 +98 2.0889142563e-01 1.1979499981e-02 8.3770651746e-02 9.7935469788e-02 1.8383232832e-02 9.8761404993e-03 1.6280721070e-02 1.8213483973e-02 +99 1.9401949514e-01 1.1661411275e-02 7.9783336739e-02 9.3729581257e-02 1.8011995391e-02 9.5788278194e-03 1.5828782717e-02 1.7659374199e-02 +100 3.6113137026e-01 1.2642390112e-02 8.1643614538e-02 9.6350211972e-02 1.8425712855e-02 1.0106142153e-02 1.7018219472e-02 2.3151762164e-02 +101 3.0898287804e-01 1.6969971164e-02 1.0492031288e-01 1.2225934761e-01 1.8477343638e-02 9.5754401970e-03 2.0147987418e-02 2.1811216410e-02 +102 3.3725715499e-01 1.6184779854e-02 9.8903408262e-02 1.1576981470e-01 1.8360741100e-02 9.0872862968e-03 1.9128424207e-02 2.0832961230e-02 +103 3.0755262523e-01 1.3948872575e-02 9.4414897848e-02 1.1014792330e-01 1.8156764015e-02 8.3988495242e-03 1.8264052739e-02 1.9955741787e-02 +104 2.4572153374e-01 1.3900404320e-02 9.8201253031e-02 1.1532880863e-01 1.7837563397e-02 7.6959374873e-03 1.7485233207e-02 1.9190936187e-02 +105 2.4411625103e-01 1.3385699425e-02 9.6225303344e-02 1.1481558203e-01 1.7492345411e-02 7.1045260225e-03 1.6817075153e-02 1.8507462364e-02 +106 2.3243977988e-01 1.2104043051e-02 8.6819652336e-02 1.0458880693e-01 1.7145656568e-02 6.6676020490e-03 1.6235948729e-02 1.7895434259e-02 +107 2.0865412684e-01 1.1227287594e-02 7.8273198217e-02 9.4086185804e-02 1.6838862369e-02 6.3964044538e-03 1.5754191432e-02 1.7352853915e-02 +108 2.0329517077e-01 1.0854108428e-02 7.3706457393e-02 8.8430302061e-02 1.6573244942e-02 6.2418771148e-03 1.5347836213e-02 1.6867477974e-02 +109 2.0023307759e-01 1.0733241528e-02 7.1656007809e-02 8.5871149162e-02 1.6324234809e-02 6.1450506342e-03 1.4991367991e-02 1.6435373806e-02 +110 3.9559518964e-01 1.1660530599e-02 7.4101982644e-02 8.9215954192e-02 1.7139042542e-02 8.1893377542e-03 1.6430914497e-02 2.2189889526e-02 +111 3.0771367012e-01 1.5974041658e-02 1.0496424776e-01 1.2517956055e-01 1.7112683346e-02 7.4155969457e-03 1.9736993885e-02 2.4542179282e-02 +112 3.0963798815e-01 1.5920077460e-02 1.0508528078e-01 1.2633908781e-01 1.7176768601e-02 6.8059846588e-03 1.8900203265e-02 2.2249795004e-02 +113 2.7395589397e-01 1.4297582078e-02 9.7510033403e-02 1.1729816396e-01 1.7331409623e-02 6.8406754933e-03 1.8156603603e-02 2.1239594541e-02 +114 2.4487674400e-01 1.3697988971e-02 9.3782024291e-02 1.1249601387e-01 1.7253264271e-02 6.4709391858e-03 1.7532048760e-02 2.0363586271e-02 +115 2.5349735852e-01 1.3082448609e-02 8.8439578653e-02 1.0675211219e-01 1.7232421574e-02 6.6204465609e-03 1.6957148786e-02 1.9553477590e-02 +116 2.4378700803e-01 1.2283090547e-02 8.3943537882e-02 1.0131482038e-01 1.7325311814e-02 7.0489184425e-03 1.6451057246e-02 1.8880052594e-02 +117 2.2352743715e-01 1.1733763368e-02 7.8771425366e-02 9.5190064668e-02 1.7343368944e-02 7.3297817876e-03 1.5988861169e-02 1.8287006229e-02 +118 2.0975460358e-01 1.1231088879e-02 7.3889362171e-02 8.9521210515e-02 1.7284499176e-02 7.4441813466e-03 1.5598810118e-02 1.7770072238e-02 +119 1.9293122939e-01 1.0972930554e-02 7.0232139698e-02 8.5149369036e-02 1.7155086066e-02 7.4017079672e-03 1.5249399579e-02 1.7310055936e-02 +120 3.5365069975e-01 1.1865325715e-02 7.1769413790e-02 8.7346704871e-02 1.7603919167e-02 7.9968140916e-03 1.6421221906e-02 2.2338969296e-02 +121 3.0861681872e-01 1.5905198967e-02 9.2064389418e-02 1.1049192900e-01 1.7727905526e-02 7.5787730634e-03 1.9357631052e-02 2.1193757568e-02 +122 3.3737553200e-01 1.5230860034e-02 8.8012232080e-02 1.0580097592e-01 1.7715921736e-02 7.2458164799e-03 1.8538914166e-02 2.0387604937e-02 +123 3.0821128075e-01 1.3460733576e-02 8.5231863548e-02 1.0220465257e-01 1.7624347307e-02 6.7326203230e-03 1.7833528231e-02 1.9657508213e-02 +124 2.5065696341e-01 1.3516520721e-02 8.8568309804e-02 1.0678506903e-01 1.7414243001e-02 6.2027836452e-03 1.7183211961e-02 1.9004881561e-02 +125 2.4832612782e-01 1.3050250875e-02 8.6285218922e-02 1.0565875412e-01 1.7173742581e-02 5.7652555680e-03 1.6625571564e-02 1.8410189745e-02 +126 2.3697072342e-01 1.1781979570e-02 7.7812270513e-02 9.6002735933e-02 1.6932532799e-02 5.4690565204e-03 1.6133882186e-02 1.7870166410e-02 +127 2.1338681472e-01 1.0872703391e-02 7.1634036288e-02 8.8025927284e-02 1.6685240550e-02 5.2926714301e-03 1.5717311387e-02 1.7381700086e-02 +128 2.0786661117e-01 1.0499077630e-02 6.8503320396e-02 8.4015743065e-02 1.6463439740e-02 5.2210677700e-03 1.5356136592e-02 1.6940168507e-02 +129 2.0273464553e-01 1.0390078329e-02 6.6700864153e-02 8.1777266137e-02 1.6239226978e-02 5.1816466169e-03 1.5028681812e-02 1.6534418608e-02 +130 3.8375324169e-01 1.1205085330e-02 6.7974614516e-02 8.3703079653e-02 1.6856719527e-02 6.7023572264e-03 1.6257183176e-02 2.1551168550e-02 +131 3.0678742704e-01 1.5060528601e-02 9.2917187052e-02 1.1297947984e-01 1.6779888216e-02 6.0737310002e-03 1.9139256212e-02 2.3358914233e-02 +132 3.0645862258e-01 1.4984718696e-02 9.2421084970e-02 1.1340744128e-01 1.6839181542e-02 5.7664150397e-03 1.8335604451e-02 2.1290528380e-02 +133 2.7042844831e-01 1.3501008709e-02 8.6053191057e-02 1.0603159908e-01 1.6829706601e-02 5.6137503755e-03 1.7608598851e-02 2.0322716033e-02 +134 2.3972873538e-01 1.2935255413e-02 8.3254329461e-02 1.0234507089e-01 1.6592787052e-02 5.0040832040e-03 1.7004759940e-02 1.9514179040e-02 +135 2.4219679312e-01 1.2379972263e-02 7.8704753128e-02 9.7179789654e-02 1.6380370298e-02 4.7890576227e-03 1.6431909183e-02 1.8756769833e-02 +136 2.2380072248e-01 1.1570166854e-02 7.3633352936e-02 9.1058952932e-02 1.6176078362e-02 4.9026899892e-03 1.5918712637e-02 1.8106525556e-02 +137 1.9245461655e-01 1.0997387202e-02 6.8646374808e-02 8.4973499480e-02 1.5965564003e-02 5.0501260383e-03 1.5452828093e-02 1.7524637099e-02 +138 1.6810761834e-01 1.0329344752e-02 6.4081926849e-02 7.9433689417e-02 1.5699911515e-02 5.1252692512e-03 1.5056433731e-02 1.7011552430e-02 +139 1.4622989549e-01 9.8912952439e-03 6.1428517350e-02 7.6301079393e-02 1.5432979136e-02 5.1546590883e-03 1.4707207594e-02 1.6547612893e-02 +140 3.0465104440e-01 1.0568828405e-02 6.1891718874e-02 7.7219128627e-02 1.5654533387e-02 5.6005504494e-03 1.5699285782e-02 2.0964044386e-02 +141 2.5423833950e-01 1.4182673697e-02 8.0500775357e-02 9.8947331047e-02 1.5699551296e-02 5.3976716838e-03 1.8281110074e-02 1.9908394249e-02 +142 2.7714351328e-01 1.3657221074e-02 7.6974265325e-02 9.4694334962e-02 1.5656800910e-02 5.2307949790e-03 1.7525032439e-02 1.9169896595e-02 +143 2.4655364929e-01 1.2160166657e-02 7.3913963266e-02 9.0889655084e-02 1.5551293457e-02 4.9076204511e-03 1.6850802285e-02 1.8481690233e-02 +144 1.8908354967e-01 1.2122587971e-02 7.5912514389e-02 9.3843199516e-02 1.5368939430e-02 4.5728164702e-03 1.6227474333e-02 1.7854470402e-02 +145 1.8492447925e-01 1.1634463723e-02 7.3582803730e-02 9.2320027539e-02 1.5147903288e-02 4.2936540436e-03 1.5685714817e-02 1.7278426585e-02 +146 1.7061177982e-01 1.0455305520e-02 6.6256516093e-02 8.3773136332e-02 1.4919693695e-02 4.1165819240e-03 1.5201477299e-02 1.6753803438e-02 +147 1.4562763632e-01 9.5971170649e-03 5.9824254632e-02 7.5526690056e-02 1.4689731249e-02 4.0390410608e-03 1.4780785692e-02 1.6281366911e-02 +148 1.3838681839e-01 9.2324284399e-03 5.6005882301e-02 7.0653076161e-02 1.4468393052e-02 4.0397023381e-03 1.4407426571e-02 1.5846403826e-02 +149 1.3609441602e-01 9.1096546057e-03 5.3990270564e-02 6.8049266939e-02 1.4229456845e-02 4.0711731667e-03 1.4062747712e-02 1.5434829514e-02 +150 3.1223605559e-01 9.8091367063e-03 5.5849510245e-02 7.0788911842e-02 1.4594732297e-02 4.9825842616e-03 1.5033218699e-02 1.9621290575e-02 +151 2.3649712908e-01 1.3123777313e-02 7.8649398361e-02 9.7985975219e-02 1.4539369151e-02 4.6791623614e-03 1.7423278476e-02 2.0738786624e-02 +152 2.3637218116e-01 1.2945137037e-02 7.8153218976e-02 9.8169391296e-02 1.4554658917e-02 4.7064481751e-03 1.6651388649e-02 1.8937005778e-02 +153 2.0292902569e-01 1.1563676960e-02 7.1846059659e-02 9.0931316259e-02 1.4460509940e-02 4.5022459744e-03 1.5954730160e-02 1.8071326957e-02 +154 1.7025795715e-01 1.1093829967e-02 6.9218126486e-02 8.7289180107e-02 1.4266429964e-02 4.1257070400e-03 1.5361743308e-02 1.7345124933e-02 +155 1.7574084917e-01 1.0623051324e-02 6.5204499702e-02 8.2674737591e-02 1.4112210459e-02 3.9698575326e-03 1.4823394437e-02 1.6678442776e-02 +156 1.6049867064e-01 9.8840090119e-03 6.0433875985e-02 7.6661107320e-02 1.4028972195e-02 4.1331089314e-03 1.4329585390e-02 1.6086087064e-02 +157 1.3938014758e-01 9.3987125814e-03 5.6619912150e-02 7.1900259941e-02 1.3987401307e-02 4.3893627799e-03 1.3881567262e-02 1.5545110521e-02 +158 1.3203400494e-01 9.0051206399e-03 5.3229356884e-02 6.7736610515e-02 1.3905847681e-02 4.5921199791e-03 1.3489443279e-02 1.5060736924e-02 +159 1.1784444392e-01 8.7187512081e-03 5.1044083581e-02 6.4990192796e-02 1.3775246647e-02 4.7230591029e-03 1.3132186061e-02 1.4618933104e-02 +160 2.7298818134e-01 9.1102034965e-03 5.0963124795e-02 6.6325656713e-02 1.3961178241e-02 5.0598590770e-03 1.3916310424e-02 1.8274804506e-02 +161 2.2201045793e-01 1.2054099787e-02 6.8245239624e-02 8.6223060750e-02 1.4002114494e-02 4.9637519637e-03 1.5987805901e-02 1.7324674189e-02 +162 2.4324081519e-01 1.1583727783e-02 6.5889646268e-02 8.2436407009e-02 1.3928053664e-02 4.8525263697e-03 1.5280908132e-02 1.6640723413e-02 +163 2.1848577962e-01 1.0367269032e-02 6.2706003774e-02 7.8562156426e-02 1.3780734308e-02 4.5933830455e-03 1.4640903098e-02 1.5983813828e-02 +164 1.6963674748e-01 1.0329091551e-02 6.3675831716e-02 8.0280710921e-02 1.3560887506e-02 4.3127797624e-03 1.4047963193e-02 1.5369132487e-02 +165 1.6742240495e-01 9.8698362955e-03 6.1178748632e-02 7.8526788434e-02 1.3307007050e-02 4.0729273222e-03 1.3528136092e-02 1.4804403086e-02 +166 1.5502333935e-01 8.8179230838e-03 5.4855658097e-02 7.1128143476e-02 1.3037012901e-02 3.9089799802e-03 1.3046757496e-02 1.4284503935e-02 +167 1.3150369515e-01 8.0303331388e-03 5.0254646850e-02 6.5149092783e-02 1.2771996494e-02 3.8358718284e-03 1.2606383807e-02 1.3800023238e-02 +168 1.2394583354e-01 7.6630085229e-03 4.6776624620e-02 6.0641451693e-02 1.2509223053e-02 3.8302533971e-03 1.2201980586e-02 1.3341513130e-02 +169 1.1703502485e-01 7.5184690947e-03 4.4406841358e-02 5.7456236256e-02 1.2237281840e-02 3.8486471262e-03 1.1814865547e-02 1.2897576138e-02 +170 2.8163025969e-01 8.1237838805e-03 4.4903232297e-02 5.8450406940e-02 1.2484952551e-02 4.5989385975e-03 1.2514055070e-02 1.6200832603e-02 +171 2.0966854974e-01 1.0846490695e-02 6.5275562639e-02 8.2617367808e-02 1.2309279962e-02 4.2710236344e-03 1.4347539694e-02 1.6725713998e-02 +172 2.0744736139e-01 1.0365872861e-02 6.4271991026e-02 8.1696969973e-02 1.2265734189e-02 4.3864249295e-03 1.3689231357e-02 1.5397082752e-02 +173 1.8287677685e-01 9.1292440241e-03 5.9029637594e-02 7.5803607252e-02 1.2086804487e-02 4.1258488734e-03 1.3016514800e-02 1.4587230851e-02 +174 1.5618410788e-01 8.9126015938e-03 5.7676221679e-02 7.4116928651e-02 1.1864944216e-02 3.8154422997e-03 1.2417964127e-02 1.3888028035e-02 +175 1.5805049692e-01 8.5678419349e-03 5.4593997143e-02 7.0681567564e-02 1.1644735615e-02 3.6184610262e-03 1.1885447171e-02 1.3246577584e-02 +176 1.4240674352e-01 7.8563338871e-03 4.9738015695e-02 6.4529036793e-02 1.1447927434e-02 3.5442597916e-03 1.1360945141e-02 1.2658657076e-02 +177 1.2275780641e-01 7.3065851100e-03 4.5923456597e-02 5.9687751108e-02 1.1361172738e-02 3.7199566213e-03 1.0858891357e-02 1.2100072885e-02 +178 1.1630452846e-01 6.8827421852e-03 4.2907944724e-02 5.5906764292e-02 1.1259225531e-02 3.8932509305e-03 1.0385903022e-02 1.1567550270e-02 +179 1.0758344527e-01 6.5872268424e-03 4.1038070977e-02 5.3491109696e-02 1.1123272399e-02 4.0174596054e-03 9.9299728534e-03 1.1052886064e-02 +180 2.4274354184e-01 7.0204693176e-03 4.1562990997e-02 5.4642750510e-02 1.1213419527e-02 4.2037490608e-03 1.0424812185e-02 1.3862413028e-02 +181 1.9014848589e-01 9.3324732620e-03 5.6799730490e-02 7.2232265475e-02 1.1210665416e-02 4.1467881725e-03 1.1976019111e-02 1.2991219005e-02 +182 2.0320190507e-01 8.6338298105e-03 5.3893179783e-02 6.8112950772e-02 1.1092301766e-02 4.0424286812e-03 1.1325169062e-02 1.2368222540e-02 +183 1.8295027878e-01 7.3882693189e-03 4.9999319309e-02 6.4182776321e-02 1.0905636162e-02 3.8183402140e-03 1.0713628895e-02 1.1751729058e-02 +184 1.3948387241e-01 7.2700907692e-03 5.0802015370e-02 6.5913669379e-02 1.0678559534e-02 3.5764960136e-03 1.0112916903e-02 1.1144567611e-02 +185 1.3722947812e-01 6.9248694377e-03 4.9248491790e-02 6.5215500788e-02 1.0417138238e-02 3.3452470982e-03 9.5501490386e-03 1.0555866825e-02 +186 1.2387986525e-01 6.1170176960e-03 4.4137061939e-02 5.9404180980e-02 1.0149332962e-02 3.1711206481e-03 9.0116077090e-03 9.9900217598e-03 +187 1.0590935194e-01 5.4602474102e-03 4.0077277512e-02 5.4428772216e-02 9.8829807818e-03 3.0660091854e-03 8.5017559963e-03 9.4493617726e-03 +188 1.0248777989e-01 5.0695859121e-03 3.7511470607e-02 5.1342978751e-02 9.6089682141e-03 3.0117498987e-03 8.0252877940e-03 8.9371741265e-03 +189 9.5643911485e-02 4.8322328994e-03 3.5844671250e-02 4.9334209690e-02 9.3179379008e-03 2.9720527387e-03 7.5850146708e-03 8.4553881654e-03 +190 2.3917914925e-01 5.3833154914e-03 3.6638414654e-02 5.1199690397e-02 9.4957460966e-03 3.4851496918e-03 8.1076160546e-03 1.1167233976e-02 +191 1.7666782908e-01 7.5576001598e-03 5.4788818411e-02 7.4247516479e-02 9.2674924124e-03 3.1314783253e-03 9.5588707806e-03 1.1369677567e-02 +192 1.7366977180e-01 7.2665055821e-03 5.4265821624e-02 7.4129579160e-02 9.1757319379e-03 3.2153621952e-03 8.9558360381e-03 1.0202354859e-02 +193 1.4725962251e-01 6.2150878764e-03 4.8637538090e-02 6.7528774123e-02 8.9131946778e-03 2.9245577859e-03 8.4460397741e-03 9.6314640996e-03 +194 1.2030509702e-01 5.8858128965e-03 4.6107348710e-02 6.4321732602e-02 8.6484127932e-03 2.6834836544e-03 8.0078886632e-03 9.1326304421e-03 +195 1.2325522814e-01 5.5247497509e-03 4.2791856950e-02 6.0269722774e-02 8.3983507029e-03 2.5311971512e-03 7.6369400018e-03 8.6950562708e-03 +196 1.1019662116e-01 4.9899255581e-03 3.8398802276e-02 5.4330290605e-02 8.2511398018e-03 2.6176294427e-03 7.2890741106e-03 8.3081102833e-03 +197 9.0823857957e-02 4.6498150315e-03 3.5484822654e-02 5.0429883977e-02 8.1337462017e-03 2.7579377537e-03 6.9739151858e-03 7.9579899823e-03 +198 8.4409587915e-02 4.3899897776e-03 3.3064534040e-02 4.7244209211e-02 7.9971293566e-03 2.8774805396e-03 6.6891299524e-03 7.6360210205e-03 +199 7.7834639499e-02 4.2084244364e-03 3.1370504020e-02 4.4801400228e-02 7.8362578879e-03 2.9496561198e-03 6.4343158593e-03 7.3428755871e-03 +200 2.1461335657e-01 4.7702427931e-03 3.2345400626e-02 4.6522095681e-02 7.9429853642e-03 3.0663889429e-03 7.1226161246e-03 1.0233781619e-02 +201 1.6506212248e-01 6.7721626994e-03 4.7541886683e-02 6.5648465567e-02 7.9336913249e-03 3.0512452170e-03 8.6421831034e-03 9.4459647955e-03 +202 1.7321893027e-01 6.3991261716e-03 4.6052397337e-02 6.3171660449e-02 7.8394770623e-03 2.9752345142e-03 8.1598253040e-03 8.9901052812e-03 +203 1.5299267326e-01 5.5078811370e-03 4.2446825865e-02 5.9262244202e-02 7.6874885419e-03 2.8009446074e-03 7.7411431568e-03 8.5654796821e-03 +204 1.1340045005e-01 5.3624559667e-03 4.2193914998e-02 5.9298550223e-02 7.5084881479e-03 2.6136412423e-03 7.3537096235e-03 8.1679737277e-03 +205 1.0986538030e-01 5.0623243698e-03 4.0089044094e-02 5.7140176287e-02 7.3238984240e-03 2.4551838940e-03 7.0081361162e-03 7.7975243263e-03 +206 9.8627086272e-02 4.4778507140e-03 3.5544180180e-02 5.1173021180e-02 7.1348713759e-03 2.3367927890e-03 6.6919601554e-03 7.4557368446e-03 +207 8.1297021768e-02 4.0528341052e-03 3.2197284302e-02 4.6523287722e-02 6.9648349380e-03 2.2812365253e-03 6.4044242246e-03 7.1424975669e-03 +208 7.7664896832e-02 3.8121281864e-03 3.0085118763e-02 4.3544011319e-02 6.7978660347e-03 2.2669972791e-03 6.1399356456e-03 6.8533253499e-03 +209 7.2886134427e-02 3.6612637259e-03 2.8623363142e-02 4.1238121363e-02 6.6222322616e-03 2.2677607503e-03 5.8994746941e-03 6.5820427969e-03 +210 2.2113745712e-01 4.2900022177e-03 2.9853263638e-02 4.3512914725e-02 6.8942406885e-03 2.7134657517e-03 6.6001158916e-03 9.4614828706e-03 +211 1.5420392799e-01 5.9435183054e-03 4.6014628522e-02 6.4812697664e-02 6.7451903772e-03 2.3969501301e-03 8.1320607203e-03 9.3216883304e-03 +212 1.5151875152e-01 5.7393008127e-03 4.6162989816e-02 6.4943977465e-02 6.7840251677e-03 2.5524013437e-03 7.6190785705e-03 8.4730991965e-03 +213 1.2883190987e-01 4.9669159815e-03 4.1436656238e-02 5.8955058829e-02 6.6607810334e-03 2.3528935263e-03 7.2028712918e-03 8.0423265037e-03 +214 1.0228793614e-01 4.7023282551e-03 3.9346976988e-02 5.5747118393e-02 6.5306595740e-03 2.1965201440e-03 6.8535122944e-03 7.6657013968e-03 +215 1.0369523480e-01 4.3954628357e-03 3.6672822603e-02 5.2033889971e-02 6.3970551341e-03 2.0733511501e-03 6.5418743848e-03 7.3163233276e-03 +216 9.1515016878e-02 3.9538447821e-03 3.3029606332e-02 4.6977708522e-02 6.3036305982e-03 2.0227421888e-03 6.2435422443e-03 6.9977562909e-03 +217 7.3583174607e-02 3.6754007632e-03 3.0713055277e-02 4.3843178177e-02 6.2741238519e-03 2.0927005244e-03 5.9688646381e-03 6.7023405366e-03 +218 7.0471297148e-02 3.4769264210e-03 2.8777515885e-02 4.1269600211e-02 6.2234955260e-03 2.1554568573e-03 5.7157207077e-03 6.4262892764e-03 +219 6.6845444742e-02 3.3223202092e-03 2.7312833914e-02 3.9128929846e-02 6.1433641003e-03 2.1859947192e-03 5.4859114021e-03 6.1687634211e-03 +220 2.0694770464e-01 3.9184741116e-03 2.8487840095e-02 4.1119131283e-02 6.3094768004e-03 2.3207732841e-03 6.1764017806e-03 9.0406011156e-03 +221 1.5212120777e-01 5.4268102818e-03 4.2031084887e-02 5.8684889880e-02 6.3315062781e-03 2.3424755614e-03 7.6353503716e-03 8.2383135673e-03 +222 1.5765536743e-01 5.1299083207e-03 4.1121868531e-02 5.7143964883e-02 6.2856660203e-03 2.3011556228e-03 7.1473055568e-03 7.7881525810e-03 +223 1.3702931714e-01 4.4127540772e-03 3.7639877607e-02 5.3251670500e-02 6.1930249043e-03 2.1949744897e-03 6.7363395171e-03 7.3768353437e-03 +224 1.0108867041e-01 4.2771077515e-03 3.6986022730e-02 5.2476914032e-02 6.0770588376e-03 2.0771380164e-03 6.3623825976e-03 6.9984605143e-03 +225 9.7020069623e-02 4.0035102626e-03 3.4886116742e-02 5.0059209364e-02 5.9416351282e-03 1.9724499350e-03 6.0299333728e-03 6.6496500702e-03 +226 8.5724064542e-02 3.5313811964e-03 3.0814671105e-02 4.4530970400e-02 5.8106749700e-03 1.8986996673e-03 5.7267448642e-03 6.3283098288e-03 +227 6.9300486153e-02 3.1998033198e-03 2.7864766057e-02 4.0269025395e-02 5.6792224414e-03 1.8558658710e-03 5.4505781312e-03 6.0323462582e-03 +228 6.6100483887e-02 2.9948368649e-03 2.5908580303e-02 3.7468542573e-02 5.5461733316e-03 1.8397964380e-03 5.1986856097e-03 5.7625713404e-03 +229 6.1890057408e-02 2.8553134669e-03 2.4556134492e-02 3.5291077863e-02 5.4043997052e-03 1.8290512126e-03 4.9704609272e-03 5.5101007028e-03 +230 2.0741821452e-01 3.4810119317e-03 2.6111543482e-02 3.8073279766e-02 5.6093948967e-03 2.0721206456e-03 5.6477525214e-03 8.3205954662e-03 +231 1.3723213062e-01 4.7116013991e-03 4.0418666827e-02 5.7350770148e-02 5.5417024669e-03 1.9520566804e-03 7.0998716326e-03 7.7481261265e-03 +232 1.3825208197e-01 4.5209259794e-03 4.0498274996e-02 5.7555348648e-02 5.5142840993e-03 1.9491846353e-03 6.5872200949e-03 7.1214997236e-03 +233 1.1752604679e-01 3.9225482770e-03 3.6127248929e-02 5.2065741170e-02 5.4361466196e-03 1.8748156914e-03 6.1850586028e-03 6.7275580245e-03 +234 9.0504453286e-02 3.6850634014e-03 3.3979668688e-02 4.8649314749e-02 5.3138252157e-03 1.7630570732e-03 5.8425506727e-03 6.3871053636e-03 +235 9.0726846614e-02 3.4211769084e-03 3.1483755486e-02 4.5152237826e-02 5.1843913675e-03 1.6600663513e-03 5.5379984572e-03 6.0707696113e-03 +236 7.9198060531e-02 3.0655732244e-03 2.8219512546e-02 4.0559152952e-02 5.0523319879e-03 1.5596792713e-03 5.2512488251e-03 5.7773492929e-03 +237 6.1659457233e-02 2.8414625199e-03 2.6180414343e-02 3.7802199013e-02 4.9634510345e-03 1.5023261896e-03 4.9922568088e-03 5.5086697948e-03 +238 5.8326512582e-02 2.6883991382e-03 2.4482425768e-02 3.5505482763e-02 4.8926378777e-03 1.4852187009e-03 4.7572497119e-03 5.2579094913e-03 +239 5.5447159887e-02 2.5592702353e-03 2.3136553521e-02 3.3507459113e-02 4.8073807215e-03 1.4714118860e-03 4.5450972968e-03 5.0258987833e-03 +240 1.8851277279e-01 3.1544239496e-03 2.4408208266e-02 3.5702502888e-02 4.9391302879e-03 1.5723922172e-03 5.1973151971e-03 7.7607942760e-03 +241 1.3128791516e-01 4.2562098611e-03 3.6277348402e-02 5.1768136530e-02 4.9474687756e-03 1.6004771712e-03 6.5408455392e-03 6.9802753685e-03 +242 1.3539043313e-01 4.0384876967e-03 3.5911131242e-02 5.1111340603e-02 4.9011521698e-03 1.5798312187e-03 6.0735691419e-03 6.5517617487e-03 +243 1.1654491171e-01 3.4517397394e-03 3.2263469761e-02 4.6637687187e-02 4.8308661078e-03 1.5342776643e-03 5.6896439458e-03 6.1699511460e-03 +244 8.4695503081e-02 3.2950894763e-03 3.1136375588e-02 4.5023785841e-02 4.7472691789e-03 1.4891900226e-03 5.3473897583e-03 5.8266814257e-03 +245 8.2350173559e-02 3.0759033091e-03 2.9127674548e-02 4.2564145932e-02 4.6501420831e-03 1.4406603560e-03 5.0427760640e-03 5.5136937302e-03 +246 7.2437541809e-02 2.7252942669e-03 2.5611503227e-02 3.7659771445e-02 4.5466330198e-03 1.4037460170e-03 4.7675582602e-03 5.2282059604e-03 +247 5.6511148371e-02 2.4870176913e-03 2.2997148595e-02 3.3827870144e-02 4.4381286731e-03 1.3770608042e-03 4.5202437866e-03 4.9669021696e-03 +248 5.3409954208e-02 2.3345085272e-03 2.1243771079e-02 3.1268867408e-02 4.3240513646e-03 1.3574744665e-03 4.2960288541e-03 4.7291538204e-03 +249 4.9454496126e-02 2.2130305206e-03 2.0044524522e-02 2.9323629030e-02 4.2052455992e-03 1.3371130543e-03 4.0942027254e-03 4.5098677655e-03 +250 1.7963570646e-01 2.7917743049e-03 2.1812622866e-02 3.2487527702e-02 4.3139921520e-03 1.3921083055e-03 4.6945745035e-03 7.0828661317e-03 +251 1.1872055345e-01 3.6434415954e-03 3.3653510639e-02 4.9019204255e-02 4.3137202865e-03 1.4077740121e-03 5.9721539276e-03 6.3272327547e-03 +252 1.2013448946e-01 3.4891581396e-03 3.4097442009e-02 4.9804389465e-02 4.2931173930e-03 1.4061003903e-03 5.4995101463e-03 5.8684648861e-03 +253 1.0084417463e-01 3.0320936800e-03 2.9997082514e-02 4.4347769362e-02 4.2317709630e-03 1.3684270968e-03 5.1344577151e-03 5.5160695486e-03 +254 7.4889549728e-02 2.8349893444e-03 2.7749882453e-02 4.0637367473e-02 4.1398150471e-03 1.3091139689e-03 4.8182922448e-03 5.2047485276e-03 +255 7.4422704058e-02 2.6207833887e-03 2.5514663267e-02 3.7435258713e-02 4.0340447287e-03 1.2438906786e-03 4.5316400352e-03 4.9189208503e-03 +256 6.5265387197e-02 2.3471339756e-03 2.2704747256e-02 3.3464669143e-02 3.9223153091e-03 1.1772036829e-03 4.2760690406e-03 4.6591951648e-03 +257 4.9794291306e-02 2.1845707507e-03 2.0920359137e-02 3.0994855498e-02 3.8189462874e-03 1.1190990115e-03 4.0515538009e-03 4.4219892417e-03 +258 4.7228959202e-02 2.0683615306e-03 1.9453471265e-02 2.8956741209e-02 3.7249885176e-03 1.0718389420e-03 3.8485417904e-03 4.2061547133e-03 +259 4.3889730671e-02 1.9635434340e-03 1.8292520464e-02 2.7148380547e-02 3.6374606925e-03 1.0336713320e-03 3.6655314404e-03 4.0061508663e-03 +260 1.5927306430e-01 2.4574807395e-03 1.9820782743e-02 2.9840616736e-02 3.7363915096e-03 1.0842799891e-03 4.2329815514e-03 6.3823425450e-03 +261 1.0624683003e-01 3.0324741040e-03 2.9069910604e-02 4.2694096379e-02 3.7529669948e-03 1.0986810516e-03 5.3522319560e-03 5.7208548582e-03 +262 1.0972513281e-01 2.9013589808e-03 2.9005299503e-02 4.2523767589e-02 3.7360226583e-03 1.0953421473e-03 4.9675485134e-03 5.3513398892e-03 +263 9.3049270917e-02 2.5238608574e-03 2.5454014513e-02 3.7732132799e-02 3.7051152977e-03 1.0881966345e-03 4.6515271676e-03 5.0298521799e-03 +264 6.6013275232e-02 2.3525326104e-03 2.4167851573e-02 3.5627544711e-02 3.6522388081e-03 1.0675923408e-03 4.3743856577e-03 4.7474236880e-03 +265 6.5465727440e-02 2.2001105684e-03 2.2554882239e-02 3.3464502356e-02 3.5821128607e-03 1.0385016613e-03 4.1332155650e-03 4.4943119523e-03 +266 5.6910999294e-02 2.0031827807e-03 1.9836122815e-02 2.9606870426e-02 3.4984248815e-03 1.0022652793e-03 3.9177114872e-03 4.2632794091e-03 +267 4.2077320966e-02 1.8692648522e-03 1.7775812338e-02 2.6540535164e-02 3.4139114135e-03 9.6663457247e-04 3.7221706246e-03 4.0526898059e-03 +268 3.9545265111e-02 1.7818832754e-03 1.6382944208e-02 2.4522251172e-02 3.3288288267e-03 9.3138153297e-04 3.5448479453e-03 3.8624243276e-03 +269 3.6396375906e-02 1.6828469649e-03 1.5459941597e-02 2.3005073238e-02 3.2489766042e-03 9.0095068990e-04 3.3847675888e-03 3.6881106260e-03 +270 1.4908992376e-01 2.1416841760e-03 1.7208736586e-02 2.6197338799e-02 3.3579692225e-03 9.4516862420e-04 3.8767070585e-03 5.8617830995e-03 +271 9.9904901394e-02 2.5941296089e-03 2.6882878577e-02 3.9871799985e-02 3.3833185149e-03 9.5677453939e-04 4.9069276798e-03 5.2055161512e-03 +272 9.9932235125e-02 2.5165339988e-03 2.7289508304e-02 4.0593895059e-02 3.4112037282e-03 9.7317977098e-04 4.5234910072e-03 4.8325550949e-03 +273 8.2836559957e-02 2.2373467618e-03 2.3723946409e-02 3.5666146973e-02 3.4235172374e-03 9.8624186688e-04 4.2201195428e-03 4.5393825764e-03 +274 5.9617869615e-02 2.0771486023e-03 2.1803923880e-02 3.2364228459e-02 3.4135249397e-03 9.9545369927e-04 3.9579825834e-03 4.2848944668e-03 +275 5.9217461168e-02 1.9388688932e-03 2.0016348903e-02 2.9718946856e-02 3.3729236858e-03 9.9053647982e-04 3.7370263833e-03 4.0558877717e-03 +276 5.0869312949e-02 1.7750873652e-03 1.7758039913e-02 2.6414028800e-02 3.3169282139e-03 9.8133594882e-04 3.5412654930e-03 3.8464723829e-03 +277 3.7462003154e-02 1.6682487338e-03 1.6407057888e-02 2.4568529587e-02 3.2487720766e-03 9.6204041612e-04 3.3662869659e-03 3.6547178125e-03 +278 3.6809015670e-02 1.5755700963e-03 1.5260925787e-02 2.2975207646e-02 3.1751052771e-03 9.4044492899e-04 3.2085767749e-03 3.4810870063e-03 +279 3.4887033695e-02 1.4851311202e-03 1.4295153746e-02 2.1426901768e-02 3.0974499738e-03 9.1216033605e-04 3.0661023468e-03 3.3216751400e-03 +280 1.4215628291e-01 1.9371756387e-03 1.5800574952e-02 2.4069291608e-02 3.2198881070e-03 9.6011122621e-04 3.5181959261e-03 5.4215784805e-03 +281 9.3718808330e-02 2.4264259682e-03 2.4783849425e-02 3.7096621259e-02 3.2353900255e-03 9.7023741584e-04 4.5054122040e-03 4.8210297979e-03 +282 9.6216063741e-02 2.3410430582e-03 2.4732753538e-02 3.7115611923e-02 3.2252739939e-03 9.6177451188e-04 4.1626703017e-03 4.4924949758e-03 +283 8.0255733520e-02 2.0411120957e-03 2.1282519502e-02 3.2265811594e-02 3.1945591409e-03 9.4975031384e-04 3.8860553446e-03 4.2092249630e-03 +284 5.5803410763e-02 1.8905611593e-03 1.9984599644e-02 3.0005965365e-02 3.1422790274e-03 9.2528338406e-04 3.6430008363e-03 3.9629242318e-03 +285 5.6743127718e-02 1.7541065480e-03 1.8537406169e-02 2.8037954223e-02 3.0741304069e-03 8.9386601115e-04 3.4325655379e-03 3.7421970515e-03 +286 4.9364197400e-02 1.5805039309e-03 1.6123935525e-02 2.4469078928e-02 2.9943901423e-03 8.5654634713e-04 3.2468072759e-03 3.5429308389e-03 +287 3.5324585782e-02 1.4664383358e-03 1.4361581413e-02 2.1749462710e-02 2.9155663144e-03 8.2143088144e-04 3.0798569835e-03 3.3610816118e-03 +288 3.3006033397e-02 1.4171163893e-03 1.3199530035e-02 2.0019229448e-02 2.8405540533e-03 7.9089510861e-04 2.9286232203e-03 3.1969731911e-03 +289 3.0909117387e-02 1.3457916048e-03 1.2395668888e-02 1.8728724395e-02 2.7656578552e-03 7.5808823376e-04 2.7914067625e-03 3.0497315807e-03 +290 1.3513387321e-01 1.7815172893e-03 1.4157311143e-02 2.1853280299e-02 2.8716885217e-03 8.0051731724e-04 3.2535423485e-03 5.0881514262e-03 +291 9.0180366275e-02 2.2220534087e-03 2.3584493948e-02 3.5928861474e-02 2.9020822380e-03 8.0969348613e-04 4.2126455906e-03 4.4923342617e-03 +292 9.0303079635e-02 2.1560619072e-03 2.4040487338e-02 3.6890068024e-02 2.9289444292e-03 8.2110439832e-04 3.8749187167e-03 4.1643995673e-03 +293 7.3667085776e-02 1.8960062634e-03 2.0658539937e-02 3.1985245704e-02 2.9439459825e-03 8.3313079385e-04 3.6102176776e-03 3.9050747099e-03 +294 5.2039395422e-02 1.7573152419e-03 1.8861695438e-02 2.8850277453e-02 2.9357785691e-03 8.3841961217e-04 3.3814953140e-03 3.6813652290e-03 +295 5.1724854303e-02 1.6434299328e-03 1.7214595580e-02 2.6366617803e-02 2.9042507189e-03 8.3549083228e-04 3.1898153171e-03 3.4820738442e-03 +296 4.4395257833e-02 1.5022715570e-03 1.5136148602e-02 2.3167319677e-02 2.8547461014e-03 8.2405496689e-04 3.0214674490e-03 3.2997459084e-03 +297 3.1913113227e-02 1.4118373243e-03 1.3931183801e-02 2.1394181667e-02 2.7948773299e-03 8.0650177666e-04 2.8706289293e-03 3.1336502195e-03 +298 3.1127980198e-02 1.3299798183e-03 1.2927941708e-02 1.9946572454e-02 2.7298583157e-03 7.8609965096e-04 2.7345313043e-03 2.9836241420e-03 +299 2.8846472411e-02 1.2518538154e-03 1.2071472204e-02 1.8552848572e-02 2.6656288517e-03 7.6313026696e-04 2.6131788115e-03 2.8480369591e-03 +300 1.2976019912e-01 1.6794735104e-03 1.3629316086e-02 2.1260155105e-02 2.7837387767e-03 8.0874075856e-04 3.0436869901e-03 4.8373108062e-03 +301 8.5248351231e-02 2.1535235581e-03 2.2375184441e-02 3.4498509664e-02 2.8078145985e-03 8.2196019235e-04 3.9749856553e-03 4.2856171253e-03 +302 8.7416888757e-02 2.0906909845e-03 2.2481790669e-02 3.4876710278e-02 2.8056736591e-03 8.1794426194e-04 3.6689553127e-03 3.9908336545e-03 +303 7.2492870589e-02 1.8220768936e-03 1.9269744757e-02 3.0221945800e-02 2.7818443698e-03 8.0821331089e-04 3.4249520071e-03 3.7388146455e-03 +304 4.9539756542e-02 1.6894798354e-03 1.8021723236e-02 2.8048036018e-02 2.7400888118e-03 7.9069719422e-04 3.2115919512e-03 3.5226841985e-03 +305 5.0395187570e-02 1.5664717293e-03 1.6696392575e-02 2.6138041349e-02 2.6835235174e-03 7.6662741247e-04 3.0281587022e-03 3.3295792717e-03 +306 4.3833925953e-02 1.4092856537e-03 1.4452552897e-02 2.2680041658e-02 2.6162492485e-03 7.3771650610e-04 2.8674214012e-03 3.1565102561e-03 +307 3.1265765275e-02 1.3164026413e-03 1.2836639890e-02 2.0115263201e-02 2.5462349312e-03 7.0741552095e-04 2.7238816334e-03 2.9996915784e-03 +308 2.9489109824e-02 1.2682658738e-03 1.1787069213e-02 1.8489592410e-02 2.4797571350e-03 6.8142562867e-04 2.5941409985e-03 2.8585778699e-03 +309 2.7473282466e-02 1.2086033122e-03 1.1101410546e-02 1.7282493749e-02 2.4141089431e-03 6.5485428543e-04 2.4778298538e-03 2.7328643127e-03 +310 1.2599062806e-01 1.6218085086e-03 1.2844646521e-02 2.0405900024e-02 2.5177158614e-03 6.9723187892e-04 2.9162612448e-03 4.6712911692e-03 +311 8.4234952603e-02 2.0402546347e-03 2.1931567213e-02 3.4463062412e-02 2.5516403784e-03 7.0976759329e-04 3.8229566485e-03 4.1174279140e-03 +312 8.4235303354e-02 1.9911871328e-03 2.2481757373e-02 3.5670249080e-02 2.5789463215e-03 7.2189513005e-04 3.5209213949e-03 3.8213251097e-03 +313 6.7672527865e-02 1.7572886454e-03 1.9312322362e-02 3.0926407900e-02 2.5984148514e-03 7.3794147393e-04 3.2730924015e-03 3.5861868886e-03 +314 4.9030482613e-02 1.6436271164e-03 1.7637939001e-02 2.7960747654e-02 2.5929486852e-03 7.4399154260e-04 3.0805714995e-03 3.3849684494e-03 +315 4.9491858750e-02 1.5243444298e-03 1.6056166419e-02 2.5434424066e-02 2.5641953827e-03 7.4013868133e-04 2.9088717246e-03 3.2056873257e-03 +316 4.2255176121e-02 1.3843274846e-03 1.4106048179e-02 2.2293406611e-02 2.5200395572e-03 7.2874693594e-04 2.7589205350e-03 3.0420585350e-03 +317 3.0059488275e-02 1.3053238121e-03 1.2993489208e-02 2.0569462648e-02 2.4707214189e-03 7.1536638642e-04 2.6261350012e-03 2.8929164365e-03 +318 2.9389136908e-02 1.2415000836e-03 1.2086072658e-02 1.9229681911e-02 2.4178351347e-03 6.9944855285e-04 2.5069113512e-03 2.7583681943e-03 +319 2.7752708791e-02 1.1743779236e-03 1.1334318995e-02 1.7950550594e-02 2.3623540812e-03 6.7960405356e-04 2.4012369819e-03 2.6375918465e-03 +320 1.2304413966e-01 1.5781833602e-03 1.2860255375e-02 2.0627965683e-02 2.4754346147e-03 7.2331672445e-04 2.8105878726e-03 4.5291584746e-03 +321 8.1491508335e-02 2.0415203838e-03 2.1324900903e-02 3.3808966885e-02 2.5031717974e-03 7.3667349813e-04 3.6915122803e-03 4.0108049142e-03 +322 8.2964914113e-02 1.9729912214e-03 2.1478520141e-02 3.4274959211e-02 2.5094576289e-03 7.3708985933e-04 3.4089603907e-03 3.7352077242e-03 +323 6.8737692527e-02 1.6986464262e-03 1.8449021195e-02 2.9723074370e-02 2.4937314617e-03 7.2913413473e-04 3.1732662883e-03 3.5001697751e-03 +324 4.7554633154e-02 1.5914258965e-03 1.7245407761e-02 2.7567541379e-02 2.4607617007e-03 7.1490022908e-04 2.9883344597e-03 3.2975620092e-03 +325 4.7771207229e-02 1.4856422243e-03 1.5943202704e-02 2.5557991195e-02 2.4138200071e-03 6.9370305578e-04 2.8184812532e-03 3.1167035206e-03 +326 4.0798498475e-02 1.3428018547e-03 1.3816151754e-02 2.2177044712e-02 2.3573796428e-03 6.6865227782e-04 2.6707276402e-03 2.9542198227e-03 +327 2.9147987700e-02 1.2485016267e-03 1.2318546386e-02 1.9706069999e-02 2.2996780360e-03 6.4293333329e-04 2.5381065388e-03 2.8069825221e-03 +328 2.7645207335e-02 1.1941451942e-03 1.1342690434e-02 1.8137160081e-02 2.2419572455e-03 6.1849088316e-04 2.4189879811e-03 2.6745946122e-03 +329 2.5279517259e-02 1.1329968827e-03 1.0681382263e-02 1.6989809998e-02 2.1869593004e-03 5.9532676103e-04 2.3117195490e-03 2.5558988133e-03 +330 1.1852978695e-01 1.5175324578e-03 1.2357504677e-02 1.9977725789e-02 2.2928437743e-03 6.3869835146e-04 2.7194262841e-03 4.3889130700e-03 +331 7.8885426838e-02 1.9487087498e-03 2.1171099494e-02 3.4402084840e-02 2.3329012781e-03 6.5351730117e-04 3.5590875177e-03 3.8639685565e-03 +332 8.0092654199e-02 1.8846532488e-03 2.1613329790e-02 3.5112098207e-02 2.3600444864e-03 6.6369735913e-04 3.2873910267e-03 3.5844476327e-03 +333 6.4919264254e-02 1.6542511312e-03 1.8598766768e-02 3.0286841951e-02 2.3747067661e-03 6.7330490162e-04 3.0647801500e-03 3.3585097798e-03 +334 4.5731752440e-02 1.5376060920e-03 1.6971314290e-02 2.7427991545e-02 2.3745814703e-03 6.8124447987e-04 2.8738829651e-03 3.1676518402e-03 +335 4.6269676029e-02 1.4251499393e-03 1.5480704491e-02 2.5123904050e-02 2.3513657293e-03 6.7683220623e-04 2.7129116850e-03 2.9964891490e-03 +336 3.9454533371e-02 1.2941187064e-03 1.3581133104e-02 2.1922080885e-02 2.3163687054e-03 6.6970760276e-04 2.5716776352e-03 2.8403802495e-03 +337 2.8625339737e-02 1.2156252650e-03 1.2506654723e-02 2.0151304220e-02 2.2714434844e-03 6.5502382928e-04 2.4441474434e-03 2.6975666076e-03 +338 2.7936315302e-02 1.1566963004e-03 1.1622805568e-02 1.8775696880e-02 2.2223165194e-03 6.3852725132e-04 2.3298274075e-03 2.5686340883e-03 +339 2.6062997362e-02 1.0922852207e-03 1.0889394105e-02 1.7499966214e-02 2.1730601780e-03 6.2129510106e-04 2.2273910066e-03 2.4526265723e-03 +340 1.1591712706e-01 1.4697756754e-03 1.2344377754e-02 2.0078078757e-02 2.2811158873e-03 6.6495654563e-04 2.6089879132e-03 4.2395970241e-03 +341 7.7786058475e-02 1.9033553833e-03 2.0443637001e-02 3.3007539522e-02 2.3091677786e-03 6.7776042288e-04 3.4341313762e-03 3.7450580117e-03 +342 7.9379118731e-02 1.8383679839e-03 2.0613895202e-02 3.3508941330e-02 2.3134590606e-03 6.7706374843e-04 3.1664430876e-03 3.4813754157e-03 +343 6.5606153263e-02 1.5967652160e-03 1.7697962129e-02 2.8957349082e-02 2.2991214780e-03 6.7087713683e-04 2.9552295551e-03 3.2565522608e-03 +344 4.5390540062e-02 1.4829946523e-03 1.6491908846e-02 2.6815240916e-02 2.2674620045e-03 6.5808005030e-04 2.7690522929e-03 3.0639970063e-03 +345 4.5771469264e-02 1.3792542431e-03 1.5242547207e-02 2.4970993323e-02 2.2226801870e-03 6.3787259554e-04 2.6085966379e-03 2.8917797045e-03 +346 3.9310257167e-02 1.2417641800e-03 1.3208866208e-02 2.1617882672e-02 2.1687741793e-03 6.1450141257e-04 2.4684621776e-03 2.7371977773e-03 +347 2.7730825728e-02 1.1517268857e-03 1.1759607020e-02 1.9121241880e-02 2.1138887463e-03 5.9073620555e-04 2.3431537224e-03 2.5974641221e-03 +348 2.5971349217e-02 1.1037648800e-03 1.0806385228e-02 1.7554542340e-02 2.0590076619e-03 5.6808785252e-04 2.2298995919e-03 2.4719279567e-03 +349 2.3762239894e-02 1.0479960378e-03 1.0155440555e-02 1.6413465418e-02 2.0076453780e-03 5.4770595211e-04 2.1279887851e-03 2.3589167822e-03 +350 1.1149054020e-01 1.4061936664e-03 1.1736967427e-02 1.9242826116e-02 2.0996093234e-03 5.8365109960e-04 2.5050007497e-03 4.0842175134e-03 +351 7.3858511259e-02 1.8117293129e-03 2.0068284783e-02 3.3109113413e-02 2.1320256933e-03 5.9576890009e-04 3.2904681572e-03 3.5845266627e-03 +352 7.4385820577e-02 1.7522254977e-03 2.0491943293e-02 3.3812546040e-02 2.1533547214e-03 6.0512621999e-04 3.0349015620e-03 3.3216080019e-03 +353 5.9608013927e-02 1.5246309315e-03 1.7593586364e-02 2.9055376163e-02 2.1649378147e-03 6.1462471380e-04 2.8162227617e-03 3.1061223314e-03 +354 4.2914501842e-02 1.4184198176e-03 1.6041884296e-02 2.6291537045e-02 2.1589355442e-03 6.1831839702e-04 2.6461801519e-03 2.9241298593e-03 +355 4.3433390090e-02 1.3125491919e-03 1.4594786430e-02 2.3926495076e-02 2.1366644166e-03 6.1598999549e-04 2.4934445734e-03 2.7616510362e-03 +356 3.6979100544e-02 1.1885990122e-03 1.2778516592e-02 2.0884072959e-02 2.1016592835e-03 6.0672396965e-04 2.3605047721e-03 2.6141823799e-03 +357 2.6629212010e-02 1.1210711074e-03 1.1726130734e-02 1.9182160433e-02 2.0593145168e-03 5.9309271219e-04 2.2408553377e-03 2.4791956964e-03 +358 2.6033037128e-02 1.0696337571e-03 1.0901419245e-02 1.7843004810e-02 2.0119784010e-03 5.7647160648e-04 2.1343471848e-03 2.3571981393e-03 +359 2.4058452635e-02 1.0115414589e-03 1.0198645915e-02 1.6627911905e-02 1.9655956802e-03 5.6029066294e-04 2.0391347224e-03 2.2478473863e-03 +360 1.0807790099e-01 1.3641163524e-03 1.1589359857e-02 1.9070934229e-02 2.0619006639e-03 5.9775805387e-04 2.3961209828e-03 3.9327535692e-03 +361 7.2749986521e-02 1.7758489521e-03 1.9327129477e-02 3.1952351056e-02 2.0888184453e-03 6.1150101350e-04 3.1577712297e-03 3.4598219805e-03 +362 7.4452571713e-02 1.7013162497e-03 1.9433209940e-02 3.2050252721e-02 2.0943231007e-03 6.1306257850e-04 2.9144222138e-03 3.2109848873e-03 +363 6.0774369950e-02 1.4551521978e-03 1.6651997760e-02 2.7570591492e-02 2.0845749233e-03 6.1092093000e-04 2.7044960416e-03 3.0002391695e-03 +364 4.3022822653e-02 1.3694828343e-03 1.5496826507e-02 2.5654678209e-02 2.0541014849e-03 5.9672021994e-04 2.5412593444e-03 2.8183371409e-03 +365 4.3472621581e-02 1.2787962014e-03 1.4268369265e-02 2.3705665256e-02 2.0121889453e-03 5.7872629572e-04 2.3930159477e-03 2.6568894187e-03 +366 3.6774227913e-02 1.1505412792e-03 1.2332957378e-02 2.0438664577e-02 1.9626301757e-03 5.5780333295e-04 2.2639988269e-03 2.5122628713e-03 +367 2.6287912862e-02 1.0677246654e-03 1.0976928638e-02 1.8132049021e-02 1.9114426370e-03 5.3590928279e-04 2.1473907833e-03 2.3817321237e-03 +368 2.4902739340e-02 1.0129006245e-03 1.0072631865e-02 1.6633421436e-02 1.8606312754e-03 5.1541078910e-04 2.0428303764e-03 2.2646802266e-03 +369 2.2706753515e-02 9.5668217752e-04 9.4609474199e-03 1.5567151230e-02 1.8130434173e-03 4.9730905811e-04 1.9488028224e-03 2.1584688387e-03 +370 1.0455137283e-01 1.2931182564e-03 1.0946826482e-02 1.8208566194e-02 1.8990331039e-03 5.3246501749e-04 2.2977820774e-03 3.7735859254e-03 +371 7.0257928987e-02 1.6658453464e-03 1.8719475360e-02 3.1348424159e-02 1.9271116080e-03 5.4283879063e-04 3.0301493357e-03 3.2986098346e-03 +372 7.0506403195e-02 1.6085284299e-03 1.9114268597e-02 3.1995729415e-02 1.9437358013e-03 5.5063379761e-04 2.7895772907e-03 3.0524390247e-03 +373 5.6958562272e-02 1.4034320691e-03 1.6395617240e-02 2.7465063708e-02 1.9494653839e-03 5.5694607039e-04 2.5948109067e-03 2.8477920722e-03 +374 4.0707354131e-02 1.2954038917e-03 1.4891618436e-02 2.4814988907e-02 1.9395718177e-03 5.5778212036e-04 2.4285856122e-03 2.6773544573e-03 +375 4.0738522093e-02 1.1977182967e-03 1.3522007860e-02 2.2659282948e-02 1.9140984570e-03 5.5207950005e-04 2.2870748235e-03 2.5243189212e-03 +376 3.4629263847e-02 1.0816738724e-03 1.1800293870e-02 1.9696156856e-02 1.8795046590e-03 5.4289964559e-04 2.1634559545e-03 2.3854240384e-03 +377 2.4905758421e-02 1.0171038997e-03 1.0799832967e-02 1.7960670112e-02 1.8393792969e-03 5.2998610959e-04 2.0522545113e-03 2.2585858983e-03 +378 2.4326754615e-02 9.6922083805e-04 1.0014667609e-02 1.6685347893e-02 1.7951967431e-03 5.1497019945e-04 1.9533804475e-03 2.1437035880e-03 +379 2.2631702676e-02 9.1292104739e-04 9.3607902889e-03 1.5513198309e-02 1.7499642500e-03 4.9884904535e-04 1.8650635696e-03 2.0405137331e-03 +380 1.0045358768e-01 1.2360933114e-03 1.0651958111e-02 1.7790587740e-02 1.8331336735e-03 5.3187879503e-04 2.1950084723e-03 3.6066843884e-03 +381 6.7810751600e-02 1.6042143668e-03 1.7843037044e-02 2.9928321728e-02 1.8551159996e-03 5.4327251455e-04 2.9002166072e-03 3.1601068340e-03 +382 6.8643429607e-02 1.5352524053e-03 1.7988575501e-02 3.0108038434e-02 1.8585619448e-03 5.4519728486e-04 2.6724072173e-03 2.9258492304e-03 +383 5.6109328011e-02 1.3201540929e-03 1.5381932978e-02 2.5776221556e-02 1.8451528636e-03 5.4065750015e-04 2.4859361878e-03 2.7272997674e-03 +384 3.8896596081e-02 1.2307207973e-03 1.4230619119e-02 2.3795555540e-02 1.8192943472e-03 5.3246821801e-04 2.3255930688e-03 2.5569130476e-03 +385 3.9339870755e-02 1.1421913164e-03 1.3099034241e-02 2.2073129214e-02 1.7827411493e-03 5.1908811309e-04 2.1885589179e-03 2.4056601216e-03 +386 3.3972855381e-02 1.0223160977e-03 1.1322219297e-02 1.9047882322e-02 1.7365746990e-03 5.0042303763e-04 2.0676861161e-03 2.2699035415e-03 +387 2.4302826827e-02 9.4388147318e-04 1.0063516724e-02 1.6812918405e-02 1.6904262244e-03 4.8294168042e-04 1.9587189602e-03 2.1469547687e-03 +388 2.3332622603e-02 8.9475179840e-04 9.2163644237e-03 1.5415051629e-02 1.6479834442e-03 4.6876346981e-04 1.8606823318e-03 2.0371350242e-03 +389 2.1816625669e-02 8.4416754766e-04 8.6512869249e-03 1.4383758833e-02 1.6030971779e-03 4.5096454432e-04 1.7725913365e-03 1.9368537874e-03 +390 9.7401005970e-02 1.1512263100e-03 1.0002856309e-02 1.6801300264e-02 1.6765912201e-03 4.8039676114e-04 2.0885201677e-03 3.4232215473e-03 +391 6.5575887586e-02 1.4792299947e-03 1.7118119841e-02 2.8928313102e-02 1.7010824084e-03 4.9156230096e-04 2.7584059120e-03 2.9776816121e-03 +392 6.5866562294e-02 1.4258621894e-03 1.7518743402e-02 2.9598897922e-02 1.7148599995e-03 4.9931294060e-04 2.5326725271e-03 2.7492691209e-03 +393 5.4023977040e-02 1.2342149452e-03 1.4989766127e-02 2.5330203443e-02 1.7133751618e-03 5.0043581485e-04 2.3506459076e-03 2.5580186053e-03 +394 3.8845353052e-02 1.1345726678e-03 1.3556456002e-02 2.2830880885e-02 1.6994032718e-03 4.9861850265e-04 2.1953366106e-03 2.3983076588e-03 +395 3.8756683564e-02 1.0447763147e-03 1.2294001426e-02 2.0762894044e-02 1.6723322378e-03 4.9093241219e-04 2.0626196888e-03 2.2554775534e-03 +396 3.2832685525e-02 9.4046954425e-04 1.0704811906e-02 1.7973419340e-02 1.6366231731e-03 4.7905668663e-04 1.9461730932e-03 2.1259356850e-03 +397 2.3505399748e-02 8.8341045262e-04 9.7468337535e-03 1.6332187747e-02 1.5982597144e-03 4.6619796218e-04 1.8412510851e-03 2.0080967319e-03 +398 2.2867049284e-02 8.3878969002e-04 9.0121307215e-03 1.5151077014e-02 1.5571029314e-03 4.5142464421e-04 1.7474381641e-03 1.9016525754e-03 +399 2.1395977918e-02 7.8553433168e-04 8.4177726741e-03 1.4075140244e-02 1.5160592268e-03 4.3719794385e-04 1.6637403698e-03 1.8054334959e-03 +400 9.3192569019e-02 1.0805192877e-03 9.6078648082e-03 1.6188100577e-02 1.5899545966e-03 4.6764536171e-04 1.9605241003e-03 3.2408924815e-03 +401 6.4289283345e-02 1.3843170455e-03 1.6109719220e-02 2.6912863861e-02 1.6073289896e-03 4.7534780310e-04 2.6097709929e-03 2.8230941842e-03 +402 6.4351499767e-02 1.3349742735e-03 1.6360803231e-02 2.7574118854e-02 1.6121127093e-03 4.7921294426e-04 2.3867740573e-03 2.6048052278e-03 +403 5.2872112951e-02 1.1477953422e-03 1.3961721711e-02 2.3618140788e-02 1.5999424930e-03 4.7558248541e-04 2.2146307574e-03 2.4211945592e-03 +404 3.7403209890e-02 1.0617136028e-03 1.2835909418e-02 2.1585033882e-02 1.5730798608e-03 4.6540842967e-04 2.0636757709e-03 2.2638359530e-03 +405 3.7526020696e-02 9.9215598528e-04 1.1771082895e-02 1.9950000486e-02 1.5353869363e-03 4.5008122840e-04 1.9341121546e-03 2.1244773353e-03 +406 3.2051228283e-02 8.9096012927e-04 1.0147191344e-02 1.7207352036e-02 1.4958632223e-03 4.3584602381e-04 1.8198466457e-03 1.9993684652e-03 +407 2.3266489077e-02 8.1011159682e-04 9.0311837017e-03 1.5178121426e-02 1.4520586501e-03 4.1753987888e-04 1.7181387378e-03 1.8856229312e-03 +408 2.2007184882e-02 7.6633872278e-04 8.2582211640e-03 1.3871054451e-02 1.4071900713e-03 3.9974526258e-04 1.6263115464e-03 1.7847147771e-03 +409 1.9951714431e-02 7.2143899424e-04 7.7159759004e-03 1.2910147792e-02 1.3667839757e-03 3.8572747827e-04 1.5440816185e-03 1.6919023066e-03 +410 8.8262417145e-02 9.9759182862e-04 8.9376751184e-03 1.5080547434e-02 1.4310357586e-03 4.1080665738e-04 1.8250916797e-03 3.0374308193e-03 +411 5.9852653860e-02 1.2787454622e-03 1.5336264892e-02 2.6005362440e-02 1.4521053928e-03 4.2146501905e-04 2.4255842266e-03 2.6275770836e-03 +412 6.0184416906e-02 1.2319054810e-03 1.5717226111e-02 2.6670584481e-02 1.4589376235e-03 4.2398039739e-04 2.2169935234e-03 2.4185758033e-03 +413 4.8702993268e-02 1.0640907812e-03 1.3363980412e-02 2.2740970207e-02 1.4541243595e-03 4.2373143816e-04 2.0498206959e-03 2.2440018750e-03 +414 3.4591491112e-02 9.7474759211e-04 1.2035434332e-02 2.0404854806e-02 1.4399257335e-03 4.2198673593e-04 1.9074948758e-03 2.0977904616e-03 +415 3.4571748330e-02 8.9599112860e-04 1.0891298641e-02 1.8543446267e-02 1.4144331928e-03 4.1415585053e-04 1.7859314619e-03 1.9673874871e-03 +416 2.9272331340e-02 8.0596138201e-04 9.4493305581e-03 1.6023493225e-02 1.3853956715e-03 4.0623598649e-04 1.6795719110e-03 1.8496380281e-03 +417 2.1443210422e-02 7.5634559226e-04 8.5860577172e-03 1.4510416756e-02 1.3505704641e-03 3.9339285235e-04 1.5842982034e-03 1.7431579616e-03 +418 2.0896973243e-02 7.1575508706e-04 7.9173446898e-03 1.3417980950e-02 1.3143287954e-03 3.8062824380e-04 1.4989162478e-03 1.6477309111e-03 +419 1.9482203047e-02 6.6973676969e-04 7.3830258332e-03 1.2439652443e-02 1.2760058760e-03 3.6581568471e-04 1.4231578895e-03 1.5612020557e-03 +420 8.3549562513e-02 9.3702215932e-04 8.4435431234e-03 1.4322078642e-02 1.3394211421e-03 3.9117739905e-04 1.6895790434e-03 2.8520614054e-03 +421 5.7273517445e-02 1.2053424062e-03 1.4343267540e-02 2.4361465249e-02 1.3554202466e-03 3.9853068674e-04 2.2627054365e-03 2.4710207396e-03 +422 5.7277223750e-02 1.1541375310e-03 1.4543211387e-02 2.4689732039e-02 1.3572292124e-03 3.9963434679e-04 2.0677275695e-03 2.2752583439e-03 +423 4.6400304350e-02 9.8327708933e-04 1.2330822016e-02 2.0987137094e-02 1.3458362463e-03 3.9564013260e-04 1.9119332111e-03 2.1113836690e-03 +424 3.2429748761e-02 9.1378215589e-04 1.1273077591e-02 1.9179040214e-02 1.3250075126e-03 3.8892128412e-04 1.7781675421e-03 1.9714434373e-03 +425 3.2667394845e-02 8.4498977895e-04 1.0313666939e-02 1.7648264885e-02 1.2946219434e-03 3.7748833073e-04 1.6643815815e-03 1.8477555725e-03 +426 2.7888477138e-02 7.5389218904e-04 8.8711494116e-03 1.5167227471e-02 1.2577025328e-03 3.6233589942e-04 1.5643278155e-03 1.7373273509e-03 +427 1.9538785680e-02 6.9684507525e-04 7.8626108963e-03 1.3357331218e-02 1.2222625353e-03 3.4950947210e-04 1.4747219539e-03 1.6369382198e-03 +428 1.8736310452e-02 6.5867627724e-04 7.1929293444e-03 1.2192825510e-02 1.1862957061e-03 3.3602445397e-04 1.3946269278e-03 1.5485840970e-03 +429 1.7393231173e-02 6.1787683873e-04 6.7210142997e-03 1.1350704595e-02 1.1517796992e-03 3.2379182691e-04 1.3233545840e-03 1.4671946156e-03 +430 7.8631215464e-02 8.6807232002e-04 7.8066430348e-03 1.3281221646e-02 1.2097982730e-03 3.4723353666e-04 1.5752251631e-03 2.6729063083e-03 +431 5.3575692180e-02 1.1008167652e-03 1.3479146616e-02 2.3005326480e-02 1.2262677145e-03 3.5488327585e-04 2.1112070741e-03 2.3036397406e-03 +432 5.3328111866e-02 1.0603979398e-03 1.3820325615e-02 2.3609761487e-02 1.2344639777e-03 3.6030244212e-04 1.9246808054e-03 2.1173914638e-03 +433 4.3297431776e-02 9.1580005685e-04 1.1726615961e-02 2.0048327937e-02 1.2293911038e-03 3.5881927835e-04 1.7774102405e-03 1.9629472814e-03 +434 3.0813700693e-02 8.3964874239e-04 1.0517636656e-02 1.7936429704e-02 1.2160088423e-03 3.5701570973e-04 1.6525505164e-03 1.8337111209e-03 +435 3.0787950055e-02 7.7087445095e-04 9.5047641936e-03 1.6293280627e-02 1.1917671055e-03 3.4862622935e-04 1.5460517472e-03 1.7188010907e-03 +436 2.5763478283e-02 6.9135395444e-04 8.2239962794e-03 1.4049904224e-02 1.1686600938e-03 3.4414472299e-04 1.4533029665e-03 1.6152506120e-03 +437 1.9136789314e-02 6.4796844658e-04 7.4643979601e-03 1.2688539786e-02 1.1421532354e-03 3.3582548588e-04 1.3703386734e-03 1.5217316769e-03 +438 1.8953995561e-02 6.1620576568e-04 6.8782580089e-03 1.1711077542e-02 1.1123545275e-03 3.2543642585e-04 1.2962608913e-03 1.4388413977e-03 +439 1.7590810191e-02 5.7743588088e-04 6.4014481908e-03 1.0865820354e-02 1.0816610835e-03 3.1435697495e-04 1.2304081384e-03 1.3630167694e-03 +440 7.4826720253e-02 8.1596407999e-04 7.3663485726e-03 1.2568681787e-02 1.1356515001e-03 3.3461157628e-04 1.4684038970e-03 2.5126877646e-03 +441 5.1456413699e-02 1.0356147448e-03 1.2578498379e-02 2.1467266676e-02 1.1501711009e-03 3.4206828387e-04 1.9761474527e-03 2.1676118707e-03 +442 5.0878222858e-02 9.9359401893e-04 1.2803549055e-02 2.1835675304e-02 1.1510162308e-03 3.4154500406e-04 1.8017296397e-03 1.9940189597e-03 +443 4.1161792394e-02 8.4757014446e-04 1.0819157337e-02 1.8481812696e-02 1.1416590332e-03 3.3846025557e-04 1.6643006847e-03 1.8494718798e-03 +444 2.9021962467e-02 7.8327376178e-04 9.8407203772e-03 1.6783188123e-02 1.1229045139e-03 3.3170208424e-04 1.5467846473e-03 1.7261758615e-03 +445 2.8998665364e-02 7.2411914283e-04 8.9696722502e-03 1.5414917590e-02 1.0978048484e-03 3.2260625531e-04 1.4468652766e-03 1.6171407640e-03 +446 2.4758617943e-02 6.4852568685e-04 7.7266989555e-03 1.3231121300e-02 1.0665814806e-03 3.0943868993e-04 1.3594221521e-03 1.5199660454e-03 +447 1.7303312975e-02 6.0178267248e-04 6.8430958891e-03 1.1664008505e-02 1.0356951714e-03 2.9759023464e-04 1.2809559560e-03 1.4315989918e-03 +448 1.6354129213e-02 5.6916977233e-04 6.2422780392e-03 1.0644299749e-02 1.0063647196e-03 2.8703465034e-04 1.2108438438e-03 1.3538073694e-03 +449 1.5163207588e-02 5.3310465219e-04 5.8333019409e-03 9.8991516330e-03 9.7792550159e-04 2.7654391720e-04 1.1484969589e-03 1.2822723118e-03 +450 6.9319382185e-02 7.5439387609e-04 6.7834316242e-03 1.1608090506e-02 1.0283047412e-03 2.9573442386e-04 1.3704922425e-03 2.3486304905e-03 +451 4.7272916535e-02 9.4228128145e-04 1.1742883402e-02 2.0143523725e-02 1.0425978400e-03 3.0237063463e-04 1.8410862337e-03 2.0172596964e-03 +452 4.6698791522e-02 9.0809009683e-04 1.2062151900e-02 2.0710472304e-02 1.0469848329e-03 3.0392586726e-04 1.6749351786e-03 1.8522661797e-03 +453 3.7118354352e-02 7.8520925440e-04 1.0176391328e-02 1.7512880564e-02 1.0441755162e-03 3.0484542554e-04 1.5453591776e-03 1.7159095281e-03 +454 2.6317185860e-02 7.1967076960e-04 9.1177908629e-03 1.5622126659e-02 1.0326258832e-03 3.0221914158e-04 1.4357407816e-03 1.6016802546e-03 +455 2.6361214882e-02 6.6111831403e-04 8.2372306616e-03 1.4172649852e-02 1.0136076048e-03 2.9660871756e-04 1.3420582366e-03 1.5004747397e-03 +456 2.2378767671e-02 5.9347462384e-04 7.1261479625e-03 1.2226898515e-02 9.8910502650e-04 2.8745390111e-04 1.2605893425e-03 1.4094656268e-03 +457 1.5643621009e-02 5.5456751565e-04 6.4200019484e-03 1.0967997611e-02 9.6560345986e-04 2.8065518393e-04 1.1877646749e-03 1.3269454518e-03 +458 1.5460881802e-02 5.2941874910e-04 5.9053360278e-03 1.0131782489e-02 9.4012737777e-04 2.7143809193e-04 1.1227323539e-03 1.2543698842e-03 +459 1.4543182495e-02 4.9488990902e-04 5.4892434101e-03 9.4029105582e-03 9.1569412759e-04 2.6358368896e-04 1.0649759846e-03 1.1875897204e-03 +460 6.5459667552e-02 7.0616943381e-04 6.3506831730e-03 1.0926845653e-02 9.6346577623e-04 2.8176835457e-04 1.2746133391e-03 2.1999486213e-03 +461 4.5675917054e-02 8.8055728840e-04 1.0920535597e-02 1.8741339421e-02 9.7526332385e-04 2.8723125547e-04 1.7180677132e-03 1.8892985066e-03 +462 4.4975064365e-02 8.4623598884e-04 1.1153376706e-02 1.9127042472e-02 9.7722645500e-04 2.8835279234e-04 1.5624257589e-03 1.7355570223e-03 +463 3.6090988974e-02 7.2403597066e-04 9.3895263846e-03 1.6147901719e-02 9.7095953995e-04 2.8695483944e-04 1.4418500814e-03 1.6089393329e-03 +464 2.5498125481e-02 6.6519613893e-04 8.5001642399e-03 1.4572561566e-02 9.5603502410e-04 2.8191633783e-04 1.3392051147e-03 1.5009160866e-03 +465 2.5393965736e-02 6.1593441948e-04 7.7271450051e-03 1.3360106995e-02 9.3424725871e-04 2.7368181585e-04 1.2515929958e-03 1.4056610392e-03 +466 2.1455955610e-02 5.5301641395e-04 6.6421511413e-03 1.1473504136e-02 9.0929461891e-04 2.6400239626e-04 1.1754685222e-03 1.3205535285e-03 +467 1.5016185194e-02 5.1278479559e-04 5.8985606723e-03 1.0107134935e-02 8.8410801337e-04 2.5451123728e-04 1.1069453851e-03 1.2434288993e-03 +468 1.4368005734e-02 4.8905662698e-04 5.3874393312e-03 9.2178956360e-03 8.5987757100e-04 2.4562241772e-04 1.0459116093e-03 1.1753579157e-03 +469 1.3401202555e-02 4.5751692493e-04 5.0349156985e-03 8.5552625888e-03 8.3544011616e-04 2.3638160207e-04 9.9154661983e-04 1.1128758313e-03 +470 6.0780227481e-02 6.5152236383e-04 5.8568381703e-03 1.0063802616e-02 8.8089358645e-04 2.5460192784e-04 1.1869325344e-03 2.0497986573e-03 +471 4.1985976197e-02 7.9944632177e-04 1.0179544212e-02 1.7515228638e-02 8.9213281605e-04 2.5898981630e-04 1.5974156403e-03 1.7551727372e-03 +472 4.1114669793e-02 7.7123456399e-04 1.0459888538e-02 1.8039234571e-02 8.9636342191e-04 2.6084492078e-04 1.4506779054e-03 1.6100580009e-03 +473 3.2787816856e-02 6.7025981389e-04 8.8042831131e-03 1.5205774696e-02 8.9323678040e-04 2.6048829908e-04 1.3374804835e-03 1.4907969876e-03 +474 2.3096500611e-02 6.0999567496e-04 7.8473049506e-03 1.3492858994e-02 8.8309643809e-04 2.5821424916e-04 1.2419207936e-03 1.3908714026e-03 +475 2.2935857554e-02 5.6114705271e-04 7.0870428966e-03 1.2267118292e-02 8.6600162823e-04 2.5243163968e-04 1.1601145984e-03 1.3025793657e-03 +476 1.9374425745e-02 5.0813311736e-04 6.1243617599e-03 1.0589993195e-02 8.4497529360e-04 2.4456778704e-04 1.0891117205e-03 1.2231492851e-03 +477 1.3478706826e-02 4.7209258849e-04 5.5036174887e-03 9.4579105209e-03 8.2330939574e-04 2.3693760077e-04 1.0257608061e-03 1.1512129576e-03 +478 1.2946170127e-02 4.4944473674e-04 5.0549750172e-03 8.6835954272e-03 8.0064717260e-04 2.2823906847e-04 9.6914851651e-04 1.0879197348e-03 +479 1.1800683236e-02 4.2259322576e-04 4.6935226819e-03 8.0361329292e-03 7.8005090359e-04 2.2158208430e-04 9.1894029227e-04 1.0295672799e-03 +480 5.6414140717e-02 6.0691965464e-04 5.4497734744e-03 9.3820221358e-03 8.2305117659e-04 2.3839471312e-04 1.1023759856e-03 1.9133233612e-03 +481 3.9420397295e-02 7.4231805730e-04 9.4301711622e-03 1.6225605644e-02 8.3365453819e-04 2.4320288352e-04 1.4879306572e-03 1.6385865200e-03 +482 3.8781725348e-02 7.1501790568e-04 9.6633484076e-03 1.6637606749e-02 8.3544028313e-04 2.4390974181e-04 1.3503700752e-03 1.5040434713e-03 +483 3.1014186399e-02 6.1699210629e-04 8.1105692468e-03 1.3995514912e-02 8.3037808726e-04 2.4305723185e-04 1.2451915258e-03 1.3936340370e-03 +484 2.1704626253e-02 5.6187249018e-04 7.2833396970e-03 1.2538443770e-02 8.1745123641e-04 2.3867357026e-04 1.1559881975e-03 1.2996812976e-03 +485 2.1446142447e-02 5.1864409106e-04 6.6166227909e-03 1.1468740903e-02 7.9974618212e-04 2.3277392007e-04 1.0796780102e-03 1.2168425835e-03 +486 1.8364767596e-02 4.6914954969e-04 5.6970658220e-03 9.8700077189e-03 7.7798927878e-04 2.2404844019e-04 1.0134449281e-03 1.1426991533e-03 +487 1.2750038426e-02 4.3545839494e-04 5.0500626357e-03 8.6908322130e-03 7.5678289274e-04 2.1668433555e-04 9.5396830684e-04 1.0755697389e-03 +488 1.2220860360e-02 4.1592667525e-04 4.6128048831e-03 7.9227939839e-03 7.3575602663e-04 2.0887312948e-04 9.0089176618e-04 1.0162748746e-03 +489 1.1330788938e-02 3.8918970507e-04 4.2986253027e-03 7.3397673478e-03 7.1378270170e-04 2.0016479780e-04 8.5372519867e-04 9.6180382129e-04 +490 5.2659075467e-02 5.5961117343e-04 5.0083784098e-03 8.6403583936e-03 7.5254696806e-04 2.1550902358e-04 1.0248144255e-03 1.7821861880e-03 +491 3.6194643159e-02 6.7467988338e-04 8.7452991426e-03 1.5108258205e-02 7.6279389529e-04 2.2037536612e-04 1.3815760850e-03 1.5203917517e-03 +492 3.5499888091e-02 6.5211657606e-04 9.0163678790e-03 1.5598437644e-02 7.6680878782e-04 2.2240867501e-04 1.2522779521e-03 1.3937755280e-03 +493 2.8187374466e-02 5.6465395784e-04 7.5610951000e-03 1.3083197908e-02 7.6277724561e-04 2.2101945964e-04 1.1490686419e-03 1.2904073380e-03 +494 1.9916869525e-02 5.1439000202e-04 6.7147184576e-03 1.1586427746e-02 7.5239580002e-04 2.1803761809e-04 1.0704695820e-03 1.2027449302e-03 +495 1.9464069993e-02 4.7315591994e-04 6.0457485856e-03 1.0466771850e-02 7.3748807793e-04 2.1345805911e-04 9.9858836415e-04 1.1258023569e-03 +496 1.6291500199e-02 4.3028823750e-04 5.2196674640e-03 9.0359741856e-03 7.2132716491e-04 2.0858695379e-04 9.3681673149e-04 1.0566768693e-03 +497 1.1736518080e-02 4.0107856671e-04 4.6947277468e-03 8.0794685137e-03 7.0225501775e-04 2.0123500079e-04 8.8183143516e-04 9.9409748362e-04 +498 1.1416076036e-02 3.8126623202e-04 4.3024080867e-03 7.4078677670e-03 6.8368554129e-04 1.9506986311e-04 8.3285640687e-04 9.3897827428e-04 +499 1.0619734844e-02 3.5862432728e-04 3.9977640043e-03 6.8712523306e-03 6.6577658299e-04 1.8927924934e-04 7.8936247754e-04 8.8824591476e-04 +500 4.9721957443e-02 5.2105708992e-04 4.6545097344e-03 8.0667455305e-03 7.0115702317e-04 2.0236187656e-04 9.5028337997e-04 1.6633250985e-03 + +Time = 500s + + +Solving 3-D cloud cloud + +Cloud: cloud injector: model1 + Added 20000 new parcels + +Cloud: cloud + Current number of parcels = 0 + Current mass in system = 0 + Linear momentum = (0 0 0) + |Linear momentum| = 0 + Linear kinetic energy = 0 + model1: + number of parcels added = 20000 + mass introduced = 0.01 + Parcel fate (number, mass) + - escape = 0, 0 + - stick = 0, 0 + Temperature min/max = 0, 0 + Mass transfer phase change = 0.01 + D10, D32, Dmax (mu) = 0, 0, 0 + Liquid penetration 95% mass (m) = 0 + +smoothSolver: Solving for Ux, Initial residual = 0.0005210570899, Final residual = 3.924836328e-05, No Iterations 2 +smoothSolver: Solving for Uy, Initial residual = 0.004654509734, Final residual = 0.0003907017717, No Iterations 2 +smoothSolver: Solving for Uz, Initial residual = 0.00806674553, Final residual = 0.0006713888078, No Iterations 2 +smoothSolver: Solving for C7H16, Initial residual = 0.001663325099, Final residual = 0.0001191676309, No Iterations 2 +smoothSolver: Solving for h, Initial residual = 0.00095028338, Final residual = 7.240887626e-05, No Iterations 2 +GAMG: Solving for p, Initial residual = 0.04972195744, Final residual = 0.0006655937481, No Iterations 3 +time step continuity errors : sum local = 0.1253075571, global = 0.1250076554 +GAMG: Solving for p, Initial residual = 0.02773082951, Final residual = 0.0003391958539, No Iterations 3 +time step continuity errors : sum local = 0.1251560864, global = 0.12501065, cumulative = 61.37583532 +smoothSolver: Solving for epsilon, Initial residual = 0.0002023618766, Final residual = 1.251837397e-05, No Iterations 2 +smoothSolver: Solving for k, Initial residual = 0.0007011570232, Final residual = 5.778280516e-05, No Iterations 2 +ExecutionTime = 281.600652 s ClockTime = 366 s + +surfaceFieldValue massAvgOutletPressureVelocity write: + average(outlet) of p = 101325 + average(outlet) of U = (8.103729543 -0.09698327097 -0.000262802224) + +surfaceFieldValue massAvgOutletTemperature write: + average(outlet) of T = 718.6576136 + +surfaceFieldValue massAvgOutletFuelVapor write: + average(outlet) of C7H16 = 0.0625001496 + +End + +Finalising parallel run diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/C7H16 b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/C7H16 new file mode 100644 index 000000000..8b88de39e --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/C7H16 @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object C7H16; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value uniform 0.0; + } + outlet + { + type inletOutlet; + inletValue uniform 0; + value uniform 0; + } + walls + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/T b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/T new file mode 100644 index 000000000..476151263 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/T @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object T; +} +// ************************************************************************* // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform $T_air; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/U b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/U new file mode 100644 index 000000000..15f3e7672 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volVectorField; + location "0"; + object U; +} +// ************************************************************************* // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type flowRateInletVelocity; + profile turbulentBL; + massFlowRate $mdot_air; + rhoInlet $rho_air; + } + outlet + { + type inletOutlet; + inletValue uniform (0 0 0); + } + walls + { + type fixedValue; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/Ydefault b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/Ydefault new file mode 100644 index 000000000..e9f52d181 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/Ydefault @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object Ydefault; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + walls + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/air b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/air new file mode 100644 index 000000000..817601e89 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/air @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + walls + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/alphat b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/alphat new file mode 100644 index 000000000..45c6048d8 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/alphat @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + walls + { + type compressible::alphatWallFunction; + // Prt 0.85; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/epsilon b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/epsilon new file mode 100644 index 000000000..6ece6591b --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/epsilon @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform $epsilon; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type turbulentMixingLengthDissipationRateInlet; + mixingLength 0.005; + phi phi; + k k; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + walls + { + type epsilonWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/k b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/k new file mode 100644 index 000000000..8d25bab0d --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/k @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform $k; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type turbulentIntensityKineticEnergyInlet; + intensity $I; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + } + walls + { + type kqRWallFunction; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/nut b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/nut new file mode 100644 index 000000000..eafec4c53 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/nut @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform $nut; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + walls + { + type nutkWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/p b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/p new file mode 100644 index 000000000..c309f953e --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/0/p @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object p; +} +// ************************************************************************* // + +#include "$FOAM_CASE/../parameters" + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform $P_air; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type zeroGradient; + } + outlet + { + type totalPressure; + p0 $internalField; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudModels/psdFixedValue b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudModels/psdFixedValue new file mode 100644 index 000000000..5378ac91c --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudModels/psdFixedValue @@ -0,0 +1,5 @@ +sizeDistribution +{ + type fixedValue; + value 100e-06; +} \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudModels/psdRosinRammler b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudModels/psdRosinRammler new file mode 100644 index 000000000..e704b5251 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudModels/psdRosinRammler @@ -0,0 +1,9 @@ +sizeDistribution +{ + type RosinRammler; + Q 3; + min 0.000001; + max 0.000150; + d 0.000150; + n 3.5; +} \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudModels/sprayCloud b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudModels/sprayCloud new file mode 100644 index 000000000..ac7ee0e4c --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudModels/sprayCloud @@ -0,0 +1,52 @@ +// ---------------------------------------------------------------------------- + +dispersionModel stochasticDispersionRAS; +patchInteractionModel standardWallInteraction; +stochasticCollisionModel none; +surfaceFilmModel none; +heatTransferModel RanzMarshall; +compositionModel singlePhaseMixture; +radiation none; +phaseChangeModel liquidEvaporationBoil; +atomisationModel none; +breakupModel ReitzDiwakar; + +// ---------------------------------------------------------------------------- + +standardWallInteractionCoeffs +{ + type rebound; +} + +RanzMarshallCoeffs +{ + BirdCorrection true; +} + +singlePhaseMixtureCoeffs +{ + phases + ( + liquid + { + C7H16 1; + } + ); +} + +liquidEvaporationBoilCoeffs +{ + enthalpyTransfer enthalpyDifference; + activeLiquids ( C7H16 ); +} + +ReitzDiwakarCoeffs +{ + solveOscillationEq yes; + Cbag 6; + Cb 0.785; + Cstrip 0.5; + Cs 10; +} + +// ---------------------------------------------------------------------------- diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudProperties new file mode 100644 index 000000000..134025610 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/cloudProperties @@ -0,0 +1,132 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object cloudProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +type sprayCloud; + +solution +{ + calcFrequency 10; + maxTrackTime 5.0; + maxCo 0.3; + + coupled true; + cellValueSourceCorrection on; + + sourceTerms + { + resetOnStartup false; + schemes + { + rho semiImplicit 1; + U semiImplicit 1; + Yi semiImplicit 1; + h semiImplicit 1; + radiation semiImplicit 1; + } + } + + interpolationSchemes + { + rho cell; + U cellPoint; + mu cell; + T cell; + Cp cell; + kappa cell; + p cell; + } + + integrationSchemes + { + U Euler; + T analytical; + } +} + +constantProperties +{ + T0 320; + rho0 1000; + Cp0 4187; + constantVolume false; +} + +subModels +{ + particleForces + { + sphereDrag; + gravity; + } + + injectionModels + { + model1 + { + type coneInjection; + + massFlowRate $mdot_fuel; + uniformParcelSize volume; + parcelsPerSecond 20000; + flowRateProfile constant 1; + + position (0.001 0.0 0.0); + direction (1.000 0.0 0.0); + thetaInner constant 0.0; + thetaOuter constant 42.0; + + flowType constantVelocity; + Umag $U_air; + + injectionMethod disc; + dInner 0.000; + dOuter 0.002; + + #include "$FOAM_CASE/constant/cloudModels/psdFixedValue" + // #include "$FOAM_CASE/constant/cloudModels/psdRosinRammler" + } + } + + #include "$FOAM_CASE/constant/cloudModels/$type" +} + +cloudFunctions +{ + massFlux1 + { + type massFlux; + } + + // patchPostProcessing1 + // { + // type patchPostProcessing; + // maxStoredParcels 1000; + // patches ( outlet ); + // } + + particleTracks1 + { + type particleTracks; + trackInterval 5; + maxSamples 1000000; + resetOnWrite yes; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/fvModels b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/fvModels new file mode 100644 index 000000000..47e2266fe --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/fvModels @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object fvModels; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +buoyancyForce +{ + type buoyancyForce; +} + +clouds +{ + type clouds; + libs ("liblagrangianParcel.so"); +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/g b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/g new file mode 100644 index 000000000..51cd738d0 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/g @@ -0,0 +1,21 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 -9.81 0); + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/momentumTransport b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/momentumTransport new file mode 100644 index 000000000..92e00ac8b --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/momentumTransport @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object momentumTransport; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + model kEpsilon; + + turbulence on; + + printCoeffs on; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/physicalProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/physicalProperties new file mode 100644 index 000000000..58dc4c014 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/physicalProperties @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object physicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture multicomponentMixture; + transport sutherland; + thermo janaf; + energy sensibleEnthalpy; + equationOfState perfectGas; + specie specie; +} + +#include "speciesThermo" + +defaultSpecie air; + +liquids +{ + C7H16; +} + +solids +{} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/speciesThermo b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/speciesThermo new file mode 100644 index 000000000..1d6aada7e --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/constant/speciesThermo @@ -0,0 +1,63 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ + +species +( + air + C7H16 +); + +air +{ + specie + { + nMoles 1; + molWeight 28.9596; + } + thermodynamics + { + Tlow 200; + Thigh 3000; + Tcommon 1000; + highCpCoeffs ( 3.05809 0.00133634 -4.73394e-07 7.38653e-11 -3.34205e-15 -972.89 6.09034 ); + lowCpCoeffs ( 3.393 0.000544363 -1.24622e-06 2.65579e-09 -1.35538e-12 -1029.28 4.43259 ); + } + transport + { + As 1.67212e-06; + Ts 170.672; + } +} + +C7H16 +{ + specie + { + molWeight 100.20557; + } + thermodynamics + { + Tlow 200; + Thigh 6000; + Tcommon 1000; + highCpCoeffs ( 20.4565203 0.0348575357 -1.09226846e-05 1.67201776e-09 -9.8102485e-14 -32555.6365 -80.4405017 ); + lowCpCoeffs ( 11.1532994 -0.00949419773 0.000195572075 -2.49753662e-07 9.84877715e-11 -26768.8904 -15.9096837 ); + } + transport + { + As 1.67212e-06; + Ts 170.672; + } + elements + { + C 7; + H 16; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/system/controlDict b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/system/controlDict new file mode 100644 index 000000000..b00079470 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-03/zero/system/controlDict @@ -0,0 +1,62 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application foamRun; + +solver multicomponentFluid; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 500; + +deltaT 1; + +writeControl timeStep; + +writeInterval 20; + +purgeWrite 5; + +writeFormat ascii; + +writePrecision 10; + +writeCompression off; + +timeFormat fixed; + +timePrecision 0; + +runTimeModifiable yes; + +functions +{ + #includeFunc residuals(p, U, k, epsilon, h, C7H16) + + #includeFunc patchFlowRate(patch=inlet, phi) + + #includeFunc patchFlowRate(patch=outlet, phi) + + #include "$FOAM_CASE/../functions/massAvgOutletPressureVelocity" + #include "$FOAM_CASE/../functions/massAvgOutletTemperature" + #include "$FOAM_CASE/../functions/massAvgOutletFuelVapor" +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/.gitignore b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/.gitignore new file mode 100644 index 000000000..ad4d540e8 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/.gitignore @@ -0,0 +1,12 @@ +# Ignore built case. +[0-9]* +constant/ +system/ +Allclean +processor*/ + +# Ignore all logs. +log.* + +# Unignore actual base case from zero/ directory. +!zero/* diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/Allrun b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/Allrun new file mode 100644 index 000000000..e55f95e08 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/Allrun @@ -0,0 +1,45 @@ +#!/bin/sh +cd ${0%/*} || exit 1 + +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +touch case.foam + +cp -avr zero/* . +cp ../components/Allclean . + +cp ../components/fv* system/ +cp ../components/blockMeshDict system/ +cp ../components/decomposeParDict system/ +cp ../components/steadyParticleTracksDict system/ + +cp ../components/chemistryProperties constant/ +cp ../components/combustionProperties constant/ + +runApplication chemkinToFoam \ + chemkin/chem.inp \ + chemkin/therm.dat \ + chemkin/transportProperties \ + constant/reactions \ + constant/speciesThermo + +runApplication blockMesh +runApplication potentialFoam +rm -rf 0/phi +runApplication decomposePar +runApplication mpirun -np 32 foamRun -parallel + +# Do not log this! +reconstructPar -latestTime +steadyParticleTracks + +# Clean-up +rm -rf processor*/ + +# NOT WORKING! +# foamToVTK -latestTime + +#cp "postProcessing/residuals(p,U,k,epsilon,h,C7H16)/0/residuals.dat" residuals.ref +#tail -55 log.mpirun >> residuals.ref + +#------------------------------------------------------------------------------ diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/chemkin/chem.inp b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/chemkin/chem.inp new file mode 100644 index 000000000..0d9147242 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/chemkin/chem.inp @@ -0,0 +1,11 @@ +ELEMENTS + H O C N AR +END +SPECIE +C7H16 O2 N2 CO2 H2O +END +REACTIONS + C7H16 + 11O2 => 7CO2 + 8H2O 5.00E+8 0.0 15780.0! 1 + FORD / C7H16 0.25 / + FORD / O2 1.5 / +END diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/chemkin/therm.dat b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/chemkin/therm.dat new file mode 100644 index 000000000..acd597870 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/chemkin/therm.dat @@ -0,0 +1,23 @@ +THERMO ALL + 200.000 1000.000 6000.000 +C7H16 P10/85C 7.H 16. 0. 0.G 200.000 6000.000 1000. 1 + 2.04565203E+01 3.48575357E-02-1.09226846E-05 1.67201776E-09-9.81024850E-14 2 +-3.25556365E+04-8.04405017E+01 1.11532994E+01-9.49419773E-03 1.95572075E-04 3 +-2.49753662E-07 9.84877715E-11-2.67688904E+04-1.59096837E+01-2.25846141E+04 4 +O2 ATcT06O 2. 0. 0. 0.G 200.000 6000.000 1000. 1 + 3.45852381E+00 1.04045351E-03-2.79664041E-07 3.11439672E-11-8.55656058E-16 2 + 1.02229063E+04 4.15264119E+00 3.78535371E+00-3.21928540E-03 1.12323443E-05 3 +-1.17254068E-08 4.17659585E-12 1.02922572E+04 3.27320239E+00 1.13558105E+04 4 +N2 G 8/02N 2. 0. 0. 0.G 200.000 6000.000 1000. 1 + 2.95257637E+00 1.39690040E-03-4.92631603E-07 7.86010195E-11-4.60755204E-15 2 +-9.23948688E+02 5.87188762E+00 3.53100528E+00-1.23660988E-04-5.02999433E-07 3 + 2.43530612E-09-1.40881235E-12-1.04697628E+03 2.96747038E+00 0.00000000E+00 4 +CO2 L 7/88C 1O 2 0 0G 200.000 6000.000 1000. 1 + 0.46365111E+01 0.27414569E-02-0.99589759E-06 0.16038666E-09-0.91619857E-14 2 +-0.49024904E+05-0.19348955E+01 0.23568130E+01 0.89841299E-02-0.71220632E-05 3 + 0.24573008E-08-0.14288548E-12-0.48371971E+05 0.99009035E+01-0.47328105E+05 4 +H2O L 5/89H 2O 1 0 0G 200.000 6000.000 1000. 1 + 0.26770389E+01 0.29731816E-02-0.77376889E-06 0.94433514E-10-0.42689991E-14 2 +-0.29885894E+05 0.68825500E+01 0.41986352E+01-0.20364017E-02 0.65203416E-05 3 +-0.54879269E-08 0.17719680E-11-0.30293726E+05-0.84900901E+00-0.29084817E+05 4 +END diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/chemkin/transportProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/chemkin/transportProperties new file mode 100644 index 000000000..3eb55ed78 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/chemkin/transportProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "chemkin"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +".*" +{ + transport + { + As 1.67212e-6; + Ts 170.672; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/C7H16 b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/C7H16 new file mode 100644 index 000000000..8b88de39e --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/C7H16 @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object C7H16; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value uniform 0.0; + } + outlet + { + type inletOutlet; + inletValue uniform 0; + value uniform 0; + } + walls + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/N2 b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/N2 new file mode 100644 index 000000000..0947a2cf9 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/N2 @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object N2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform $YN2_air; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + walls + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/O2 b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/O2 new file mode 100644 index 000000000..13e1728a7 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/O2 @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object O2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform $YO2_air; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + walls + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/T b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/T new file mode 100644 index 000000000..476151263 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/T @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + object T; +} +// ************************************************************************* // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform $T_air; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/U b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/U new file mode 100644 index 000000000..15f3e7672 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volVectorField; + location "0"; + object U; +} +// ************************************************************************* // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type flowRateInletVelocity; + profile turbulentBL; + massFlowRate $mdot_air; + rhoInlet $rho_air; + } + outlet + { + type inletOutlet; + inletValue uniform (0 0 0); + } + walls + { + type fixedValue; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/Ydefault b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/Ydefault new file mode 100644 index 000000000..e9f52d181 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/Ydefault @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format binary; + class volScalarField; + location "0"; + object Ydefault; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + walls + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/alphat b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/alphat new file mode 100644 index 000000000..45c6048d8 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/alphat @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + walls + { + type compressible::alphatWallFunction; + // Prt 0.85; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/epsilon b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/epsilon new file mode 100644 index 000000000..6ece6591b --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/epsilon @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform $epsilon; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type turbulentMixingLengthDissipationRateInlet; + mixingLength 0.005; + phi phi; + k k; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + walls + { + type epsilonWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/k b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/k new file mode 100644 index 000000000..8d25bab0d --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/k @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform $k; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type turbulentIntensityKineticEnergyInlet; + intensity $I; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + } + walls + { + type kqRWallFunction; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/nut b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/nut new file mode 100644 index 000000000..eafec4c53 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/nut @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform $nut; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + walls + { + type nutkWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/p b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/p new file mode 100644 index 000000000..c309f953e --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/0/p @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object p; +} +// ************************************************************************* // + +#include "$FOAM_CASE/../parameters" + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform $P_air; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type zeroGradient; + } + outlet + { + type totalPressure; + p0 $internalField; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudModels/psdFixedValue b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudModels/psdFixedValue new file mode 100644 index 000000000..5378ac91c --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudModels/psdFixedValue @@ -0,0 +1,5 @@ +sizeDistribution +{ + type fixedValue; + value 100e-06; +} \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudModels/psdRosinRammler b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudModels/psdRosinRammler new file mode 100644 index 000000000..e704b5251 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudModels/psdRosinRammler @@ -0,0 +1,9 @@ +sizeDistribution +{ + type RosinRammler; + Q 3; + min 0.000001; + max 0.000150; + d 0.000150; + n 3.5; +} \ No newline at end of file diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudModels/sprayCloud b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudModels/sprayCloud new file mode 100644 index 000000000..ac7ee0e4c --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudModels/sprayCloud @@ -0,0 +1,52 @@ +// ---------------------------------------------------------------------------- + +dispersionModel stochasticDispersionRAS; +patchInteractionModel standardWallInteraction; +stochasticCollisionModel none; +surfaceFilmModel none; +heatTransferModel RanzMarshall; +compositionModel singlePhaseMixture; +radiation none; +phaseChangeModel liquidEvaporationBoil; +atomisationModel none; +breakupModel ReitzDiwakar; + +// ---------------------------------------------------------------------------- + +standardWallInteractionCoeffs +{ + type rebound; +} + +RanzMarshallCoeffs +{ + BirdCorrection true; +} + +singlePhaseMixtureCoeffs +{ + phases + ( + liquid + { + C7H16 1; + } + ); +} + +liquidEvaporationBoilCoeffs +{ + enthalpyTransfer enthalpyDifference; + activeLiquids ( C7H16 ); +} + +ReitzDiwakarCoeffs +{ + solveOscillationEq yes; + Cbag 6; + Cb 0.785; + Cstrip 0.5; + Cs 10; +} + +// ---------------------------------------------------------------------------- diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudProperties new file mode 100644 index 000000000..38450103b --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/cloudProperties @@ -0,0 +1,132 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object cloudProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "$FOAM_CASE/../parameters" + +type sprayCloud; + +solution +{ + calcFrequency 10; + maxTrackTime 5.0; + maxCo 0.3; + + coupled true; + cellValueSourceCorrection on; + + sourceTerms + { + resetOnStartup false; + schemes + { + rho semiImplicit 1; + U semiImplicit 1; + Yi semiImplicit 1; + h semiImplicit 1; + radiation semiImplicit 1; + } + } + + interpolationSchemes + { + rho cell; + U cellPoint; + mu cell; + T cell; + Cp cell; + kappa cell; + p cell; + } + + integrationSchemes + { + U Euler; + T analytical; + } +} + +constantProperties +{ + T0 320; + rho0 1000; + Cp0 4187; + constantVolume false; +} + +subModels +{ + particleForces + { + sphereDrag; + gravity; + } + + injectionModels + { + model1 + { + type coneInjection; + + massFlowRate $mdot_fuel; + uniformParcelSize volume; + parcelsPerSecond 10000; + flowRateProfile constant 1; + + position (0.001 0.0 0.0); + direction (1.000 0.0 0.0); + thetaInner constant 0.0; + thetaOuter constant 42.0; + + flowType constantVelocity; + Umag $U_jet; + + injectionMethod disc; + dInner 0.000; + dOuter 0.002; + + #include "$FOAM_CASE/constant/cloudModels/psdFixedValue" + // #include "$FOAM_CASE/constant/cloudModels/psdRosinRammler" + } + } + + #include "$FOAM_CASE/constant/cloudModels/$type" +} + +cloudFunctions +{ + massFlux1 + { + type massFlux; + } + + // patchPostProcessing1 + // { + // type patchPostProcessing; + // maxStoredParcels 1000; + // patches ( outlet ); + // } + + particleTracks1 + { + type particleTracks; + trackInterval 5; + maxSamples 1000000; + resetOnWrite yes; + } +} + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/fvModels b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/fvModels new file mode 100644 index 000000000..47e2266fe --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/fvModels @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object fvModels; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +buoyancyForce +{ + type buoyancyForce; +} + +clouds +{ + type clouds; + libs ("liblagrangianParcel.so"); +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/g b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/g new file mode 100644 index 000000000..51cd738d0 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/g @@ -0,0 +1,21 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 -9.81 0); + + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/momentumTransport b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/momentumTransport new file mode 100644 index 000000000..92e00ac8b --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/momentumTransport @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object momentumTransport; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + model kEpsilon; + + turbulence on; + + printCoeffs on; +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/physicalProperties b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/physicalProperties new file mode 100644 index 000000000..5dee1ad30 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/constant/physicalProperties @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object physicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture multicomponentMixture; + transport sutherland; + thermo janaf; + energy sensibleEnthalpy; + equationOfState perfectGas; + specie specie; +} + +#include "speciesThermo" + +defaultSpecie N2; + +// For single-step combustion models. +fuel C7H16; +oxidant O2; + +liquids +{ + C7H16; +} + +solids +{} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/system/controlDict b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/system/controlDict new file mode 100644 index 000000000..b9ecb7deb --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/breakdown/step-04/zero/system/controlDict @@ -0,0 +1,63 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: 11 + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application foamRun; + +solver multicomponentFluid; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 1500; + +deltaT 1; + +writeControl timeStep; + +writeInterval 50; + +purgeWrite 3; + +writeFormat ascii; + +writePrecision 10; + +writeCompression off; + +timeFormat fixed; + +timePrecision 0; + +runTimeModifiable yes; + +functions +{ + #includeFunc residuals(p, U, k, epsilon, h, C7H16) + + #includeFunc patchFlowRate(patch=inlet, phi) + + #includeFunc patchFlowRate(patch=outlet, phi) + + #include "$FOAM_CASE/../functions/massAvgOutletPressureVelocity" + #include "$FOAM_CASE/../functions/massAvgOutletTemperature" + #include "$FOAM_CASE/../functions/massAvgOutletFuelVapor" + #include "$FOAM_CASE/../functions/massAvgOutletOxidant" +} + +// ************************************************************************* // diff --git a/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/results/efficiency.dat b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/results/efficiency.dat new file mode 100644 index 000000000..720759ec4 --- /dev/null +++ b/apps/OpenFOAM/tutorials/multicomponentFluid/mod/aachenBombSteady/results/efficiency.dat @@ -0,0 +1,6 @@ +1 +2 +4 +8 +16 +32