Free Electron
|
One main use case for this solver is for mechanical rotational systems.
However, the language of this solver is in simple clumped mass system terminology. So, in the interface you see "particle", "mass", "velocity", and "force". When using this for a mechanical rotational system, you can think of these as "shaft", "moment of inertia", "angular velocity", and "torque". The solve math is equivalent.
The main thing this solver has beyond a simple clumped mass solver to support mechanical rotational systems is the idea of ratios. Every "mass" (or shaft) has a ratio for which it "spins" from the point of view of a use case, that may differ from the point of view of the numerical solve. The reason for this is that the numerical solver can only solver in a single "spin space" for all connected shafts.
Ratio groups ...
simple example shaft <-> gear <-> shaft <-> clutch <-> shaft | | | | | <--- pair ---> | <--- pair ---> | | | | mass <-----------> mass <-------------> mass | \ / | \ / ratio group ratio group
Conversion functions when operating with ratios as a mechanical rotational system.
Functions that convert values from ??? solver space to user space:
Functions that convert values from user space to solver space:
connect ratio into pairs?
ACCUM GUIDE
USER | SOLVER params -— ext ---------—> force
compile precompile (add more particles into data) process dataset to create sim particles and constraints pairs process dataset to create collector sparse matrix, connectivity groups, etc, from pairs info compile (populate sparse matrix with entries necessary to accumulate) bake/optimize solver sparse matrix using collector sparse matrix reconfigure (run time dynamic change of configuration (parameters, etc)) in particular, ratios
step accumulate
validate
reconfigure reconfigure bake ratios in pairs down to solver per-shaft ratios.
ratios per shaft for solve per pair