[Camino-users] Membrane crossing error in datasynth
Slater David
David.Slater at chuv.ch
Tue Feb 16 09:29:10 PST 2016
Hi David,
To avoid this error you need to make sure that the displacement of each step (a function of tmax, duration and diffusivity) is less than the smallest inter-membrane spacing.
To avoid this error you could simply increase tmax or reduce the axonal packing density (intracellular volume fraction). The safest fix would be to just increase tmax, say, by a factor of 10.
For a more precise estimate of which tmax to use you can work out the step displacement using the diffusion equation (https://en.wikipedia.org/wiki/Mean_squared_displacement, MSD=6Dt for 3D) and the intermembrane spacing from the defined geometry. Then simply pick a tmax which ensures step-displacement<intermembrane-spacing.
Cheers,
Dave
-----Message d'origine-----
De : camino-users-bounces at www.nitrc.org [mailto:camino-users-bounces at www.nitrc.org] De la part de Romascano David
Envoyé : 16 February 2016 17:04
À : camino-users at www.nitrc.org
Objet : [Camino-users] Membrane crossing error in datasynth
Dear all,
I'd like to run some simulations with 500'000 spins in a 90° crossing of impermeable fibers substrate, but keep running into membrane crossing errors.
The error message is the following :
SEVERE: erroneously detected membrane crossing in diffusion sim!
distance to membrane 1.9630181029853806E-7 is greater than step length 1.9630180844811389E-7 d[0]= 1.2500000012500001E-5 distToPlane= 1.7132384961302227E-7 cosTheta= 0.872757359458229 t=0.023420352 walker 491235 Exception in thread "main" java.lang.RuntimeException: erroneously detected membrane crossing in diffusion sim!
distance to membrane 1.9630181029853806E-7 is greater than step length 1.9630180844811389E-7 d[0]= 1.2500000012500001E-5 distToPlane= 1.7132384961302227E-7 cosTheta= 0.872757359458229 t=0.023420352 walker 491235
at simulation.dynamics.ElasticReflector.amendStep(ElasticReflector.java:136)
at simulation.geometry.substrates.Substrate.amend(Substrate.java:391)
at simulation.dynamics.Walker.update(Walker.java:264)
at simulation.DiffusionSimulation.runMainLoop(DiffusionSimulation.java:589)
at simulation.DiffusionSimulation.nextVoxel(DiffusionSimulation.java:702)
at apps.SyntheticData.execute(SyntheticData.java:74)
at apps.EntryPoint.main(EntryPoint.java:284)
I'm using a tmax of 5'000 for a dynamic duration of 0.05352 seconds and a diffusivity of 0.6e-9.
Does any one knows how to avoid such errors ?
Best regards,
David Romascano
_______________________________________________
Camino-users mailing list
Camino-users at www.nitrc.org
http://www.nitrc.org/mailman/listinfo/camino-users
More information about the Camino-users
mailing list