[aspect-devel] problem with latent heat model

FELIPE ORELLANA ROVIROSA f_orellana at berkeley.edu
Sat Jun 16 20:15:34 PDT 2018


 Hallo Juliane,

      Thanks for replying.

      I have been trying turning off compositional fields, and nullifying
some stuff. I set the CS to zero, and it worked; then I turned on (CS =
-2.6 MPa/K), and it worked too !

     What is causing trouble here is the compositional field I have in a
certain region of the domain.

     If I just superimpose the compositional field (defined by z
coordinate), it crashes with the non-convergence of the advection solver.
    If I disguise the compositional field via an interface with a phase
change (with density jump=0 and CS = 0, or infinite), it crashes with the
same error "The iterative advection solver " "did not converge.''

   I am a little lost on what's wrong here, but, following the debugs and
trials I have performed, it is certainly a problem in my compositional
field definition, which is playing over this latent heat model
implementation (I had successfully implemented compositional fields but
with other material models).

do you have advices on how the compositional field (depth-pressure
dependent layer) should be defined, in this latent heat model?

thank you,
cheers,
Felipe



On Sat, Jun 16, 2018 at 3:28 PM, Juliane Dannberg <judannberg at gmail.com>
wrote:

> Hi Felipe,
>
> the error message you sent just tells us that the advection solver does
> not converge. That can have many different reasons.
>
> To test if this is really a problem with the latent heat release, you can
> set the Clapeyron slopes of your phase transitions to zero, which means
> that no latent heat will be released any more. If you have assigned a
> density jump to these transitions, and your model runs after this change,
> you will also see where in your model the transitions are.
>
> To answer your other question, you assign a phase transition temperature
> and pressure/depth, and this is the temperature where the phase transition
> occurs for this pressure. You also provide a Clapeyron slope that describes
> how this temperature changes with pressure. So if material crosses a phase
> transition and is fast enough, it should follow this Clapeyron slope (until
> all material has undergone the phase transition), and after that follow the
> adiabat again. So the phase transition temperature you provide is both the
> temperature above and below the phase transition, if you take into account
> how it changes with pressure.
>
> And yes, to be consistent, your initial condition should include the
> temperature change across phase transitions. But if you only care about the
> long time evolution of the model, the temperature profile will evolve to a
> state that includes these temperature changes anyway, so it is not strictly
> necessary.
>
> --Juliane
>
> On 06/14/2018 10:38 PM, FELIPE ORELLANA ROVIROSA wrote:
>
>
> Hi all,
>
>    I am trying to implement a model of a 3D convecting system with phase
> changes interfaces. I am using the latent heat material model. For testing,
> I am implementing only one transition (at 660 km).
>
>    My model runs, so I assume the syntax is correct. But, my model fails
> on timestep 0. I pasted the error message at the end.
>
>    I have some questions regarding the implementation of this material
> model:
>
>    When setting the Phase transition temperatures, what temperature should
> be provided? the T above or below the phase transition interface, or before
> or after the transition occurs? I tried both cases but the model fails
> similarly.
>
>    Because the phase transitions exo/endo-termic, they will
> release/absorve latent heat, and alter the temperature field during
> convection (I have turned on and off the heating model). So, does the
> Temperature Initial Condition needs to match the expected jump in
> temperature due to the phase change across the interface where it is
> occurring? I have tried doing and not doing this but the model fails
> anyways.
>
>   what is going on?
>
> cheers,
>
> Felipe
> ----------------------------------------------------
> Exception on processing:
>
> --------------------------------------------------------
> An error occurred in line <479> of file </root/SEISMO/usr-local-src/
> aspect/aspect-1.5.0/source/simulator/solver.cc> in function
>     double aspect::Simulator<dim>::solve_advection(const
> aspect::Simulator<dim>::AdvectionField&) [with int dim = 3]
> The violated condition was:
>     false
> The name and call sequence of the exception was:
>     ExcMessage (std::string("The iterative advection solver " "did not
> converge. It reported the following error:\n\n") + exc.what())
> Additional Information:
> The iterative advection solver did not converge. It reported the following
> error:
>
>
> --------------------------------------------------------
> An error occurred in line <1042> of file </share/apps/deal.II/include/deal.II/lac/solver_gmres.h>
> in function
>     void dealii::SolverGMRES<VectorType>::solve(const MatrixType&,
> VectorType&, const VectorType&, const PreconditionerType&) [with MatrixType
> = dealii::TrilinosWrappers::SparseMatrix, PreconditionerType =
> dealii::TrilinosWrappers::PreconditionILU, VectorType =
> dealii::TrilinosWrappers::MPI::Vector]
> The violated condition was:
>     iteration_state == SolverControl::success
> The name and call sequence of the exception was:
>     SolverControl::NoConvergence (accumulated_iterations, last_res)
> Additional Information:
> Iterative method reported convergence failure in step 0. The residual in
> the last step was nan.
>
> This error message can indicate that you have simply not allowed a
> sufficiently large number of iterations for your iterative solver to
> converge. This often happens when you increase the size of your problem. In
> such cases, the last residual will likely still be very small, and you can
> make the error go away by increasing the allowed number of iterations when
> setting up the SolverControl object that determines the maximal number of
> iterations you allow.
> The other situation where this error may occur is when your matrix is not
> invertible (e.g., your matrix has a null-space), or if you try to apply the
> wrong solver to a matrix (e.g., using CG for a matrix that is not symmetric
> or not positive definite). In these cases, the residual in the last
> iteration is likely going to be large.
> --------------------------------------------------------
>
> --------------------------------------------------------
>
> Aborting!
> ----------------------------------------------------
> --------------------------------------------------------------------------
> mpiexec noticed that the job aborted, but has no info as to the process
> that caused that situation.
> ---------------------------------------------
>
>
> _______________________________________________
> Aspect-devel mailing listAspect-devel at geodynamics.orghttp://lists.geodynamics.org/cgi-bin/mailman/listinfo/aspect-devel
>
>
> ----------------------------------------------------------------------
> Juliane Dannberg
> Project Scientist, UC Davis
> jdannberg.github.io
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/aspect-devel/attachments/20180616/c170e5df/attachment-0001.html>


More information about the Aspect-devel mailing list