diff --git a/prisms_pf_user_guide_files/prismspf_user_guide.pdf b/prisms_pf_user_guide_files/prismspf_user_guide.pdf index 0faaaf3c1..8c559ed21 100644 Binary files a/prisms_pf_user_guide_files/prismspf_user_guide.pdf and b/prisms_pf_user_guide_files/prismspf_user_guide.pdf differ diff --git a/prisms_pf_user_guide_files/prismspf_user_guide.tex b/prisms_pf_user_guide_files/prismspf_user_guide.tex index 81bb24449..9918ad20e 100644 --- a/prisms_pf_user_guide_files/prismspf_user_guide.tex +++ b/prisms_pf_user_guide_files/prismspf_user_guide.tex @@ -929,10 +929,12 @@ \subsubsection{residualLHS} From the formulation file in the precipitateEvolution application, the residual equation for the mechanical displacement is: \begin{gather} -R = \int_{\Omega} \nabla w : C(\eta_1, \eta_2, \eta_3) : \left( \epsilon - \epsilon^0(c,\eta_1, \eta_2, \eta_3)\right) ~dV = 0 +R = \int_{\Omega} \nabla w : C(\eta_1, \eta_2, \eta_3) : \left( \epsilon - \epsilon^0(c,\eta_1, \eta_2, \eta_3)\right) ~dV = 0 \label{LHS_residual_eqn} \end{gather} -To turn this equation into a matrix inversion problem, we can linearize it with Newton's method. (It can also be directly written as a matrix inversion problem. For historical purposes we do the linearization and for some mundane reasons, non-zero Dirichlet boundary conditions do not currently work with that approach. Therefore, for the meantime, we recommend the approach below.) The solution $u$ is found through the following expression, given an initial guess $u_0$: +In PRISMS-PF, matrix inversion problems are always written as Newton's method iterations. For linear equations, like the one above, the solution is reached in a single Newton step. The reason for this approach is two-fold. First, it provides an identical user interface for linear and nonlinear problems. Second, it enables the efficient handling of constraints for when inhomogeneous Dirichlet boundary conditions are used. + +To write the above equations in terms of a Newton iteration, the solution, $u$, can be written as the sum of an initial guess, $u_0$, and an update, $\Delta u$: \begin{equation} R(u) = R(u_0 + \Delta u) = R(u_0) + \int_{\Omega} \left. \frac{\delta R(u)}{\delta u}\right|_{u=u_0} \Delta u ~dV = 0 \label{matrix_eqn} @@ -954,7 +956,6 @@ \subsubsection{residualLHS} Inserting this into \ref{matrix_eqn}: - \begin{equation} R(u_0) + \int_{\Omega} -\nabla \cdot (\nabla w: C) \Delta u ~dV = 0 \end{equation} @@ -966,7 +967,7 @@ \subsubsection{residualLHS} Thus, the full equation relating $u_0$ and $\Delta u$ is: \begin{equation} -\int_{\Omega} \nabla w : \underbrace{C : \nabla (\Delta u)}_{r_{ux}^{LHS}} dV = -\int_{\Omega} \nabla w : \underbrace{(\epsilon-\epsilon^0)}_{r_{ux}} ~dV +\int_{\Omega} \nabla w : \underbrace{C : \nabla (\Delta u)}_{r_{ux}^{LHS}} dV = -\int_{\Omega} \nabla w : C :\underbrace{(\epsilon(u_0)-\epsilon^0)}_{r_{ux}} ~dV \end{equation} The above values of $r_{ux}^{LHS}$ and $r_{ux}$ are used to define the residuals in the equations.h file. A similar process can be undertaken for other elliptic problems. diff --git a/prismspf_user_guide.pdf b/prismspf_user_guide.pdf index 0faaaf3c1..8c559ed21 100644 Binary files a/prismspf_user_guide.pdf and b/prismspf_user_guide.pdf differ diff --git a/version b/version index 7ae218d15..e9307ca57 100644 --- a/version +++ b/version @@ -1 +1 @@ -2.0.2 (pre) +2.0.2 diff --git a/version_changes.md b/version_changes.md index 861f38895..5bf03c443 100644 --- a/version_changes.md +++ b/version_changes.md @@ -1,5 +1,5 @@ # Version 2.0.2pre -Minor ongoing updates to v2.0.1, planned to be released in early to mid 2018. +Minor updates to v2.0.1, released in May 2018. Added functionality: - Nucleation parameters can now be set separately for each nucleating variable. Thus, the input for nucleation in parameters.in has changed. A new core library function "weightedDistanceFromNucleusCenter" has been created to streamline the introduction of nuclei in equations.h (as well streamlining some areas of the core library). See the "nucleationModel" app to view the changes. @@ -14,6 +14,7 @@ Other changes: - PRISMS-PF is now compatible with deal.II version 9.0 (and still is compatible with version 8.4 and 8.5). - Changed the file name convention so that when the maximum number of time steps is between powers of 10, it isn't padded by an extra 0 in front (e.g. solution-02000.pvtu becomes solution-2000.pvtu). - A comprehensible error message is now given if a simulation is set to read a checkpoint file but can't find it. +- The description of how to implement time independent equations in the user guide has been improved. # Version 2.0.1 Minor update to v2.0, released in November 2017. The biggest change is the introduction of a checkpoint/restart system.