[cig-commits] [commit] knepley/upgrade-petsc-interface: Made some of the needed changes to the manual. Not yet complete. (94aa2ec)
cig_noreply at geodynamics.org
cig_noreply at geodynamics.org
Tue Jan 14 13:03:47 PST 2014
Repository : ssh://geoshell/pylith
On branch : knepley/upgrade-petsc-interface
Link : https://github.com/geodynamics/pylith/compare/8c284b970cccd41f17793a977d618698f6ad2974...94aa2ec865fab9e6e74062842e900cc182261e16
>---------------------------------------------------------------
commit 94aa2ec865fab9e6e74062842e900cc182261e16
Author: Charles Williams <C.Williams at gns.cri.nz>
Date: Wed Jan 15 10:03:40 2014 +1300
Made some of the needed changes to the manual. Not yet complete.
>---------------------------------------------------------------
94aa2ec865fab9e6e74062842e900cc182261e16
doc/userguide/materials/materials.lyx | 93 ++++++++++++++++++++++++++++-------
doc/userguide/runpylith/runpylith.lyx | 39 ++++++++++++---
2 files changed, 106 insertions(+), 26 deletions(-)
diff --git a/doc/userguide/materials/materials.lyx b/doc/userguide/materials/materials.lyx
index f91432c..6b7f6cb 100644
--- a/doc/userguide/materials/materials.lyx
+++ b/doc/userguide/materials/materials.lyx
@@ -1211,6 +1211,12 @@ stress4
\end_layout
\begin_layout Subsection
+\begin_inset CommandInset label
+LatexCommand label
+name "sub:Stable-time-step"
+
+\end_inset
+
Stable time step
\end_layout
@@ -1220,12 +1226,20 @@ s.
In quasi-static simulations the stability of the implicit time stepping
scheme does not depend on the time step; instead, the stable time step
is associated with the accuracy of the solution.
+ For viscoelastic materials the stable time step is 1/5 of the minimum viscoelas
+tic relaxation time.
In purely elastic materials, the accuracy is independent of the time step,
so the stable time step is infinite.
- For viscoelastic materials we set the stable time step to be 1/5 of the
- relaxation time.
+ The same is true for elastoplastic materials, since there is no inherent
+ time scale for these problems.
+ Depending on the loading rate, however, it is possible to impose too great
+ a load in a given time step, and the resulting solution may be inaccurate
+ or divergent.
+ Caution must be used in assigning time step sizes for elastoplastic problems,
+ and the linear and nonlinear convergence should be monitored closely.
In quasi-static simulations we check the stable time step at every time
step.
+
\end_layout
\begin_layout Standard
@@ -1296,8 +1310,19 @@ where
\end_layout
\begin_layout Standard
-The stable time steps for each cell can be included in the output with the
- other
+The stable time step is used in all three of the time stepping schemes used
+ by PyLith (see Subsection
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Time-Stepping"
+
+\end_inset
+
+).
+ In general, an error is generated if the user attempts to use a time step
+ size larger than the stable time step.
+ The stable time steps for each cell can be included in the output with
+ the other
\family typewriter
cell_info_fields
\family default
@@ -2601,16 +2626,24 @@ K
follows the evolution equations
\begin_inset Formula
\begin{equation}
-\underline{\dot{q}}^{i}+\frac{1}{\lambda_{i}}\underline{q}^{i}=\underline{\dot{e}}.\label{eq:20}
+\underline{\dot{q}}^{i}+\frac{1}{\tau_{i}}\underline{q}^{i}=\underline{\dot{e}}.\label{eq:20}
\end{equation}
\end_inset
The
-\begin_inset Formula $\lambda_{i}$
+\begin_inset Formula $\tau_{i}$
+\end_inset
+
+ are the relaxation times for each Maxwell model:
+\begin_inset Formula
+\begin{equation}
+\tau_{i}=\frac{\eta_{i}}{\mu_{tot}\mu_{i}}\:.\label{eq:21-1}
+\end{equation}
+
\end_inset
- are the relaxation times for each Maxwell model.
+
\end_layout
\begin_layout Standard
@@ -2647,7 +2680,7 @@ where
an integral equation:
\begin_inset Formula
\begin{equation}
-\underline{S}\left(t\right)=\intop_{-\infty}^{t}\mu\left(t-\tau\right)\underline{\dot{e}}\, d\tau\,.\label{eq:22}
+\underline{S}\left(t\right)=\intop_{-\infty}^{t}\mu\left(t-T\right)\underline{\dot{e}}\, dT\,.\label{eq:22}
\end{equation}
\end_inset
@@ -2655,7 +2688,7 @@ where
If we assume the modulus function in Prony series form we obtain
\begin_inset Formula
\begin{equation}
-\mu\left(t\right)=\mu_{tot}\left(\mu_{0}+\sum_{i=1}^{N}\mu_{i}\exp\frac{-t}{\lambda_{i}}\right)\,,\label{eq:23}
+\mu\left(t\right)=\mu_{tot}\left(\mu_{0}+\sum_{i=1}^{N}\mu_{i}\exp\frac{-t}{\tau_{i}}\right)\,,\label{eq:23}
\end{equation}
\end_inset
@@ -2683,7 +2716,7 @@ If we assume the material is undisturbed until a strain is suddenly applied
at time zero, we can divide the integral into
\begin_inset Formula
\begin{equation}
-\intop_{-\infty}^{t}\left(\cdot\right)\, d\tau=\intop_{-\infty}^{0^{-}}\left(\cdot\right)\, d\tau+\intop_{0^{-}}^{0^{+}}\left(\cdot\right)\, d\tau+\intop_{0^{+}}^{t}\left(\cdot\right)\, d\tau\,.\label{eq:27}
+\intop_{-\infty}^{t}\left(\cdot\right)\, dT=\intop_{-\infty}^{0^{-}}\left(\cdot\right)\, dT+\intop_{0^{-}}^{0^{+}}\left(\cdot\right)\, dT+\intop_{0^{+}}^{t}\left(\cdot\right)\, dT\,.\label{eq:27}
\end{equation}
\end_inset
@@ -2704,7 +2737,7 @@ reference "eq:22"
,
\begin_inset Formula
\begin{equation}
-\underline{S}\left(t\right)=2\mu\left(t\right)\left(\underline{e}_{0}-\underline{e}^{I}\right)+\underline{S}^{I}+2\int_{0}^{t}\mu\left(t-\tau\right)\underline{\dot{e}}\left(\tau\right)\, d\tau\,,\label{eq:28}
+\underline{S}\left(t\right)=2\mu\left(t\right)\left(\underline{e}_{0}-\underline{e}^{I}\right)+\underline{S}^{I}+2\int_{0}^{t}\mu\left(t-T\right)\underline{\dot{e}}\left(T\right)\, dT\,,\label{eq:28}
\end{equation}
\end_inset
@@ -2730,7 +2763,7 @@ reference "eq:28"
, we obtain
\begin_inset Formula
\begin{equation}
-\underline{S}\left(t\right)=2\mu_{tot}\left\{ \mu_{0}\underline{e}\left(t\right)+\sum_{i=1}^{N}\left[\mu_{i}\exp\frac{-t}{\lambda_{i}}\left(\underline{e}_{0}+\intop_{0}^{t}\exp\frac{t}{\lambda_{i}}\underline{\dot{e}}\left(\tau\right)\, d\tau\right)\right]-\underline{e}^{I}\right\} +\underline{S}^{I}\,.\label{eq:29}
+\underline{S}\left(t\right)=2\mu_{tot}\left\{ \mu_{0}\underline{e}\left(t\right)+\sum_{i=1}^{N}\left[\mu_{i}\exp\frac{-t}{\tau_{i}}\left(\underline{e}_{0}+\intop_{0}^{t}\exp\frac{t}{\tau_{i}}\underline{\dot{e}}\left(T\right)\, dT\right)\right]-\underline{e}^{I}\right\} +\underline{S}^{I}\,.\label{eq:29}
\end{equation}
\end_inset
@@ -2750,7 +2783,7 @@ We then split each integral into two ranges: from 0 to
, and define each integral as
\begin_inset Formula
\begin{equation}
-\underline{i}_{i}^{1}\left(t\right)=\intop_{0}^{t}\exp\frac{\tau}{\lambda_{i}}\underline{\dot{e}}\left(\tau\right)\, d\tau\,.\label{eq:30}
+\underline{i}_{i}^{1}\left(t\right)=\intop_{0}^{t}\exp\frac{T}{\tau_{i}}\underline{\dot{e}}\left(T\right)\, dT\,.\label{eq:30}
\end{equation}
\end_inset
@@ -2758,7 +2791,7 @@ We then split each integral into two ranges: from 0 to
The integral then becomes
\begin_inset Formula
\begin{equation}
-\underline{i}_{i}^{1}\left(t\right)=\underline{i}_{i}^{1}\left(t_{n}\right)+\intop_{t_{n}}^{t}\exp\frac{\tau}{\lambda_{i}}\underline{\dot{e}}\left(\tau\right)\, d\tau\,.\label{eq:31}
+\underline{i}_{i}^{1}\left(t\right)=\underline{i}_{i}^{1}\left(t_{n}\right)+\intop_{t_{n}}^{t}\exp\frac{T}{\tau_{i}}\underline{\dot{e}}\left(T\right)\, dT\,.\label{eq:31}
\end{equation}
\end_inset
@@ -2766,7 +2799,7 @@ The integral then becomes
Including the negative exponential multiplier:
\begin_inset Formula
\begin{equation}
-\underline{h}_{i}^{1}\left(t\right)=\exp\frac{-t}{\lambda_{i}}\underline{i}_{i}^{1}\,.\label{eq:32}
+\underline{h}_{i}^{1}\left(t\right)=\exp\frac{-t}{\tau_{i}}\underline{i}_{i}^{1}\,.\label{eq:32}
\end{equation}
\end_inset
@@ -2774,7 +2807,7 @@ Including the negative exponential multiplier:
Then
\begin_inset Formula
\begin{equation}
-\underline{h}_{i}^{1}\left(t\right)=\exp\frac{-\Delta t}{\lambda_{i}}\underline{h}_{i}^{1}\left(t_{n}\right)+\Delta\underline{h}_{i}\,,\label{eq:33}
+\underline{h}_{i}^{1}\left(t\right)=\exp\frac{-\Delta t}{\tau_{i}}\underline{h}_{i}^{1}\left(t_{n}\right)+\Delta\underline{h}_{i}\,,\label{eq:33}
\end{equation}
\end_inset
@@ -2782,7 +2815,7 @@ Then
where
\begin_inset Formula
\begin{equation}
-\Delta\underline{h}_{i}=\exp\frac{-t}{\lambda_{i}}\intop_{t_{n}}^{t}\exp\frac{\tau}{\lambda_{i}}\underline{\dot{e}}\left(\tau\right)\, d\tau\,.\label{eq:34}
+\Delta\underline{h}_{i}=\exp\frac{-t}{\tau_{i}}\intop_{t_{n}}^{t}\exp\frac{T}{\tau_{i}}\underline{\dot{e}}\left(T\right)\, dT\,.\label{eq:34}
\end{equation}
\end_inset
@@ -2791,7 +2824,7 @@ Approximating the strain rate as constant over each time step, the solution
may be found as
\begin_inset Formula
\begin{equation}
-\Delta\underline{h}_{i}=\frac{\lambda_{i}}{\Delta t}\left(1-\exp\frac{-\Delta t}{\lambda_{i}}\right)\left(\underline{e}-\underline{e}_{n}\right)=\Delta h_{i}\left(\underline{e}-\underline{e}_{n}\right)\,.\label{eq:35}
+\Delta\underline{h}_{i}=\frac{\tau_{i}}{\Delta t}\left(1-\exp\frac{-\Delta t}{\tau_{i}}\right)\left(\underline{e}-\underline{e}_{n}\right)=\Delta h_{i}\left(\underline{e}-\underline{e}_{n}\right)\,.\label{eq:35}
\end{equation}
\end_inset
@@ -2800,7 +2833,7 @@ The approximation is singular for zero time steps, but a series expansion
may be used for small time-step sizes:
\begin_inset Formula
\begin{equation}
-\Delta h_{i}\approx1-\frac{1}{2}\left(\frac{\Delta t}{\lambda_{i}}\right)+\frac{1}{3!}\left(\frac{\Delta t}{\lambda_{i}}\right)^{2}-\frac{1}{4!}\left(\frac{\Delta t}{\lambda_{i}}\right)^{3}+\cdots\,.\label{eq:36}
+\Delta h_{i}\approx1-\frac{1}{2}\left(\frac{\Delta t}{\tau_{i}}\right)+\frac{1}{3!}\left(\frac{\Delta t}{\tau_{i}}\right)^{2}-\frac{1}{4!}\left(\frac{\Delta t}{\tau_{i}}\right)^{3}+\cdots\,.\label{eq:36}
\end{equation}
\end_inset
@@ -2900,7 +2933,15 @@ c models.
\begin_inset Formula $N=3.$
\end_inset
+ The stable time step is equal to 1/5 of the minimum relaxation time for
+ all of the Maxwell models (equation
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "eq:21-1"
+\end_inset
+
+).
\end_layout
\begin_layout Standard
@@ -4160,6 +4201,20 @@ reference "eq:42"
\end_layout
\begin_layout Standard
+Once the stresses are computed for the current time step, we can compute
+ the relaxation time (used in computing the stable time step) by first computing
+ an effective viscosity:
+\begin_inset Formula
+\begin{equation}
+\eta_{eff}=\frac{1}{\phantom{}^{t+\Delta t}\gamma}=\frac{S_{0}^{n}}{\dot{e}_{0}\sqrt{\phantom{}^{t+\Delta t}J_{2}^{\prime}}}
+\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
To compute the tangent stress-strain relation, we need to compute the first
term in Equation
\begin_inset CommandInset ref
diff --git a/doc/userguide/runpylith/runpylith.lyx b/doc/userguide/runpylith/runpylith.lyx
index 0e314b1..cb236f7 100644
--- a/doc/userguide/runpylith/runpylith.lyx
+++ b/doc/userguide/runpylith/runpylith.lyx
@@ -3601,6 +3601,12 @@ www.mcs.anl.gov/petsc/petsc-as/documentation/index.html
\end_layout
\begin_layout Subsection
+\begin_inset CommandInset label
+LatexCommand label
+name "sub:Time-Stepping"
+
+\end_inset
+
Time Stepping
\end_layout
@@ -3616,6 +3622,15 @@ PyLith provides three choices for controlling the time step in time-dependent
In general, quasi-static simulations should use automatically calculated
time steps and dynamic simulations should use a uniform, user-specified
time step.
+ Note that all three of the time stepping schemes make use of the computed
+ stable time step (see
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Stable-time-step"
+
+\end_inset
+
+).
\end_layout
\begin_layout Standard
@@ -3638,8 +3653,8 @@ Uniform, User-Specified Time Step
\begin_layout Standard
With a uniform, user-specified time step, the user selects the time step
that is used over the entire duration of the simulation.
- This value is used whether or not it yields a stable solution, so users
- should be careful when selecting the time-step value.
+ If this value exceeds the computed stable time step at any time, PyLith
+ will terminate with an error.
The properties for the uniform, user-specified time step are:
\end_layout
@@ -3704,6 +3719,9 @@ reference "sec:FileFormat:TimeStepUser"
If the total duration exceeds the time associated with the time steps,
then a flag determines whether to cycle through the time steps or to use
the last specified time step for the time remaining.
+ Similar to the uniform time step, if the user-specified time step size
+ exceeds the computed stable time step at any time, PyLith will terminate
+ with an error.
The properties for the nonuniform, user-specified time step are:
\end_layout
@@ -3762,15 +3780,22 @@ Nonuniform, Automatic Time Step
\end_layout
\begin_layout Standard
-This time-step implementation automatically calculates a stable time step
+This time-step implementation automatically calculates a time step size
based on the constitutive model and rate of deformation.
As a result, this choice for choosing the time step relies on accurate
calculation of a stable time step within each finite-element cell by the
constitutive models.
- In order to provide some control over the time-step selection, the user
- can control the frequency that a new time step is calculated, the time
- step to use relative to the value determined by the constitutive models,
- and a maximum value for the time step.
+ To provide some control over the time-step selection, the user can control
+ the frequency with which a new time step is calculated, the time step to
+ use relative to the value determined by the constitutive models, and a
+ maximum value for the time step.
+ Note that the stability factor allows the computed time step size to exceed
+ the computed stable time step.
+ A stability factor of 1.0 would provide a time step size equal to the stable
+ time step, while a value of 2.0 (default value) would provide a time step
+ size equal to 1/2 the stable time step.
+ Caution should be used when adjusting the stability factor to values less
+ than 1.0, as the large time step size may result in inaccurate solutions.
The properties for controlling the automatic time-step selection are:
\end_layout
More information about the CIG-COMMITS
mailing list