Configuration parameters for sph2000

This document lists all parameters of the sph2000 simulation program. The parameters are grouped in Sections. A Section collects all parameters of a branch of the simulation, e.g. the parameters to specify the geometry of the simulated system.

Some of the parameters must get a value of a predifed list, e.g. Yes/No; the others get a number of an interval. For some parameters, there are prefered values.

Section: Hardware
Parameters to specify the machine architecture and the parallelization strategy.
Parameter: Memory
Choose between a single node with shared memory or distributed memory using TPO++ as message passing interface.
Remark: the current code needs TPO++ to compile, although only the TPO item really uses it.
Value: Single
A single processor (node) with the whole memory for its own usage.
Value: TPO
The architecture is based on distributed memory; TPO++ will be used as message passing interface.
Section: Simulation
Parameters to specify the kind of simulation.
Parameter: SimulationKind
Choose the kind of simulation.
Value: Injection
Diesel injection into a air filled internal-combustion engine
Value: Chamber
Two fluids in a chamber (equivalent to Injection, but without an inlet)
Parameter: Fluids
Set the number of used fluids.
Value: Posititve Integer
Diesel injection will need 2 fluids.
Section: SPH
Common specifications for the SPH-Method.
Parameter: SmoothingLength
Set the smoothing length h. Unit of measurement is m.
Value: A positive real number
5.0e-5
Parameter: Kernel
Choose the kernel function to smooth the particles.
Value: Cusp
A parabolic sector as kernel. See Speith (1998), p.81. This Kernel has a well-developed peak in the center. The preferred kernel for diesel injection.
Value: BetaSpline
Cubic beta-spline as kernel. See Speith (1998), p.78 or Monaghan \& Lattanzio (1985). Most often used kernel in astrophysics.
Value: Box
A boxed form as kernel. See Speith (1998), p.80. Simple square form but discontinuous at the edge.
Value: Spline35
3 splines of 5.th order fitted as a kernel. See Speith (1998), p.81.
Value: Gauss
A gaussian function as kernel. See Speith (1998), p.77. The normal gauss kernel is non-compact, which means it is larger than 0 until infinity. To avoid a n*n interaction search, this kernel is cutted with the smoothing length, so it is unsteady!
Parameter: Boundary
Specify the boundary of the simulation space: What does a particle, when it crosses the boundary?
Value: Reflecting
The boundary is a wall. Reflect a leaving particle back into the simulation area.
Value: Open
There is no real boundary; only a limited system size. A particle leaves the simulation area forever.
Value: Periodic
The simulated system is one part of a periodic total area. A particle which leaves one side is feed back into the area on the opposite side. The quantities of the particle (except the position) are unchanged.
Parameter: UseGhosts
Specify the handling of the boundary condidtions.
Value: Yes
Use ghost particles to model the boundary condidtions. For every particle which is near the boundary, one or more ghosts are created to effect the particle so it sees also a force back inside.
Remark: The ghosts does not prevent a particle from leaving the simulation domain; this is done by the Boundary parameter. The ghosts create an artifical density outside the simulation domain, otherwise a particle would be absorbed from the vacuum.
Value: No
Use direct formulas, a potential, for the boundary conditions. This is not implemented yet!
Section: Geometry
The measures, extents and dimension of the simulated system.
Parameter: Dimension
Set the dimension of the simulation space.
Value: 2
2D
Value: 3
3D
Parameter: xLength
Set the lentgh of the simulated system in x-direction. Unit of measurement is m.
Value: 0.001
0.001
Parameter: yLength
Set the lentgh of the simulated system in y-direction. Unit of measurement is m.
Value: 0.001
0.001
Parameter: zLength
Set the lentgh of the simulated system in z-direction (ignored in 2D). Unit of measurement is m.
Value: 0.001
0.001
Section: Timing
Set the timing of the simulation.
Parameter: SavingPeriod
The saving time step. The time after which the particles are saved to a file. This period must be greater than the (initial) timestep of the integrator! Unit of measurement is s.
Remark: The complete simulated time is given by the program arguments on the command line of sph2000. There the starting particle distribution number, and the last distribution number is specified. The difference multiplied with the SavingPeriod is the time, the simulation will run.
Value: Positive number
1e-8
Parameter: Timestep
The initial integration time step. For non-adaptive integrators, this is the ever lasting timestep. For adaptive integrators, this is the first (trying) timestep. Unit of measurement is s.
Value: Positive number
1e-9
Parameter: MaxTimestep
The maximal timestep for an adaptive Integrator.
Remark: A SPH-particle shouldn't go in one step further than approximatly a quarter of h. Look at the fastest ($v_{max}$) SPH particle MaxTimestep $= h/(v_{max}*4)$. Obey the momentum conservation law: The diesel particles have 35 times more mass than air particles. So these can speed up to 35 times of the injection speed of diesel! Furthermore obey the maximum sonic velocity $c_{max}$. A good try is MaxTimestep = h/(c_max * 4). The minimum of both, c and v is the MaxTimestep to be used! This value is tested against the real statistics of the current run, so it is used for the first step (when there i sno statistic available yet *and* as a step minimum, when the statistic allows larger steps. Unit of measurement is s.
Value: Positive number
1.0e-8
Section: Injection
Parameters to specify the diesel injection.
Remark: Some parameters are found in the makeparticles section!
Parameter: InletPosition
Specify the position of the nozzle (inlet) on the y-axis (the y-z-plane in 3D) of the simulation domain.
Value: Middle
Place the inlet in the middle of the y-axis.
Value: Corner
Place the inlet in the corner x=0, y=0 (and z=0 in 3D). If you want to simulate the half jet, generating the whole by mirroring (like in sph98), then choose the Corner item.
Remark: The InletWidth is always the size of the simulated inlet, so when the simulation domain is mirrored, InletWidth will be the radius!
Parameter: InletWidth
Set the extent of the nozzle (inlet). This is the length of the used inlet slit in 2D, respectively the diameter of the inlet in 3D.
Remark: If the inlet is set in the corner and you want to mirror the simulation, then the given InletWidth is taken as radius.) Unit of measurement is m.
Value: Positive number
1.0e-4
Parameter: DieselAccelerationPeriod
Open the nozzle softly, slowly. Accelerate the jet from a low velocity to the DieselVelocity... values in the given time period. This softens the shock. A value of 0.0 means instantaneous acceleration. Unit of measurement is s.
Value: Non-negative number
0.0
Parameter: DieselInitialVelocity
The initial velocity of the jet (center) to accelerate from. Ignored, when DieselAccelerationPeriod is set to 0.0 Unit of measurement is m/s.
Value: Positive number
50
Section: Time Integration
Choose an integrator and the errors for adaptive integrations.
Parameter: Integrator
Value: Euler
The Runge Kutta method of first order.
Value: Heun
The Runge Kutta method of second order.
Value: RungeKutta
*The* standard Runge Kutta method, 4.th order.
Value: RK5
The Runge Kutta method of fifth order.
Value: RK5CashKarp
A Runge Kutta method of fifth order with error detection (fourth order) and step adjustment.
Remark: This is an adaptive integrator based on a Runge Kutta of fifth order. With six calculation points it is possible to calculate a Runge Kutta of fifth order and with different weights a Runge Kutta of fourth order, so an estimation of the error is made.
Value: Dopri5
A Runge Kutta method of fifth order with error detection (fourth order) and step adjustment.
Remark: This is an adaptive integrator based on a Runge Kutta of fifth order. With six calculation points it is possible to calculate a Runge Kutta of fifth order and with different weights a Runge Kutta of fourth order, so an estimation of the error is made.
Parameter: AbsPositionError
Absolute error for the particle positions. If an adaptive integrator exceeds this value, the last integration step is repeated with a smaller stepsize.
One of AbsPositionError or RelPositionError must be non-zero.
Hint: Only used with an adaptive integrator.
Value: Non-negative number
The absolute position error is normaly not used, so 1.0e100 is a good upper bound.
Parameter: AbsVelocityError
Absolute error for the particle velocities. If an adaptive integrator exceeds this value, the last integration step is repeated with a smaller stepsize.
One of AbsVelocityError or RelVelocityError must be non-zero.
Hint: Only used with an adaptive integrator.
Value: Non-negative number
A good try is a value between 1.0e-4 and 1.0e-3.
Parameter: AbsDensityError
Absolute error for the particle densities. If an adaptive integrator exceeds this value, the last integration step is repeated with a smaller stepsize.
One of AbsDensityError or RelDensityError must be non-zero.
Hint: Only used with an adaptive integrator.
Value: Non-negative number
A good try is a value between 1.0e-4 and 1.0e-3.
Parameter: AbsTemperatureError
Absolute error for the particle temperatures. If an adaptive integrator exceeds this value, the last integration step is repeated with a smaller stepsize.
One of AbsTemperatureError or RelTemperatureError must be non-zero.
Hint: Only used with an adaptive integrator.
Value: Non-negative number
A good try is a value between 1.0e-4 and 1.0e-3.
Parameter: AbsEnergyError
Absolute error for the particle energies. If an adaptive integrator exceeds this value, the last integration step is repeated with a smaller stepsize.
One of AbsEnergyError or RelEnergyError must be non-zero.
Hint: Only used with an adaptive integrator.
Value: Non-negative number
A good try is a value between 1.0e-4 and 1.0.
Parameter: RelPositionError
Relative error for the particle positions. If an adaptive integrator exceeds this value, the last integration step is repeated with a smaller stepsize.
One of AbsPositionError or RelPositionError must be non-zero.
Hint: Only used with an adaptive integrator.
Value: Non-negative number
The absolute position error is normaly not used, so with a high AbsPositionError, the relative error can be set to zero.
Parameter: RelVelocityError
Relative error for the particle velocities. If an adaptive integrator exceeds this value, the last integration step is repeated with a smaller stepsize.
One of AbsVelocityError or RelVelocityError must be non-zero.
Hint: Only used with an adaptive integrator.
Value: Non-negative number
With a good absolute error, this value can be set to zero.
Parameter: RelDensityError
Relative error for the particle densities. If an adaptive integrator exceeds this value, the last integration step is repeated with a smaller stepsize.
One of AbsDensityError or RelDensityError must be non-zero.
Hint: Only used with an adaptive integrator.
Value: Non-negative number
A good try for Dopri5 is a value about 1.0e-6.
Parameter: RelTemperatureError
Relative error for the particle temperatures. If an adaptive integrator exceeds this value, the last integration step is repeated with a smaller stepsize.
One of AbsTemperatureError or RelTemperatureError must be non-zero.
Hint: Only used with an adaptive integrator.
Value: Non-negative number
A good try for Dopri5 is a value about 1.0e-6.
Parameter: RelEnergyError
Relative error for the particle energies. If an adaptive integrator exceeds this value, the last integration step is repeated with a smaller stepsize.
One of AbsEnergyError or RelEnergyError must be non-zero.
Hint: Only used with an adaptive integrator.
Value: Non-negative number
A good try for Dopri5 is a value about 1.0e-6.
Section: Load Balancing
This part affects the way the load balancing works.
Parameter: LoadWeighting
Specify, which quantity is used as weighting for the load.
Value: InteractionCount
The total amount of interactions of the processes is used as weight for the load.
Value: ParticleCount
The total amount of particles is used as weight for the load.
Parameter: LoadAttenuation
Weight the old load in the new one to depress oscillations of the subareas. 0 ignores the old load, 1 weights both 1:1. Possible values are in [0;1].
Value: Number in [0;1]
0.5
Parameter: LoadSuspend
The number of no-balance integration steps before a new balancing could be done.
Value: Positive integer
5
Parameter: PlotLoadWeighting
This parameter tells sph2000 to save the subareas to a file, so the load balancing can be viewed with plotsph.
Value: Yes
With every particle data file a special file prefix.number.gp is saved. The file consists of the edge points of the subareas.
Remark: plotsph automaticaly plots the areas over the r-plotting, if these files are present.
Value: No
Do not create a special output.
Section: Debugging
This part does not affect the simulation. It is used to debug the program.
Parameter: StopAfterInitialization
Stop the program, after the initialization is done; do not start the simulation. This is to check the values of the initialization.
Value: Yes
Stop for debugging.
Value: No
Simulate.
Parameter: PlotKernel
Write the kernel into a file.
Value: No
Do not write the kernel into a file.
Value: Yes
Write the kernel into a file, so gnuplot can show it.
E.g. the Box kernel for dimension 2: The kernel will go to Box.2D.w.gnuplot, the gradient to Box.2D.gradW.gnuplot. gnuplot should understand this file, when you start it and say:
plot ''kernel.Box.2D.w.data'' with lines
or run gnuplot as batch in the shell:
gnuplot kernel.Box.2D.w.gp
Value: Postscript
Write the kernel into a file, so gnuplot can generate a postscript picture of it.
Parameter: PrintParameters
Write the simulation parameters to stdout before starting the simulation.
Value: Yes
The Key-Value pairs of this file will be printed to stdout before the simulation starts.
Value: No
No extra output.
Section: Physical calculations
Specify the forces between the particles. Choose forces and their variants in the SPH method.
Parameter: DensityCalculation
Specify the calculation of the density. Calculate rho directly as a sum, rho = ... or via the continuity equation, drho/dt = ..., see Speith (3.64).
Value: Direct
Calculate rho directly as a sum, rho = ...
See Speith (3.65)
Remark: This is not possible for adiabatic simulations.
Value: ContinuityEquation
Calculate rho with the continuity equation, drho/dt = ...
See Speith (3.64).
Parameter: DensityFluctuation
Specify if the density could be discontinuous. This is useful to get a physical pressure in the contact area of diesel and air in the diesel injection.
Value: Continuous
Use the standard calculation, Speith (3.64) or (3.65).
Value: Discontinuous
Use the calculation after Ott (3.15) instead of Speith (3.65), respectively Ott (3.16) instead of Speith (3.64). This calculation smooths a discontinuous density as it can appear in the diesel injection to get a physical pressure.
Parameter: EulerEquation
Choose the SPH representation of the euler equation.
Value: Normal
Calculate SPH-Euler 'normaly', like Speith (3.69) describes it. With (3.69) for DvDt, (3.88) will be used for DeDt.
Value: Flebbe
Calculate SPH-Euler after the derivation of Flebbe, Speith formula (3.80). With (3.80) for DvDt, (3.94) will be used for DeDt
Parameter: NegativeDieselPressure
From the physical point of view, the pressure is always non-negative. With an artificial equation of state (like the given diesel equation) the pressure could get negative values for some (extreme) (rho,T)-combinations. This parameter describes how to handle the negative pressure of particles.
Value: Ignore
Ignore that the pressure of some particles is negative.
Value: SetZero
Set all negative pressure values to zero.
Parameter: Temperature
Specify the handling of the temperature of the system.
Value: Isothermal
Use a constant temperature.
Value: Adiabatic
Use an adiabatic temperature handling, calculating the temperature equation.
Remark: With Adiabatic the DensityCalculation must be ContinuityEquation!
Parameter: ArtificialViscosity
Specify the handling of viscosity
Value: Yes
Calculate an artificial viscosity as additional term for the velocity derivative (3.80) like it is described in Speith, Formula (3.105) and for the energy derivative (3.94) like it is described in Speith, Formula (3.106).
Value: No
Do not use an artificial viscosity term.
Parameter: Alpha
A parameter to adjust the artificial viscosity. See Speith (3.98) for more details.
Value: Positive number
A suitable value is about 1.0.
Parameter: Beta
A parameter to adjust the artificial viscosity (the Neumann-Richtmyer viscosity term). See Speith (3.99) for more details.
Value: Positive number
A suitable value is about 2.0.
Parameter: Epsilon
A parameter to adjust the artificial viscosity. Epsilon is a small value to prevent the diverging of a term for small particle pair distances, see Speith (3.103).
Value: Positive number
A suitable value is about 0.01.
Parameter: PhysicalViscosity
Specify the handling of viscosity
Not implemented, yet!
Value: Yes
Calculate the physical viscosity as additional term for the velocity derivative (3.80) like it is described in Speith, Formula (3.115) and for the energy derivative (3.94) like it is described in Speith, Formula (3.118).
Value: No
Do not use the physical viscosity term.
Section: makeparticle
makeparticles is an additional program, generating an initial data file for sph2000. These parameters are statically set into the initial data file, whereas the other parameters change the behaviour of sph2000 at running time!
Parameter: InitialParticleCount
The number of particles in the inital particle data file. makeparticles will generate these particles with equidistant positions in the given simulation domain.
Value: Positive integer
The number of particles in the initial particle distribution. For diesel injection, this is the number of air particles in the engine cylinder.
Value: 0
makeparticles will ignore this parameter and use the InitialParticleDistance instead.
Remark: Exactly one of InitialParticleDistance or InitialParticleCount must be zero!
Parameter: InitialParticleDistance
The distance of the particles in the initial particle distribution. makeparticles will generate as much particles as fit in the simulation domain with this distance.
Value: Positive number
The given value is the distance of the particles in the initial data file.
Value: 0
makeparticles will ignore this parameter and use the InitialParticleCount instead.
Remark: Exactly one of InitialParticleDistance or InitialParticleCount must be zero!
Parameter: AirDensity
Set the initial density of the air particles.
The pressure is calculated with the ideal gas equation. Example: with T = 393.15, rho = 22.8, the pressure is 50 bar (T and rho are linear in p). The air energy is given with the caloric state equation.
Value: Positive number
22.4
Parameter: AirTemperature
Set the initial temperatur of the air particles
Value: Positive number
393.15
Parameter: MaxRelPositionOffset
Place the initial air particles with a random offset from the equidistant positioning grid. The given number is the maximum offset for the distance in per cent due to the distance, makeparticles calculates. With a value of 0.0, makeparticles will set all particles exactly equidistant to their neighbours.
Value: Non-negative number
0.0
Parameter: MaxAbsVelocityOffset
Set a random velocity for every air particle. The given value is the maximum velocity in m/s.
Value: Non-negative number
0.0
Parameter: DieselDensity
Set the initial density of the diesel particles.
Value: Positive number
772.546
Parameter: DieselTemperature
Set the initial temperature of the diesel particles.
Value: Positive number
393.15
With a tabulated equation of state, be careful that the value fits the given ranges!
Parameter: DieselEnergy
Set the initial specific energy of the diesel particles.
Value: Positive number
100000.0
Parameter: DieselVelocityCenter
Set the velocity of the diesel particles. For a non-constant jet profile, this is the velocity in the center of the jet. With an accelerated jet, this is the velocity, which is reached after the acceleration period.
Value: Positive number
400.0
Parameter: DieselVelocityMargin
Set the velocity of the diesel particles. This value is only relevant for a non-constant jet profile. It is the velocity on the margin of the jet. With an accelerated jet, this is the velocity, which is reached after the acceleration period.
Value: Positive number
200.0
Parameter: JetProfile
The jet velocity profile for the diesel injection. This parameter specifies the velocity profile to generate an initial jet particle file with makeparticles. The parameter DieselVelocityCenter specifies the velocity in the center of the jet, DieselVelocityMargin specifies the velocity on the edge of the jet, whereas the JetProfile determines the velocities between these two points.
Remark: The injection function uses the jet particles in the fileprefix.jet.data file.
Value: Constant
All jet particles have the same velocity,specified in DieselVelocityCenter. The DieselVelocityMargin is ignored.
Value: Linear
A linear declining velocity from the center to the margins.
Value: Parabolic
The jet velocity decline parabolically from the center to the margins.
Parameter: LegacySupport
Try to generate output for other simulation programs. This is useful to compare sph2000 with other programs.
Value: OnlySph2000
Do nothing special.
Value: SupportSph98
Let makeparticles create a prefix.0000.data file additionally to the sph2000 data files. The format of the .0000.data file is compatible to the sph98 simulation program, containing *all* particles -- incl. the jets -- for the simulation. With this support, sph98 can be started with the same data for comparision.
Remark: Not fully implemented! Only the data file will be created; no .info, no sph.defs and no sph.h!

Last modified $Date: 2007/03/12 09:40:33 $
Sven Ganzenmüller

back to the sph2000 homepage

back to the homepage