nicholasmr / specfab

Spectral orientation fabric model for polycrystalline materials
GNU General Public License v3.0
11 stars 2 forks source link

Potential Numerical Issue? #1

Open benhills opened 2 years ago

benhills commented 2 years ago

I am playing around with your model to think about timescales for fabric evolution.

I can reproduce your demo result in /demo/fabric-evolution/run-fabric-evolution.py However, if I change the number of time steps, Nt, to 500 instead of 50 (the default value) I get this oscillatory behavior which looks like a numerical artifact. It is especially apparent in the simple shear case although I have not tried all cases. I tried changing the time step which would be my normal approach for a numerical issue but that did not change anything.

I wonder if you can explain this physically (e.g. once the total strain exceeds 1 this weird behavior may be expected).

Thanks for any help! and awesome work on this, very slick model.

Screen Shot 2022-09-01 at 5 34 15 PM

nicholasmr commented 2 years ago

Hi Ben,

I'm very pleased that you find our model useful.

The short answer is that your regularization is too weak, and that you should multiply the regularization matrix by some constant > 1. You'll see, however, that doing so effectively reduces the spectral resolution (L), limiting how strong a single maxima you can model (a1 eigenvalue). This, I guess, is hardly a problem if you are just playing around with fabric timescales etc., else try set L=20 which also comes with a default (calibrated) regularization. See https://github.com/nicholasmr/specfab/wiki/Fabric-evolution#regularization for a pure-shear example of the effect/need for regularization.

We chose the default regularization strength weak enough to reduce its influence on the effective spectral resolution, while also providing sufficient regularization needed for typical large-scale ice-flow model implementations. Put differently, ice parcels in large-scale flow models are unlikely to experience the deformation history you are prescribing, and we can therefore allow ourselves to reduce the strength of regularization a bit in order to gain some spectral resolution (ability to model tighter c-axis distributions for a given L).

Regarding parcel strains exceeding 1, this is a good point. However, one might imagine another parcel deformation experiment with an initial fabric that is not isotropic, but rather with a preexisting strong single maximum. Modelling the fabric evolution up until strain ~1 would be equivalent to continuing the deformation experiment of an initially-isotropic fabric beyond strain = 1.

I hope this makes sense and was useful, else feel free to follow up.

benhills commented 2 years ago

This is very helpful, thank you. I will keep you posted on any significant updates.