code saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...code_saturne_2.0.pdf ·...

32
Code_Saturne 2.0 Code_Saturne development team Code_Saturne User meeting 7 th and 8 th , December 2009

Upload: vuongkhanh

Post on 18-Mar-2018

223 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Code_Saturne 2.0

Code_Saturne development team

Code_Saturne User meeting7th and 8th, December 2009

Page 2: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

7th and 8th, December 2009 Code_Saturne User Meeting

Outlines

1. Enhancements and new features

2. Perspectives

3. Open source initiative

Page 3: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Code_Saturne User Meeting

Enhancements,New features

With respect to the latest validated version 1.3

Page 4: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Release schedule and validation

Code_Saturne User Meeting

Previous versionsLatest validated version “1.3.2” released in April 2008

Corrective version “1.3.3” released for Code_Saturne User Meeting 2009

Intermediate development version “1.4” concurrently with 1.3.3 version

On the road to the next validated version 2.0Two development snapshots, 2.0-beta1 (June 2009) and 2.0-beta2 (August 2009)Validation of version 2.0-beta2

First stage: August-NovemberAbout 30 tests-cases, more than 200 simulations

Second stage: Starting nowOn a selected set of test-cases (known to have had issues in the first stage)

Next version 2.0-rc (stands for release candidate)Now consolidating fixes issued after the first validation stagePublicly released soon

Page 5: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Graphical Interface

Fully re-written in PyQt 4Now without any regression compared to 1.3 versionFor a better integration in SALOMENatively supported on GNU/Linux, MacOS X and Windows systemsDrag’n drop feature for time average and profile definitions

Many new features!Head-loss zones definitionFluid-structure interaction for internal / external couplingLagrangian simulations setupOxycombustion setup for coal combustionMathematical expressions interpreter (see next slide)…

Code_Saturne User Meeting

Page 6: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Mathematical Expression Interpreter (MEI)

A new low-level library along with BFT and FVMDedicated to the interpretation of mathematical expressionsUsed both by the solver and the interface (as a syntax checker)

Mathematical expressions can be used in different placesFluid propertiesBoundary conditions setupFluid structure interaction (internal coupling with spring modelling)…

Will be extended for other functionalities when needed

Code_Saturne User Meeting

Page 7: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Mathematical Expression Interpreter (MEI)

Code_Saturne User Meeting

Page 8: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Mathematical Expression Interpreter (MEI)

Code_Saturne User Meeting

Page 9: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Integration in SALOME platform

Code_Saturne graphical interface can be embedded in SALOME platform

Compliant with SALOME 5.1.3 (soon to be released)Will be publicly released early 2010Will also be available at MFEE department

/home/salome/runSalome

Extends the capabilities of Code_Saturne interfaceBoundary zone selectionCode_Saturne simulations can be launched and stopped from within SALOMEVirtual results and drafts directories for an easier user file managementCompared to former Tcl/Tk interface, 2.0 interface is far more reactive

Code_Saturne User Meeting

Page 10: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

“One script to run them all”

The different user scripts have been unified in a single one

code_saturne <command> [options]

Examples:Documentation code_saturne info --guide=user --reader=acroread

Case creation code_saturne create --study=coupling --nsyr=2

Mesh verification code_saturne check_mesh mesh.neu --join --color 98 99

Compilation test code_saturne compile --test

GUI launch code_saturne gui

It is now possible to have different versions of Code_Saturne simultaneously availableE.g.: alias cs=`/path/to/saturne/bin/code_saturne`

alias csdev=`/path/to/mysaturnedev/bin/code_saturne`

Script completion is available for easier typing of a command

Code_Saturne User Meeting

Page 11: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Architectural changes

Code_Saturne kernel-related changesSwitch to the autotools for configuration and installation

Coherent with what was done for the other packages of the codeFar more standard in the Unix world than the previous homemade build processFar more easier to maintain or to detect error in the build process

Update Fortran source files to Fortran 95 normFortran 77 norm showed some limitations in terms of code complexity and maintenanceMostly only changes from fixed to free-form files (a script will be provided to ease the conversion)Fortran 95 features (dynamic memory allocation, modules, …) to be used progressively

Global changesPre-requisites detection now emits a warning if an optional package is not found when the detection is automatic but exits with an error if the package has been requested by the userSwitch to the standard management of long/short options (e.g. --study / -s)English translation for the study structure directories (lance becomes runcase, …)All executables begin with cs_ except the main script code_saturne

Code_Saturne User Meeting

Page 12: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Preprocessing enhancements

