[aspect-devel] Material models with 3-D ASCII input

Marie Kajan marie.kajan at gmail.com
Wed Jan 31 11:39:27 PST 2018


Another option would be to make the AsciiDataInitial class a *member
> variable*, rather than a base class. Presumably you do it the way you show
> above because you want to access the elements of the AsciiDataInitial
> member functions from the evaluate() function of your material model. But
> you can also achieve this by making the AsciiDataInitial thing a member.

Actually, my understanding of C++ terminology may be lacking, but I think
this might be what I was trying to describe in #2 and what I tried to
implement myself in #3. I'll dump a bunch of code here and you can correct
me if I'm wrong.

The relevant parts of my material model header file:

#include <aspect/material_model/interface.h>
#include <aspect/simulator_access.h>
#include <aspect/utilities.h>

namespace aspect
    namespace MaterialModel
        using namespace dealii;

        template <int dim>
        class XXXXX: public MaterialModel::Interface<dim>, public
            XXXXX ();

            initialize ();


            aspect::Utilities::AsciiDataInitial<dim> field;


And the relevant parts of my material model main code:

#include <aspect/material_model/XXXXX.h>
#include <aspect/adiabatic_conditions/interface.h>
#include <aspect/utilities.h>
#include <aspect/lateral_averaging.h>
#include <fstream>
#include <iostream>

namespace aspect
    namespace MaterialModel
        template <int dim>

        template <int dim>
            std::cout << "initialize start" << std::endl;
            std::cout << "initialize end" << std::endl;

...and I won't go further than that because the error pops up here. This is
the AsciiDataInitial::initialize() function in utilities.cc:

template <int dim>
AsciiDataInitial<dim>::initialize (const unsigned int components)
    std::cout << "ascii initialize before throw" << std::endl;
    AssertThrow ((dynamic_cast<const GeometryModel::SphericalShell<dim>*>
        || (dynamic_cast<const GeometryModel::Chunk<dim>*>
(&this->get_geometry_model())) != 0
        || (dynamic_cast<const GeometryModel::Box<dim>*>
(&this->get_geometry_model())) != 0,
        ExcMessage ("This ascii data plugin can only be used when using "
                               "a spherical shell, chunk or box
    std::cout << "ascii initialize after throw" << std::endl;

...it goes on, but I commented out different parts and found that I get
this type of error for any line with '&this->' or 'this->':

[marie at lehmann aspect]$ ./aspect /home/marie/cookbooks/shell_simple_3d_test.prm

-- This is ASPECT, the Advanced Solver for Problems in Earth's ConvecTion.
--     . version 2.0.0-pre (master, 179d6da)
--     . using deal.II 8.5.0
--     . using Trilinos 12.10.1
--     . using p4est 1.1.0
--     . running in DEBUG mode
--     . running with 1 MPI process

initialize start
ascii initialize before throw
[lehmann:15947] *** Process received signal ***
[lehmann:15947] Signal: Segmentation fault (11)
[lehmann:15947] Signal code: Address not mapped (1)
[lehmann:15947] Failing at address: 0xdb0
[lehmann:15947] [ 0] /lib64/libc.so.6(+0x35250)[0x7f29709e4250]
[lehmann:15947] [ 1] ./aspect(_ZNK6aspect15SimulatorAccessILi
[lehmann:15947] [ 2] ./aspect(_ZN6aspect9Utilities16AsciiData
[lehmann:15947] [ 3] ./aspect(_ZN6aspect13MaterialModel19XXXX
[lehmann:15947] [ 4] ./aspect(_ZN6aspect9SimulatorILi3EEC1EP1
[lehmann:15947] [ 5] ./aspect(main+0x7de)[0x997c0b]
[lehmann:15947] [ 6] /lib64/libc.so.6(__libc_start_
[lehmann:15947] [ 7] ./aspect[0x8464d9]
[lehmann:15947] *** End of error message ***
Segmentation fault (core dumped)

I'm not sure if this means that the AsciiDataInitial functions as written
are incompatible with this type of use, or if I could make this work by
altering something in my own code. I can dump the entire code files here if
that would make things easier to figure out.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/aspect-devel/attachments/20180131/4771c246/attachment.html>

More information about the Aspect-devel mailing list