yade-users team mailing list archive

Re: [Question #698948]: Stability of advection modeling by ThermalEngine

 Thread Previous • Date Previous • Date Next • Thread Next

```Question #698948 on Yade changed:

Robert Caulk proposed the following answer:
Hey Zoheir,

The version that you have installed is actually an *earlier* version
than the branch you were using. Best to start using a *later* version so
as to keep up with bug fixes etc. For example, I am using the latest, it
is 52f0c5a7, but installing it is as simple as following these
instructions [1].

>>Would you be able to try this one more time with rMean=0.001 on your
machine? I would really appreciate your help

Yes, it works when I decrease the timestep, as expected. The magnitude
of timestep decrease depends on the seed and packing - we are sampling a
uniform particle distribution [0.001+/-0.00033] 100 times. So sometimes
we may get a tiny sphere other times we may not. That has significant
impact on stability as I will teach to you below. (btw, we do not have
the same seed values since we are on separate computers.) So you can
change seed to demonstrate that process.

I think it will help you for me to review to you directly the fluid
conduction scheme:

All particles are triangulated to create a connected set of tetrahedra.
Each tetrahedron has 4 neighbors, and with those 4 neighbors, it shares
1 facet each. The fluid conduction is computed using the fluid area (A)
of the incident facet divided by the distance between the two
neighboring tetrahedra centers (L). Fluid area is simply the area of the
facet not consumed by a sphere. Please refer to our paper for
visualization of these geometries. So we have:

q_12 = k_12 * A_12/L_12 * (T1 - T2)

As we have discussed at length, the time step depends on this "diffusion
coefficient" kA/L. As that increases, the allowable timestep decreases.
So what does this mean? If the area is big, the timestep is small. If L
is small, the timestep is small, if k is big, the timestep is small. We
can refer to A/L as a characteristic length scale of the problem.

When you start adding a wide distribution of spheres (rRelFuzz=0.33),
you start to play with these geometries in the triangulation indirectly.
Which means you are adjusting your maximum allowable timestep. So if you
are constrained by the timestep of 1e-3, but you insist on decreasing
the characteristic length scale of the fluid conduction scheme
(decreasing sphere size), then you need to make some sacrifices
elsewhere. At least, you can demonstrate this is the root of your
instability by manually controlling the diffusion coefficient via
python:

thermal.minimumFluidCondDist=rMean
thermal.fluidConductionAreaFactor=0.1

This means you have a fluid area that is anomalously large compared to
the rest of your triangulation, or a length that is anomalously small. I
leave it to you to play with these factors to determine which one it is.

By the way, depending on the sensitivity of the triangulation (it can be
quite sensitive when you have a wide range of vertex weights (sphere
radii) ), you need to isolate the problem from any sort of external
stochasticity such as parallelized compaction such as you are showing
here. You have a slightly different triangulation each time (even using
seed in make cloud). Thus, best practice is to export the packing and
then import the identical packing each time.

Cheers,

Robert