[aspect-devel] problem with passive tracers in ASPECT

Rene Gassmoeller rene.gassmoeller at mailbox.org
Mon Feb 12 09:28:44 PST 2018


Hi Alexander,

your problem has two aspects, let me explain what is happening in two steps:

1. The crash you see is not caused by the particles, but by the fact
that you add a compositional fields during a restart. While we support
many changes during restarts (e.g. switching boundary conditions), we
can not guarantee all changes you make between restarts work. This is
one particular case that can not work very well. I.e. if you add
additional compositional fields during a restart, what should their
initial condition be? Restarts should read the current state of the
field from the restart file, but there is no compositional field in the
restart file (because there was no field when writing the file). One
could use the initial condition you provided in the input file, but this
is simply a case that is currently not checked and implemented, since
the initial condition is only applied in timestep 0, if no restart is
happening. This is something that could be implemented if you need it,
and we could discuss how to do this. Sorry for not providing a more
useful error message, but as I said, there are just too many changes you
could do during a restart that we can check them all.

2. In principle you could remove the compositional fields (if your
particles are passive you do not need them anyway), then the model will
run. This will likely not solve your problem with the particles though,
because particles are currently also just generated when you start a
computation, i.e. you will advect exactly 0 particles every step. We
already had the request for injecting particles at a later time (see
https://github.com/geodynamics/aspect/pull/861), but this work stalled a
bit. If this is important to you, you could contact Gerry or Harsha
(through Github, and I think both are on this mailing list as well) to
discuss if their approach would work for you.

In short: If you want a running model right away without changes to the
code you will need to start the model with the particles already in there.

Hope that helps,

Rene


On 02/09/2018 01:32 PM, Alexander Evseev wrote:
> Dear colleagues,
>
> I have a problems with using passive tracers in ASPECT.
>
> 1. I started a calculation with input file convection-box.prm (almost
> the same with input file cookbook/convection-box.prm from ASPECT
> distribution).
> 2. Then I've added passive tracers (add subsections Particles,
> Compositional fields, Initial composition model to input file) and
> resumed a computation from a checkpoint. Just after start I've got an
> error in log (you can see it below).
>
> Both calculations were made on the same number of processors (8).
>
> Input files are attached to email (1. convection-box.prm, 2.
> convection-box-resume.prm)
>
> I've used docker version of ASPECT (gassmoeller/aspect)
>
> Please help me.
>
> log from second calculation >>>>>>>
>
> dealii at 6c2a9c1d9d83:~/aspect/example$ mpirun -np 8 ../aspect-release
> convection-box-resume.prm
> -----------------------------------------------------------------------------
> -- This is ASPECT, the Advanced Solver for Problems in Earth's ConvecTion.
> --     . version 2.0.0-pre
> --     . running in OPTIMIZED mode
> --     . running with 8 MPI processes
> --     . using Trilinos
> -----------------------------------------------------------------------------
> *** Resuming from snapshot!
> Number of active cells: 4,096 (on 7 levels)
> Number of degrees of freedom: 87,430 (33,282+4,225+16,641+16,641+16,641)
>
> *** Timestep 2000:  t=0.499989 seconds
> ----------------------------------------------------
> Exception 'ExcMessage ("The " + field_name + " equation can not be
> solved, because the matrix is zero, " "but the right-hand side is
> nonzero.")' on rank 6 on processing:
> --------------------------------------------------------
> *An error occurred in line <425> of file
> </home/dealii/aspect/source/simulator/solver.cc> in function
>     double aspect::Simulator<dim>::solve_advection(const
> aspect::Simulator<dim>::AdvectionField&) [with int dim = 2]
> The violated condition was:
>     system_matrix.block(block_idx, block_idx).linfty_norm() >
> std::numeric_limits<double>::min()
> Additional information:
>     The temperature equation can not be solved, because the matrix is
> zero, but the right-hand side is nonzero.*
> --------------------------------------------------------
>
> With best regards,
> Alexander
>
>
>
> _______________________________________________
> Aspect-devel mailing list
> Aspect-devel at geodynamics.org
> http://lists.geodynamics.org/cgi-bin/mailman/listinfo/aspect-devel

-- 
Rene Gassmoeller
http://www.math.colostate.edu/~gassmoel/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/aspect-devel/attachments/20180212/7c6a9223/attachment-0001.html>


More information about the Aspect-devel mailing list