Interaction with CindyLab
The simulation environment: simulation()
Description: This operator provides a handle to the simulation environment. The simulation environment offers several fields than can be used to access its global properties.
Name | Writeable | Type | Purpose
|
friction | yes | real | total friction of the simulation
|
gravity | yes | real | total gravity of the simulation
|
kinetic | no | real | total kinetic energy of the simulation
|
ke | no | real | total kinetic energy of the simulation
|
potential | no | real | total potential energy of the simulation
|
pe | no | real | total potential energy of the simulation
|
Applying a force: addforce(<mass>,<vec>)
Description: Applying a force <vec>
to an existing mass <mass>
. This operator is useful to implement user defined force fields. It should be called in the Integration Tick
slot.
Applying a force: setforce(<mass>,<vec>)
Description: Setting the force <vec>
for an existing mass <mass>
. This operator is very useful to implement user defined force fields. It should be called in the Integration Tick
slot.
Probing particle forces: force(<vector>)
Description: The operator
force
is closely related to physics simulations in
CindyLab. It can be used for testing the force that would affect a mass particle at a specific position. The vector
<vector>
represents the position. The operator returns a two-dimensional vector that is the force at this position. If no modifiers are used, the operator assumes that the probe particle has
mass=1
,
charge=1
and
radius=1
(see
Free Mass).
Example: The following picture was generated using the drawforces
operator and a color plot of the force
operator. It shows the force field and force strength of the electrostatic field of two charges.
A.charge=(|C,G|-3)*3;
B.charge=(|E,H|-3)*3;
f(x):=max((0,min([x,1])));
colorplot([0.1,0.1,0.1]+hue(f(abs(force(#)/3))),(-10,-10),(20,10));
drawforces(stream->true,move->0.2,color->[0,0,0],resolution->10);
Modifiers: It is also possible to set the values of mass, charge and radius explicitly. Each of these values can be set by a modifier of the same name. If at least one of these values is set explicitly, then all unset values are set to zero. Thus force([0,0],charge->2)
tests the force that would be present for a particle of charge=2
, mass=0
, and radius=0
at point [0,0]
.