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