CoreFlows is composed of 6 concrete classes dealing with specific models. They are listed in chronological order :
- SinglePhase implementing the compressible Navier-Stokes equations
- DriftModel implementing the 4 equation drift model
- IsothermalTwoFluid implementing the isentropic two-fluid model
- FiveEqsTwoFluid implementing the equal temperature two fluid model
- TransportEquation implementing a scalar advection equation for the fluid enthalpy
- DiffusionEquation implementing a scalar heat equation for the Uranium rods temperature
On top of these classes there are two abstract classes that mutualise functions that are common to several models.
- ProblemFluid which contains the methods that are common to the non scalar models : SinglePhase DriftModel IsothermalTwoFluid and FiveEqsTwoFluid
- ProblemCoreFlows which contains the methods that are common to the scalar and non scalar models: ProblemFluid, TransportEquation and DiffusionEquation
Here follows an inheritance diagram of CoreFlows
The program can build simple geometries and meshes using the library CDMATH-Toolbox or load complex geometries and meshes written with the MED file system (see SALOME ). The output files containing the fields resulting from the calculation can be either of VTK or MED type. One can use PARAVIEW (for VTK files) or SALOME (for MED files) to visualise the results. Vector and matrices structures come from the PETSC library. The matrices are stored in a block sparse format (type baij in PETSC conventions). The default linear solver is GMRES and the default preconditioner is ILU, both provided by PETSC .