[aspect-devel] problem with latent heat model

FELIPE ORELLANA ROVIROSA f_orellana at berkeley.edu
Tue Jun 19 12:44:28 PDT 2018


 Hello Juliane,

   I hope you are doing great.

   I have been trying to setup ASPECT with a latent heat material model,
and compositional fields.

  As I wrote you previously, if I don't put the compositional field, it
works no problem.

  I am trying to add some compositional fields, which are layers. For
testing, just trying one layer, defined by depth.

  I have a phase transition defined by pressure, which by itself works. So,
this transition divides the model domain into two subdomains: above and
below.

  I have tried two strategies to implement the compositional field:

  a) The simple one: I just define a layer with a density contrast, somehow
not taking care of any relationship with the two subdomains. When I run it,
it syntactically works, but it crashes on time step 0, by non-convergence
of the advection solver.

 b) The complex one: I define the same layer with density contrast, but
this time, its interface is defined using another phase transition (a ghost
phase transition), with 0 density contrast, 0 latent heat. I do this cause
in other material models, a compositional field layer must be bounded by a
depth where some properties may change (e.g. viscosity prefactors). When I
run it, it syntactically works, but similarly, it crashes on time step 0,
by non-convergence of the advection solver.

What modifications should I make?

the thing is, that both strategies as syntactically correct, but not
possible of being handled by the advection solver..

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/20180619/6203b10c/attachment.html>


More information about the Aspect-devel mailing list