Addition of new readersNOPO 64 bits files format from Simail (version 7)CCM files format from Star-CCM

Requires to be linked with the libccmio library, available on request through the CD-Adapco web-siteA couple of fixes have also been issued for existing formats

Preparation for larger mesh readingA configure option has been added to handle long integers (> 2 billions)

Useful for very large meshes on machines with more than 128 Gb of memory./configure --enable-long-int

Same option (--enable-long-gnum) has been added for FVM configuration

Communication between the pre-processor and the solverA single prepocessor_output file is now generated by the pre-processorThis file and the solver restart files share the same unified format

They can be inquired by the cs_io_dump toolA partitionner cs_partition reads this file and generates domain_nXXXX indirection files for domain splitting

No need to regenerate the pre-processor information when changing the number of processor in a simulation

Code_Saturne User Meeting

Page 13: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

A new parallelized joining algorithm

Code_Saturne User Meeting

Another bottleneck is removed for very large meshes!

Can be considered production-ready, but not yet used by defaultActivated by a Fortran subroutine usjoin.f90Cannot handle periodicity at the moment… work in progress!Faster than previous algorithm on a single processorSame standard parameters than beforeMore advanced parameters now available to solve corner cases

Page 14: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

A couple of other “HPC-related” features

MPI-I/O featuresOnly used for preprocessor_output and restart files reading and writingActivated by the cs_solver option --mpi-io, if FVM is compiled with MPI I/O supportMixed feedback, depending on the MPI distribution and the architecture

Parallel partitioningA Space-Filling Curve algorithm has been implemented in the solverActivated by the ALGDOM subroutineGenerally worse results than with sequential Metis partitioning, but satisfying nonetheless

Porting to number of current HPC facilitiesIn the framework of the PRACE projectBlueGene/L and /P, NEC SX9, Cray XT, …

Code_Saturne User Meeting

Page 15: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Algebraic multigrid algorithm

For pressure resolution, instead of standard conjugate gradientStabilized since 1.4 development versionAlso used for other scalar, purely diffusive, variablesCompatible with parallelism and periodicity

Periodicity of translation and/or rotation are compatibleScalable up to a large number of cells and/or processors

May leverage convergence issues on mesh of very poor qualitySmoother evolution of CPU time per iteration than with standard Conjugate Gradient algorithmMajor improvement on the elapsed CPU time

Up to 10x faster on the pressure resolutionUp to 3 or 4x faster on the global elapsed time!

Code_Saturne User Meeting

Page 16: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Atmospheric modelling

Porting main features of Mercure_SaturneImplemented as a specific physics in Code_Saturne, triggered with usppmo.f90Neutral atmosphere modellingPotential temperature formulation for neutral or non-neutral atmosphereA meteorological data files can be given via a METEO_DATA variable in the runcase

Code_Saturne User Meeting

Page 17: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Combustion modelling

Accounting for possible oxycombustion in coal combustion

Extension of the heavy fuel combustionPossibly several initial droplets sizeNot yet validated

7th and 8th, December 2009 Code_Saturne User Meeting

Page 18: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Cooling towers modelling

Based on former code N3S-AeroImplemented as a specific physics in Code_Saturne, triggered by usppmo.f90Poppe and Merkel models availablePost-processing of the exchange zonesImportant fixes since 1.4 development version

But still needs to be “polished”…Parallel simulation not fully functionalUser subroutines given as an exampleBoundary conditions setup can be difficult

Code_Saturne User Meeting

Page 19: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Rotor / stator interaction modelling

Main featuresDedicated to incompressible flowsNo turbine modellingBased on code/code coupling, thus a non-conservative method, but…

… less than 1% of mass loss in the different tests

Validated against Ubaldi’s test case

Two different approaches availableFrozen Rotor method

Full domain only

Unsteady method

See dedicated talk of B. Audebert

Code_Saturne User Meeting

Page 20: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Code_Saturne coupling features

Coupling with SYRTHESNow handled with a user subroutine ussyrc.f90 (or the interface)Already prepared for the next version of SYRTHES

Version 4 of SYRTHES will be fully parallelUnder testing by the SYRTHES development team

Coupling with Code_AsterFor fluid/structure interaction simulationsCoupling through the YACS module of SALOMEStill under final stage of integration in the standard version of Code_AsterValidation is under progress

Coupling with Code_Saturne itselfMainly used for rotor/stator interaction modellingCan be used for “standard” coupling

Code_Saturne User Meeting

Page 21: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Caveat and deprecated features

