Esempio n. 1
0
bool Foam::fvSchemes::read()
{
    if (regIOobject::read())
    {
        // Clear current settings except fluxRequired
        clear();

        read(schemesDict());

        return true;
    }
    else
    {
        return false;
    }
}
Esempio n. 2
0
bool Foam::fvSchemes::read()
{
    if (regIOobject::read())
    {
        // persistent settings across reads is incorrect
        clear();

        read(schemesDict());

        return true;
    }
    else
    {
        return false;
    }
}
Esempio n. 3
0
Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
:
    IOdictionary
    (
        IOobject
        (
            "fvSchemes",
            obr.time().system(),
            obr,
            (
                obr.readOpt() == IOobject::MUST_READ
             || obr.readOpt() == IOobject::READ_IF_PRESENT
              ? IOobject::MUST_READ_IF_MODIFIED
              : obr.readOpt()
            ),
            IOobject::NO_WRITE
        )
    ),
    ddtSchemes_
    (
        ITstream
        (
            objectPath() + ".ddtSchemes",
            tokenList()
        )()
    ),
    defaultDdtScheme_
    (
        ddtSchemes_.name() + ".default",
        tokenList()
    ),
    d2dt2Schemes_
    (
        ITstream
        (
            objectPath() + ".d2dt2Schemes",
            tokenList()
        )()
    ),
    defaultD2dt2Scheme_
    (
        d2dt2Schemes_.name() + ".default",
        tokenList()
    ),
    interpolationSchemes_
    (
        ITstream
        (
            objectPath() + ".interpolationSchemes",
            tokenList()
        )()
    ),
    defaultInterpolationScheme_
    (
        interpolationSchemes_.name() + ".default",
        tokenList()
    ),
    divSchemes_
    (
        ITstream
        (
            objectPath() + ".divSchemes",
            tokenList()
        )()
    ),
    defaultDivScheme_
    (
        divSchemes_.name() + ".default",
        tokenList()
    ),
    gradSchemes_
    (
        ITstream
        (
            objectPath() + ".gradSchemes",
            tokenList()
        )()
    ),
    defaultGradScheme_
    (
        gradSchemes_.name() + ".default",
        tokenList()
    ),
    snGradSchemes_
    (
        ITstream
        (
            objectPath() + ".snGradSchemes",
            tokenList()
        )()
    ),
    defaultSnGradScheme_
    (
        snGradSchemes_.name() + ".default",
        tokenList()
    ),
    laplacianSchemes_
    (
        ITstream
        (
            objectPath() + ".laplacianSchemes",
            tokenList()
        )()
    ),
    defaultLaplacianScheme_
    (
        laplacianSchemes_.name() + ".default",
        tokenList()
    ),
    fluxRequired_
    (
        ITstream
        (
            objectPath() + ".fluxRequired",
            tokenList()
        )()
    ),
    defaultFluxRequired_(false),
    steady_(false)
{
    if
    (
        readOpt() == IOobject::MUST_READ
     || readOpt() == IOobject::MUST_READ_IF_MODIFIED
     || (readOpt() == IOobject::READ_IF_PRESENT && headerOk())
    )
    {
        read(schemesDict());
    }
}
bool faSchemes::read()
{
    bool readOk = false;

    if (headerOk())
    {
        readOk = regIOobject::read();
    }

    if (readOk)
    {
        const dictionary& dict = schemesDict();

        // ddt Schemes
        if (dict.found("ddtSchemes"))
        {
            ddtSchemes_ = dict.subDict("ddtSchemes");
        }
        else
        {
            ddtSchemes_.add("default", "none");
        }

        if
        (
            ddtSchemes_.found("default")
            && word(ddtSchemes_.lookup("default")) != "none"
        )
        {
            defaultDdtScheme_ = ddtSchemes_.lookup("default");
        }


        // d2dt2 schemes
        if (dict.found("d2dt2Schemes"))
        {
            d2dt2Schemes_ = dict.subDict("d2dt2Schemes");
        }
        else if (dict.found("timeScheme"))
        {
            // For backward compatibility.
            // The timeScheme will be deprecated with warning or removed in 2.4.

            word timeSchemeName(dict.lookup("timeScheme"));

            if (timeSchemeName == "EulerImplicit")
            {
                timeSchemeName = "Euler";
            }
            else if (timeSchemeName == "SteadyState")
            {
                timeSchemeName = "steadyState";
            }

            if (d2dt2Schemes_.found("default"))
            {
                d2dt2Schemes_.remove("default");
            }

            d2dt2Schemes_.add("default", timeSchemeName);
        }
        else
        {
            d2dt2Schemes_.add("default", "none");
        }

        if
        (
            d2dt2Schemes_.found("default")
            && word(d2dt2Schemes_.lookup("default")) != "none"
        )
        {
            defaultD2dt2Scheme_ = d2dt2Schemes_.lookup("default");
        }


        // Interpolation schemes
        if (dict.found("interpolationSchemes"))
        {
            interpolationSchemes_ = dict.subDict("interpolationSchemes");
        }
        else
        {
            interpolationSchemes_.add("default", "linear");
        }

        if
        (
            interpolationSchemes_.found("default")
            && word(interpolationSchemes_.lookup("default")) != "none"
        )
        {
            defaultInterpolationScheme_ =
                interpolationSchemes_.lookup("default");
        }


        // Div schemes
        if (dict.found("divSchemes"))
        {
            divSchemes_ = dict.subDict("divSchemes");

        }
        else
        {
            divSchemes_.add("default", "none");
        }

        if
        (
            divSchemes_.found("default")
            && word(divSchemes_.lookup("default")) != "none"
        )
        {
            defaultDivScheme_ = divSchemes_.lookup("default");
        }


        // Grad schemes
        if (dict.found("gradSchemes"))
        {
            gradSchemes_ = dict.subDict("gradSchemes");

        }
        else
        {
            gradSchemes_.add("default", "none");
        }

        if
        (
            gradSchemes_.found("default")
            && word(gradSchemes_.lookup("default")) != "none"
        )
        {
            defaultGradScheme_ = gradSchemes_.lookup("default");
        }


        // lnGrad schemes
        if (dict.found("lnGradSchemes"))
        {
            lnGradSchemes_ = dict.subDict("lnGradSchemes");
        }
        else
        {
            lnGradSchemes_.add("default", "corrected");
        }

        if
        (
            lnGradSchemes_.found("default")
            && word(lnGradSchemes_.lookup("default")) != "none"
        )
        {
            defaultLnGradScheme_ = lnGradSchemes_.lookup("default");
        }


        // laplacian schemes
        if (dict.found("laplacianSchemes"))
        {
            laplacianSchemes_ = dict.subDict("laplacianSchemes");

        }
        else
        {
            laplacianSchemes_.add("default", "none");
        }

        if
        (
            laplacianSchemes_.found("default")
            && word(laplacianSchemes_.lookup("default")) != "none"
        )
        {
            defaultLaplacianScheme_ = laplacianSchemes_.lookup("default");
        }


        // Flux required
        if (dict.found("fluxRequired"))
        {
            fluxRequired_ = dict.subDict("fluxRequired");
        }
    }

    return readOk;
}
Esempio n. 5
0
Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
    :
    IOdictionary
    (
       IOobject
       (
           "fvSchemes",
           obr.time().system(),
           obr,
           (
               obr.readOpt() == IOobject::MUST_READ
               ? IOobject::MUST_READ_IF_MODIFIED
               : obr.readOpt()
           ),
           IOobject::NO_WRITE
       )
    ),
    ddtSchemes_
    (
       ITstream
       (
           objectPath() + "::ddtSchemes",
           tokenList()
       )()
    ),
    defaultDdtScheme_
    (
       ddtSchemes_.name() + "::default",
       tokenList()
    ),
    d2dt2Schemes_
    (
       ITstream
       (
           objectPath() + "::d2dt2Schemes",
           tokenList()
       )()
    ),
    defaultD2dt2Scheme_
    (
       d2dt2Schemes_.name() + "::default",
       tokenList()
    ),
    interpolationSchemes_
    (
       ITstream
       (
           objectPath() + "::interpolationSchemes",
           tokenList()
       )()
    ),
    defaultInterpolationScheme_
    (
       interpolationSchemes_.name() + "::default",
       tokenList()
    ),
    divSchemes_
    (
       ITstream
       (
           objectPath() + "::divSchemes",
           tokenList()
       )()
    ),
    defaultDivScheme_
    (
       divSchemes_.name() + "::default",
       tokenList()
    ),
    gradSchemes_
    (
       ITstream
       (
           objectPath() + "::gradSchemes",
           tokenList()
       )()
    ),
    defaultGradScheme_
    (
       gradSchemes_.name() + "::default",
       tokenList()
    ),
    snGradSchemes_
    (
       ITstream
       (
           objectPath() + "::snGradSchemes",
           tokenList()
       )()
    ),
    defaultSnGradScheme_
    (
       snGradSchemes_.name() + "::default",
       tokenList()
    ),
    laplacianSchemes_
    (
       ITstream
       (
           objectPath() + "::laplacianSchemes",
           tokenList()
       )()
    ),
    defaultLaplacianScheme_
    (
       laplacianSchemes_.name() + "::default",
       tokenList()
    ),
    fluxRequired_
    (
       ITstream
       (
           objectPath() + "::fluxRequired",
           tokenList()
       )()
    ),
    defaultFluxRequired_(false)
{
    // persistent settings across reads is incorrect
    clear();

    if
    (
        readOpt() == IOobject::MUST_READ
        || readOpt() == IOobject::MUST_READ_IF_MODIFIED
    )
    {
        read(schemesDict());
    }
}
bool Foam::fvSchemes::read()
{
    if (regIOobject::read())
    {
        const dictionary& dict = schemesDict();

        // persistent settings across reads is incorrect
        clear();

        if (dict.found("ddtSchemes"))
        {
            ddtSchemes_ = dict.subDict("ddtSchemes");
        }
        else if (dict.found("timeScheme"))
        {
            // For backward compatibility.
            // The timeScheme will be deprecated with warning or removed
            WarningIn("fvSchemes::read()")
                << "Using deprecated 'timeScheme' instead of 'ddtSchemes'"
                << nl << endl;

            word schemeName(dict.lookup("timeScheme"));

            if (schemeName == "EulerImplicit")
            {
                schemeName = "Euler";
            }
            else if (schemeName == "BackwardDifferencing")
            {
                schemeName = "backward";
            }
            else if (schemeName == "SteadyState")
            {
                schemeName = "steadyState";
            }
            else
            {
                FatalIOErrorIn("fvSchemes::read()", dict.lookup("timeScheme"))
                    << "\n    Only EulerImplicit, BackwardDifferencing and "
                       "SteadyState\n    are supported by the old timeScheme "
                       "specification.\n    Please use ddtSchemes instead."
                    << exit(FatalIOError);
            }

            ddtSchemes_.set("default", schemeName);

            ddtSchemes_.lookup("default")[0].lineNumber() =
                dict.lookup("timeScheme").lineNumber();
        }
        else
        {
            ddtSchemes_.set("default", "none");
        }

        if
        (
            ddtSchemes_.found("default")
         && word(ddtSchemes_.lookup("default")) != "none"
        )
        {
            defaultDdtScheme_ = ddtSchemes_.lookup("default");
        }


        if (dict.found("d2dt2Schemes"))
        {
            d2dt2Schemes_ = dict.subDict("d2dt2Schemes");
        }
        else if (dict.found("timeScheme"))
        {
            // For backward compatibility.
            // The timeScheme will be deprecated with warning or removed
            WarningIn("fvSchemes::read()")
                << "Using deprecated 'timeScheme' instead of 'd2dt2Schemes'"
                << nl << endl;

            word schemeName(dict.lookup("timeScheme"));

            if (schemeName == "EulerImplicit")
            {
                schemeName = "Euler";
            }
            else if (schemeName == "SteadyState")
            {
                schemeName = "steadyState";
            }

            d2dt2Schemes_.set("default", schemeName);

            d2dt2Schemes_.lookup("default")[0].lineNumber() =
                dict.lookup("timeScheme").lineNumber();
        }
        else
        {
            d2dt2Schemes_.set("default", "none");
        }

        if
        (
            d2dt2Schemes_.found("default")
         && word(d2dt2Schemes_.lookup("default")) != "none"
        )
        {
            defaultD2dt2Scheme_ = d2dt2Schemes_.lookup("default");
        }


        if (dict.found("interpolationSchemes"))
        {
            interpolationSchemes_ = dict.subDict("interpolationSchemes");
        }
        else if (!interpolationSchemes_.found("default"))
        {
            interpolationSchemes_.add("default", "linear");
        }

        if
        (
            interpolationSchemes_.found("default")
         && word(interpolationSchemes_.lookup("default")) != "none"
        )
        {
            defaultInterpolationScheme_ =
                interpolationSchemes_.lookup("default");
        }


        if (dict.found("divSchemes"))
        {
            divSchemes_ = dict.subDict("divSchemes");
        }

        if
        (
            divSchemes_.found("default")
         && word(divSchemes_.lookup("default")) != "none"
        )
        {
            defaultDivScheme_ = divSchemes_.lookup("default");
        }

        if (dict.found("gradSchemes"))
        {
            gradSchemes_ = dict.subDict("gradSchemes");
        }

        if
        (
            gradSchemes_.found("default")
         && word(gradSchemes_.lookup("default")) != "none"
        )
        {
            defaultGradScheme_ = gradSchemes_.lookup("default");
        }


        if (dict.found("snGradSchemes"))
        {
            snGradSchemes_ = dict.subDict("snGradSchemes");
        }
        else if (!snGradSchemes_.found("default"))
        {
            snGradSchemes_.add("default", "corrected");
        }

        if
        (
            snGradSchemes_.found("default")
         && word(snGradSchemes_.lookup("default")) != "none"
        )
        {
            defaultSnGradScheme_ = snGradSchemes_.lookup("default");
        }


        if (dict.found("laplacianSchemes"))
        {
            laplacianSchemes_ = dict.subDict("laplacianSchemes");
        }

        if
        (
            laplacianSchemes_.found("default")
         && word(laplacianSchemes_.lookup("default")) != "none"
        )
        {
            defaultLaplacianScheme_ = laplacianSchemes_.lookup("default");
        }


        if (dict.found("fluxRequired"))
        {
            fluxRequired_ = dict.subDict("fluxRequired");

            if
            (
                fluxRequired_.found("default")
             && word(fluxRequired_.lookup("default")) != "none"
            )
            {
                defaultFluxRequired_ = Switch(fluxRequired_.lookup("default"));
            }
        }

        if (dict.found("cacheFields"))
        {
            cacheFields_ = dict.subDict("cacheFields");
        }

        return true;
    }
    else
    {
        return false;
    }
}