[aspect-devel] problem with latent heat model
Juliane Dannberg
judannberg at gmail.com
Sat Jun 16 15:28:27 PDT 2018
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 list
> Aspect-devel at geodynamics.org
> http://lists.geodynamics.org/cgi-bin/mailman/listinfo/aspect-devel
----------------------------------------------------------------------
Juliane Dannberg
Project Scientist, UC Davis
jdannberg.github.io <https://jdannberg.github.io/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/aspect-devel/attachments/20180616/58f022eb/attachment.html>
More information about the Aspect-devel
mailing list