Skip to content

Commit

Permalink
improve discussion of time independent equations in the user guide, p…
Browse files Browse the repository at this point in the history
…rep for release of v2.0.2
  • Loading branch information
stvdwtt committed May 29, 2018
1 parent 80c987a commit 4775156
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 6 deletions.
Binary file modified prisms_pf_user_guide_files/prismspf_user_guide.pdf
Binary file not shown.
9 changes: 5 additions & 4 deletions prisms_pf_user_guide_files/prismspf_user_guide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand All @@ -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}
Expand All @@ -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.
Expand Down
Binary file modified prismspf_user_guide.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.0.2 (pre)
2.0.2
3 changes: 2 additions & 1 deletion version_changes.md
Original file line number Diff line number Diff line change
@@ -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.
Expand All @@ -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.
Expand Down

0 comments on commit 4775156

Please sign in to comment.