On 05.08.19 11:23, Joan Delort Ylla wrote:

Dear DuMux Users,

I am working with a 2pncNImin problem in a system using the pseudo component Brine together with CO2 and H2.

For what I understand the properties of H2O, CO2 and Brine are tabulated in my problem. Here's an exert of my fluidsystems file :

    /*!
         * \brief Initialize the fluid system's static parameters generically
         *
         * If a tabulated H2O/Brine component is used, we do our best to create tables that always work.
     */
    static void init()
    {
  init(/*tempMin=*/273.15, /* 0 °C */
/*tempMax=*/573.15, /* 300 °C, MAX is 350 °C */
/*numTemp=*/1000,
/*pMin=*/0.1e6,
/*pMax=*/100e6,/* 100 MPa, MAX is 100 MPa*/
/*numP=*/10000);
    }

    /*!
         * \brief Initialize the fluid system's static parameters using
         *        problem specific temperature and pressure ranges
         *
         * \param tempMin The minimum temperature used for tabulation of water \f$\mathrm{[K]}\f$          * \param tempMax The maximum temperature used for tabulation of water \f$\mathrm{[K]}\f$          * \param nTemp The number of ticks on the temperature axis of the  table of water          * \param pressMin The minimum pressure used for tabulation of water \f$\mathrm{[Pa]}\f$          * \param pressMax The maximum pressure used for tabulation of water \f$\mathrm{[Pa]}\f$          * \param nPress The number of ticks on the pressure axis of the  table of water
     */
    static void init(Scalar tempMin, Scalar tempMax, unsigned nTemp,
                     Scalar pressMin, Scalar pressMax, unsigned nPress)
    {
        if (useComplexRelations)
            std::cout << "Using complex BRINE-CO2-H2 fluid system\n";
        else
            std::cout << "Using fast BRINE-CO2-H2 fluid system\n";

        if (H2O::isTabulated)
        {
            std::cout << "Initializing tables for the H2O fluid properties ("
                      << nTemp*nPress
                      << " entries).\n";

            TabulatedH2O::init(tempMin, tempMax, nTemp, pressMin, pressMax, nPress);
        }

        if (Brine::isTabulated)
        {
            std::cout << "Initializing tables for the brine fluid properties. ("
                      << nTemp*nPress
                      << " entries).\n";
            Brine::init(tempMin, tempMax, nTemp, pressMin, pressMax, nPress);
        }

        if (CO2::isTabulated)
        {
            std::cout << "Initializing tables for the brine fluid properties. ("
                      << nTemp*nPress
                      << " entries).\n";
            Brine::init(tempMin, tempMax, nTemp, pressMin, pressMax, nPress);
        }
    }

Note that I use tables of size 1e7 !! Nonetheless I get the following warning when running my application :

    FORWARD METHOD CALL liquidDensity(573.15, 6.24561e+06) OF
    COMPONENT 'H2O'. TABULATION TOO SMALL?
    Subcritical values: Be aware to use Tables with sufficient
    resolution!

This doesn't seem to make sense as *the temperatures are always within the range [320, 350] K (~[50, 90]°C) during the simulation*.

Hi Joan,

even if the temperature solution is in this range it doesn't mean that in some intermediate Newton step (before convergence) the temperature might be outside this range. In case the value is outside the tabulation, the value is just computed with the function provided by the fluid system. It is thus slightly slower than using the tabularized values. If this occurs very often you might be able to speed-up your simulation by tabulating slightly more temperature values. In any case it shouldn't do anything bad to your results.

Actually, the warning message is a bit too aggressive for my taste. I'll open an issue on GitLab for that.

I attach the log file from the run (although everything seems normal).

These Warnings/Errors come along with an error from the cluster I run my application on (Note that I run the app in parallel), i.e. for one node :

    [eu-a6-010-16:10119] *** Process received signal ***
    [eu-a6-010-16:10119] Signal: Bus error (7)
    [eu-a6-010-16:10119] Signal code: Non-existant physical address (2)
    [eu-a6-010-16:10119] Failing at address: 0xddb1a4

Although this is not directly related to DuMux, it seems to be a memory problem ? Could that have any link to the previous warning/error ?

I don't think this is related to the warning above. You should probably profile your program with some memory tool like valgrind or address-sanitizer. If the memory problem comes from Dumux code, please be so kind and provide the output of valgrind (compile program in debug mode). You might not need to go to the cluster to test this. It could just be that a wrong memory access never caused trouble on your machine so far. You should still be able to detect it.

Best wishes

Timo


Many thanks in advance for your help.

Joan


_______________________________________________
Dumux mailing list
Dumux@listserv.uni-stuttgart.de
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux

--
_______________________________________________________________

Timo Koch                              phone: +49 711 685 64676
IWS, Universität Stuttgart             fax:   +49 711 685 60430
Pfaffenwaldring 61        email: timo.k...@iws.uni-stuttgart.de
D-70569 Stuttgart            url: www.hydrosys.uni-stuttgart.de
_______________________________________________________________

_______________________________________________
Dumux mailing list
Dumux@listserv.uni-stuttgart.de
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux

Reply via email to