ContinuumMechanics - ProkopHapala/SimpleSimulationEngine GitHub Wiki
Multi-Component simulation in Eulerian picture
- Eulerian picture is more efficient since it is simple array, does not need nearest-neihbor search. The problem is that boundaries between non-mixing fluids are smeared out
- face-volumes - each face has it's own compartment (like if it is a pipe) which is connected to two ends (nodes with pressure). Each pipe contains two liquids separated by boundary. See
Dropbox/KnowDev/EulerianMultiLiquid.odp
- store component center of mass within cell (update it each influx and outflux). Addvection extract from the cell preferentially that component is closer to corresponding boundary face. The preference is evaluate done by
min
or softmin
criteriaum.
- for
min
criterium is problem that there my be insufficient ammount of component closest to boundary => we have to continue with next closest component etc. => We actually have to order component COGs according to paricular coordinate (x,y,z), which is fast for small number of fluids, but slow for large number (N^2, or NlongN with quicksort).
softmin
can be done without ordering using weighting by quicky decaying distance function g.e. w_i(x_i)=1/x_i**8;
. The amount should be than renormalized as (w_a m_a)/sum_i{ w_i m_i }
- since these component updates will be quite slow, we should perhaps do several fluid dynamics steps per one component update. This can be done, if fluid solver updates just transfer of total mass (or volume?), and only later is this total transfered mass splited between components. Problem is however
pressure update
since pressure (especially pressure(mass,volume)
can be very different for each component.
https://image.slidesharecdn.com/lcs-151013013708-lva1-app6891/95/finding-lagrangian-coherent-structures-using-community-detection-9-638.jpg?cb=1444885992
http://scicomp.stackexchange.com/questions/26326/avoid-component-mixing-in-eulerian-simulation-of-plastic-deformation-of-solid