Known caveatThe particle-tracking algorithm in the Lagrangian module may suffer discrepancies on “some” architectures

Due to the internal handling of floating-point precision with some processor / compilerDoes not suffer such discrepancy on standard architectures: i386-like, x86_64 and IA64 processors with GCC or Intel compilersFor portability question, contact the support

The cooling tower module may fail in parallel runWhen an “exchange zone” has more than a single neighbour domain

Deprecated featuresLagrangian modelling for coal combustion

Not been used for a long time, so probably broken

Matisse engineering module (EDF specific)The solver code adaptation is still functional, but the graphical user interface is not

Code_Saturne User Meeting

Page 22: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Code_Saturne User Meeting

Perspectives

Page 23: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Fully parallelized tool-chain

Code_Saturne 2.0 tool-chain is nearly fully parallel...The last bottleneck for standard calculations is mesh concatenation

Next version will be!A development version for parallel mesh concatenation is already under testing

Daresbury Laboratory helps to debug the new algorithm

Parallel domain partitioningPossible use of ParMetis or PtScotchImprovement in the Space Filling Curve algorithm

The Lagrangian particle tracking algorithm is prepared for parallel runNeed to be testing thoroughly

Code_Saturne User Meeting

Page 24: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Further developments

Several development axis for the Navier-Stokes solverOpportunity of a velocity-pressure coupled solverPseudo-compressible solver scheme for dilatable flowsSwitch to a lower precision for iterative linear solver

Very good feedback on the different testsProbably increase EPSILO(IVAR) to 1.e-5 instead of 1.e-8

Refactoring the boundary conditions managementFor more robustness in the simulationsFor increased flexibility

Treatment of uncertaintiesTests of plugging of OpenTURNS platform (open source) to Code_SaturneIf convenient, triggering from Code_Saturne graphical interface

Code_Saturne User Meeting

Page 25: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Further developments (cont’d)

Physical modellingLow-Reynolds second order turbulence model (Elliptic Blending RSM, R. Manceau)Thermal fluxes modellingTurbulence improvement for rotation modellingSynthetic turbulence generation for RANS/LES coupling or LES inlet setupIonic mobilityFire-driven flows specific enhancementsPumps modelling (conservative method)Stabilization of the heavy-fuel oil combustionUnification of coal and heavy-fuel oil combustion…

Architectural changesUse of Fortran 95 specific features (dynamic memory allocation, modules, …)Unification of the different packages in a single one…

Code_Saturne User Meeting

Page 26: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Code_Saturne User Meeting

Code_Saturneopen source initiative

Page 27: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

The long-awaited community features…

Code_Saturne web-site finally has its forum and bug-tracker!Registering is mandatory for moderating and surveying purposesTo register, please contact the support

https://www.code-saturne.infoA big thank to our colleagues of SINETICS for providing us with the facilities, especially to Christophe Mouton

Code_Saturne User Meeting

Page 28: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

The long-awaited community features…

Code_Saturne User Meeting

Page 29: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

The long-awaited community features…

Code_Saturne User Meeting

Page 30: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Code_Saturne packaging and distribution

A new Python installer is provided to the userAutomatic download of every pre-requisite (except optional libccmio library)Automatic installation of every source packageShould be fully working for most standard systems

The code is packaged in DebianWork in progress (only beta2 is present as of now)About 10 different architectures supported1.3.3 already available as a FreeBSD port

Still no Windows version, but…Code compilation is regularly tested on Cygwin and MingGW systemsThe new Qt interface is directly portable on WindowsEvery contribution would be welcome in this area ;-)

Code_Saturne User Meeting

Page 31: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Code_Saturne documentation

All the user subroutines have been translated in EnglishLow-level libraries (BFT, FVM and MEI) are fully in EnglishThe preprocessor is written in French, and will remain as isRegarding the solver part

The C source files are fully in EnglishThe comments in the Fortran source files will be translated as they are modified… work in progress!

Code_Saturne documentation is improvingMan pages have been added to all executables

E.g.: man cs_preprocess

A quick reference card is availableA double A4 format with main commands to be printed as a memento

The theory manual is still to be reorganized and translatedA developer’s guide is to be written early 2010

Code_Saturne User Meeting

Page 32: Code Saturne 2 - cfd.mace.manchester.ac.ukcfd.mace.manchester.ac.uk/...Code_Saturne_2.0.pdf · Code_Saturne User Meeting. Enhancements, New features. With respect to the latest validated

Code_Saturne User Meeting

And a special thank for every contribution to Code_Saturne, users and developers!

Thank you for listening!