You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think that some further clarification in the docs is necessary on how exactly strain-rate-dependent nonlinear rheology is supported, since this was the only part of my "Functionality" check that gave me trouble. The rheology section of the docs describes how the viscosity $\eta$ may depend on the strain rate $\dot \epsilon$, and the continental_rift example uses this with various (non-$1$) values of $n$ in different layers. This means that equation 1.4 is now a nonlinear function of $u$, and thus equation 2.3 is using an "old" value of $u$ to compute $\eta$. This seems to be confirmed based on looking at the source code - $\eta$ is computed at each particle location based on the strain rate there, and then then viscosity is considered to be independent of velocity during the next Stokes solve. If I'm correct in my characterization above, this should at least be noted more clearly in the documentation, since I believe that some other packages would perform a nonlinear solve to solve these nonlinear Stokes equations, for example by repeatedly fixing the viscosity based on the last value of $u$ and then re-solving the linear Stokes equations within each time step. For comparison, looking in the ASPECT manual, I see that they support both "single Stokes" and "iterated Stokes" options for their solve. I think you're doing the former, but potential users might wonder if you support the latter.
The text was updated successfully, but these errors were encountered:
In fact, the details about how Mandyoc deals with the non-linear flow were not explained in the documentation. Now we added this information after the rheology section. The non-linear iterations are calculated in the function veloc_total(), starting on line 37 of the file veloc_total.cpp.
Thanks! My apologies for not examining the code or output carefully enough. I can indeed see this outer loop in veloc_total.cpp and the output when I run the continental_rift example is more clear with your new documentation.
I think that some further clarification in the docs is necessary on how exactly strain-rate-dependent nonlinear rheology is supported, since this was the only part of my "Functionality" check that gave me trouble. The rheology section of the docs describes how the viscosity$\eta$ may depend on the strain rate $\dot \epsilon$ , and the $n$ in different layers. This means that equation 1.4 is now a nonlinear function of $u$ , and thus equation 2.3 is using an "old" value of $u$ to compute $\eta$ . This seems to be confirmed based on looking at the source code - $\eta$ is computed at each particle location based on the strain rate there, and then then viscosity is considered to be independent of velocity during the next Stokes solve. If I'm correct in my characterization above, this should at least be noted more clearly in the documentation, since I believe that some other packages would perform a nonlinear solve to solve these nonlinear Stokes equations, for example by repeatedly fixing the viscosity based on the last value of $u$ and then re-solving the linear Stokes equations within each time step. For comparison, looking in the ASPECT manual, I see that they support both "single Stokes" and "iterated Stokes" options for their solve. I think you're doing the former, but potential users might wonder if you support the latter.
continental_rift
example uses this with various (non-$1$) values ofThe text was updated successfully, but these errors were encountered: