This file is a condensed form of the PreonLab changelog. It contains all backwards incompatible changes and deprecations regarding the preonpy API interface and the command line arguments of PreonLab, PreonCLI and PreonNode. It also lists changes of supported environments, like Python versions or operating systems. In some cases it also lists new features that are useful for IT related tasks. The target audience for it are people responsible for deploying our products on workstations or clusters or developing automatization workflows.
This document does not list changes in the feature set of PreonLab in terms of its simulation or pre- or postprocessing capabilities. For this, please consider the changelog document.
--gpuSelection
parameter to select which GPUs
should be used for the calculations.GPU Single Node Unlimited
license type in the respective
CLI, PreonPy APIs, and PreonLab UIs.global fluid temperature
to
global reference temperature
.orientation constraint
property
that replaces and extends the previous fixed view axis
property. It also now allows fixing the viewing direction of the camera,
which is enabled by default for orthographic cameras.Thermal Sensor: Solid Temperature
to
Thermal Sensor: Temperature
.Boundary Condition:
to the
boundary condition buffer names (ex: renamed Temperature
to
Boundary Condition: Temperature
).get_image
method to objects of type
FloatFieldObject
that allows to get the texture data.get_texture3d
method to rigids that allows to
get the coloring texture data, e.g., when a force sensor is
connected.do_not_load_resources
parameter when opening
a scene. This allows opening a scene without resources that might take a
long time to load, e.g., geometries, pathlines, or air flow data. To be
able to load this data later, a load_initial_resources
method was added to the scene.preonpy.plugin_args(…)
interface as a way to pass
configuration to plugins. This can be used to select which GPUs should
be used for the calculations.names_of_measured_values()
method for sensors now
excludes quantities for which it is known that they are currently not
available.Scene.create_object
method now accepts the
typename
parameter in the new common naming scheme, where
each word starts with a capitalized letter. Old names will continue to
be accepted for some time to ensure a smoother transition.Object.get_connected_objects(…)
or
Object.get_connection_slots(…)
were called without setting
include_target_slot_name
to True
. We don’t
plan to change the default value in future versions.preonpy
module. This mainly prevents the use of misspelled
attribute names.as_scalars
of the PreonPy
method Object.statistic_buffers(…)
to be
False
. Therefore, scripts that do not specify that
parameter will behave the same as in version 7.0 when it is
removed.export_mesh()
method for pathlines now allows
specifying an export unit. The default export unit is meters.load_only_object_creations=True
, now
preonpy.DataNotAvailable
is raised instead of a
TypeError
.Full
license was renamed to the Base
license in version 6.0. Starting with version 7.0, the PreonPy API and
the PreonCLI and PreonNode command-line interfaces will remove support
for the old naming scheme.as_scalars
of the PreonPy method
Object.statistic_buffers(…)
is deprecated and will be
removed in version 7.0.load_only_object_creations
of
preonpy.Scene(…)
is deprecated and will be removed in
version 7.0. Please consider using do_not_load_resources
instead.scene_path
as a
positional argument to preonpy.Scene(…)
is deprecated.
Starting with version 7.0, such a parameter will only be accepted as a
keyword argument.preonpy.current_scene
has been
deprecated since version 5.0. It will be removed in version 7.0. Please
use get_scenes()
and preonlab.current_scene
instead.preonpy.show_progressbar
has been
deprecated since version 5.2. It will be removed in version 7.0. Please
use preonpy.show_progress
instead.--continue
parameter that allows a
previously canceled or otherwise stopped simulation to be continued
based on the last written scene statistics.--featureOnGPU
parameter
for activating the GPU support.GPU Memory
statistic to the “Scene” object,
which tracks the amount of memory spent while simulating on the GPU.
Note that this does not account for memory spent on visualization (e.g.,
rendering).--lBoost=sim_threads_max
and not enough licenses are
available to cover all threads, it will cancel with an error message. In
earlier releases, only a warning was printed, and the simulation started
with fewer simulation threads than the system would provide. The user
should specify the exact number of additional simulation thread licenses
to cover the whole machine (e.g., --lBoost=10
).OMP_NUM_THREADS
is set to a value that is higher than the
number of available cores. As before, the number of actually used
threads will be reduced to the number of available cores. But now a
warning is logged, and the number of simulation thread licenses
requested will align with that number.Full
license is now called the Base
license to better express its extendability with a GPU
license or licenses that extend the number of CPU simulation threads in
MPI contexts. The renaming is visible in the GUI of PreonLab, but also
in the preonpy.checkout_license
function of the PreonPy API
and in the -licenseMain
argument of
PreonCLI/PreonNode.preonpy.LicenseTypes.GPU
to be used in
preonpy.checkout_license(...)
calls and to be returned in
preonpy.get_license()
calls.preonpy.set_features
to enable and disable
features. This is currently mainly used to enable GPU usage when PreonPy
is used as a package within a user-provided Python environment,
e.g. without using PreonCLI.statistic_names()
will now return the
names of all statistics, even if they have no data available.
Furthermore, the function will only return one statistic name per
vector-valued statistic. Example: Only Linear Velocity
will
be returned instead of Linear Velocity Norm
,
Linear Velocity X
, Linear Velocity Y
and
Linear Velocity Z
.adaptive spacing
to
continuous particle size
, min. spacing
to
min. particle size
, spacing
to
particle size
/max. particle size
,
coarse particles
to coarsen particles
and
source spacing
to particle size
. These
renamings were introduced in version 5.2.get_statistic(…)
, get_statistic_avg(…)
,
get_statistic_min(…)
and get_statistic_max(…)
)
will be removed in version 6.1. The new Statistic API, which can be
reached via Object.statistic(…)
, is now recommended to be
used instead.--licenseModelBoost
command-line parameter and for PreonPy the
license_model_boost
parameter for the
checkout_license
function.preonpy.get_license
function now returns a fourth
tuple element containing the boost license model.Total Wait Time
now accumulates the time
of the node that had to wait the longest each simulation step.statistic_names()
will change from 6.0.0
on. Then, it will return names of all statistics, even if they have no
data available. Furthermore, the function will only return one statistic
name per vector-valued statistic. Example: Only ‘Linear Velocity’ will
be returned instead of ‘Linear Velocity Norm’, ‘Linear Velocity X’,
‘Linear Velocity Y’ and ‘Linear Velocity Z’.PathLike
objects such as
pathlib.Path
in all places where previously only
str
was accepted as a path.convergence criterion
to
thermal timestep limiter
.FlowRate
to
VolumeFlowRate
.heat capacity
to
specific heat capacity
and flow rate
to
volume flow rate
.Licensed Threads
to
Tot. Licensed Threads
.Scene.get_files
for retrieving all existing files
that belong to the scene.preonpy.show_progress
attribute which is
enabled per default. When enabled, it prints a status log per frame for
long-running tasks such as simulate
,
post_process
or exporting a CSV file. The behaviour
substitutes the previously shown progress bar for the long-running
tasks, which required the progressbar2
package. This
requirement is not needed anymore. Previously, the non-existence of the
progressbar2
package disabled logging, which is not true
anymore. The preonpy.show_progress
attribute should be used
instead of preonpy.show_progressbar
attribute, which is
deprecated and will be removed in future versions.particleBasedLoadBalancing
which is
now the default. Furthermore, the guiding particle-count-based metric
was optimized to predict the computational effort more accurately.timingBasedLoadBalancing
which enables
the timings-based load balancer in previous PreonLab versions. This is
now only recommended when using MPI nodes that vary in computation
speed.mode
and version
field in the status
file (--statusFile
). The mode
field can be of
value postprocess
or simulate
, depending on
which type of run was invoked. version
will have the value
1.1
and will update with future changes to this file.--licenseList
.Decimeter
and
Inch
, as well as for the temperature unit
Fahrenheit
.mm
).
Previously, some properties and methods expected the unit to be
represented by its full name (e.g., Millimeter
).particle_buffers
was called on a solid with
dynamic sampling
turned on, a RuntimeError
was
raised. Now a preonpy.SubsamplingError
is raised
instead.Fluids
to
Solvers
.thermodynamics
. It replaces the old
system type
property. If the removed system type
isolated
is loaded from an old scene, thermodynamics is set
to Off
in this case.system type
to
boundary type
.temperature
to
constant temperature
.ClosedFixed
to
temperature
. The property constant temperature
can only be set as a boundary condition if this particular system type
is set.Heat flux sensor
to
Thermal sensor
.physical value
from the force
sensor. The decision on which physical value to display is now defined
by the coloring mode alone.car body mass
to
sprung mass
.reference point
from
axleLoad
and uncompressedSpring
to
compressed state
and uncompressed state
,
respectively.mapped unit
to
mapped
.mapped
from
NewtonPerMeter
and Newton
to
Coefficient
and Force
, respectively.Front
and
Rear
, respectively. The PreonPy names of the properties in
these two groups include the group name (e.g. “Front::”).parameter input
. The per-wheel
suspension parameters have to be provided for the wheels at the front
axle and the wheels at the rear axle separately.close_existing
argument to the
preonpy.Scene
constructor to specify what should happen
with currently opened scenes. Also preonpy.multiple_scenes
can be used to set the default behavior if close_existing
was not passed.preonpy.set_log_dir
and
preonpy.get_log_dir
for specifying where log files should
be written.set_default_scene_dir
and
get_default_scene_dir
for specifying where new scenes
should be created.current_scene
property, the
function get_scenes()
(and for the PreonLab Console the
property preonlab.current_scene
) was added.ClosedFixed
to
constant temperature
for solids.thermodynamics
. It replaces the old
system type
property.preonpy.multiple_scenes = False
or pass
close_existing=True
to the preonpy.Scene
constructor to get the old behavior again.import preonpy
anymore.current_scene
will be removed in
one of the upcoming releases. Please use get_scenes()
and
preonlab.current_scene
.live csv export
to
live CSV export
.csv file
to
CSV file
. This read-only property is only available in
PreonPy.noninear damper coefficient (rear)
to
nonlinear damper coefficient (rear)
.BoundaryDomain
slot.smoothShaded
to
visible
.TemperatureBased
is now called
temperature
. You can still use the old names in
PreonPy.Mesh
particle sampling method for
solids.record statistics
property.specify thread affinity
option from the
scene settings.temperature
has been removed from the
solver. If you want to set a temperature for all currently existing
particles of a solver, use the new right-click action
Set temperature
.compute initial deflection
.timestep
property of the scene.--noPerformanceChecks
option
is given). Before, this error was shown only with three or more
instances.preonpy.BufferSet
got renamed to
preonpy.BufferSetRef
.precipitation height ("mm/min")
got renamed to
precipitation height
.intial Young Modulus
to Young Modulus
.load_only_object_creations
flag, the scene statistics are not loaded by default. Please use the new
reload_statistics
method.