From 9b4f327e2b993ba533d7ff1f0219dad39d78c23d Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 17 Feb 2017 22:08:42 +0000
Subject: [PATCH] liquidProperties: Simplified dictionary format

The defaultCoeffs entry is now redundant and supported only for backward
compatibility.  To specify a liquid with default coefficients simply leave the
coefficients dictionary empty:

    liquids
    {
        H2O {}
    }

Any or all of the coefficients may be overridden by specifying the properties in
the coefficients dictionary, e.g.

    liquids
    {
        H2O
        {
            rho
            {
                a 1000;
                b 0;
                c 0;
                d 0;
            }
        }
    }
---
 .../liquidProperties/liquidProperties.C       | 86 ++++++++++++-------
 .../solidProperties/solidPropertiesNew.C      |  3 +-
 .../constant/thermophysicalProperties         |  5 +-
 .../constant/thermophysicalProperties         | 13 +--
 .../constant/thermophysicalProperties         |  9 +-
 .../constant/thermophysicalProperties         |  9 +-
 .../constant/thermophysicalProperties         |  9 +-
 .../constant/thermophysicalProperties         |  9 +-
 .../filter/constant/thermophysicalProperties  |  9 +-
 .../constant/thermophysicalProperties         |  9 +-
 .../constant/thermophysicalProperties         |  9 +-
 .../constant/thermophysicalProperties         | 10 +--
 .../constant/thermophysicalProperties         |  9 +-
 .../constant/thermophysicalProperties         | 10 +--
 14 files changed, 82 insertions(+), 117 deletions(-)

diff --git a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
index fa98b40945c..e8731cd47f1 100644
--- a/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
+++ b/src/thermophysicalModels/properties/liquidProperties/liquidProperties/liquidProperties.C
@@ -97,24 +97,49 @@ Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
 
     const word& liquidPropertiesTypeName = dict.dictName();
 
-    const Switch defaultCoeffs(dict.lookup("defaultCoeffs"));
-
-    if (defaultCoeffs)
+    if (dict.found("defaultCoeffs"))
     {
-        ConstructorTable::iterator cstrIter =
-            ConstructorTablePtr_->find(liquidPropertiesTypeName);
+        // Backward-compatibility
+
+        const Switch defaultCoeffs(dict.lookup("defaultCoeffs"));
 
-        if (cstrIter == ConstructorTablePtr_->end())
+        if (defaultCoeffs)
         {
-            FatalErrorInFunction
-                << "Unknown liquidProperties type "
-                << liquidPropertiesTypeName << nl << nl
-                << "Valid liquidProperties types are:" << nl
-                << ConstructorTablePtr_->sortedToc()
-                << abort(FatalError);
+            ConstructorTable::iterator cstrIter =
+                ConstructorTablePtr_->find(liquidPropertiesTypeName);
+
+            if (cstrIter == ConstructorTablePtr_->end())
+            {
+                FatalErrorInFunction
+                    << "Unknown liquidProperties type "
+                    << liquidPropertiesTypeName << nl << nl
+                    << "Valid liquidProperties types are:" << nl
+                    << ConstructorTablePtr_->sortedToc()
+                    << abort(FatalError);
+            }
+
+            return autoPtr<liquidProperties>(cstrIter()());
+        }
+        else
+        {
+            dictionaryConstructorTable::iterator cstrIter =
+                dictionaryConstructorTablePtr_->find(liquidPropertiesTypeName);
+
+            if (cstrIter == dictionaryConstructorTablePtr_->end())
+            {
+                FatalErrorInFunction
+                    << "Unknown liquidProperties type "
+                    << liquidPropertiesTypeName << nl << nl
+                    << "Valid liquidProperties types are:" << nl
+                    << dictionaryConstructorTablePtr_->sortedToc()
+                    << abort(FatalError);
+            }
+
+            return autoPtr<liquidProperties>
+            (
+                cstrIter()(dict.subDict(liquidPropertiesTypeName + "Coeffs"))
+            );
         }
-
-        return autoPtr<liquidProperties>(cstrIter()());
     }
     else
     {
@@ -131,10 +156,7 @@ Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
                 << abort(FatalError);
         }
 
-        return autoPtr<liquidProperties>
-        (
-            cstrIter()(dict.subDict(liquidPropertiesTypeName + "Coeffs"))
-        );
+        return autoPtr<liquidProperties>(cstrIter()(dict));
     }
 }
 
@@ -144,91 +166,91 @@ Foam::autoPtr<Foam::liquidProperties> Foam::liquidProperties::New
 Foam::scalar Foam::liquidProperties::rho(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::pv(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::hl(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::Cp(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::h(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::Cpg(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::mu(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::mug(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::kappa(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::kappag(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::sigma(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::D(scalar p, scalar T) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
 Foam::scalar Foam::liquidProperties::D(scalar p, scalar T, scalar Wb) const
 {
     NotImplemented;
-    return 0.0;
+    return 0;
 }
 
 
@@ -259,7 +281,7 @@ Foam::scalar Foam::liquidProperties::pvInvert(scalar p) const
 
     while ((Thi - Tlo) > 1.0e-4)
     {
-        if ((pv(p, T) - p) <= 0.0)
+        if ((pv(p, T) - p) <= 0)
         {
             Tlo = T;
         }
diff --git a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C
index 0e6119e0f04..66f6d8f96ec 100644
--- a/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C
+++ b/src/thermophysicalModels/properties/solidProperties/solidProperties/solidPropertiesNew.C
@@ -39,9 +39,8 @@ Foam::autoPtr<Foam::solidProperties> Foam::solidProperties::New
     }
 
     const word solidType(dict.dictName());
-    const Switch defaultCoeffs(dict.lookup("defaultCoeffs"));
 
-    if (defaultCoeffs)
+    if (!dict.found("defaultCoeffs") || Switch(dict.lookup("defaultCoeffs")))
     {
         ConstructorTable::iterator cstrIter =
             ConstructorTablePtr_->find(solidType);
diff --git a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermophysicalProperties b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermophysicalProperties
index 28c98b1d673..87cd6d9084f 100644
--- a/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermophysicalProperties
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermophysicalProperties
@@ -36,13 +36,10 @@ foamChemistryFile "$FOAM_CASE/constant/reactions";
 
 foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGas";
 
-
 liquids
 {
     H2O
-    {
-        defaultCoeffs yes;
-    }
+    {}
 }
 
 solids
diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/thermophysicalProperties b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/thermophysicalProperties
index 63932b5a8d5..5b7081583d4 100644
--- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/thermophysicalProperties
@@ -36,10 +36,7 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
@@ -47,7 +44,7 @@ solids
     C
     {
         defaultCoeffs   no;
-        // if  defaultCoeffs no properties should be :
+
         CCoeffs
         {
             rho             2010;
@@ -57,10 +54,8 @@ solids
             emissivity      1.0;
         }
     }
-    ash
-    {
-        defaultCoeffs   yes;
-    }
+
+    ash {}
 }
 
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties
index 0a37bdeb40e..4f5a09da718 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/constant/thermophysicalProperties
@@ -36,16 +36,11 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties
index 0a37bdeb40e..4f5a09da718 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/thermophysicalProperties
@@ -36,16 +36,11 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties
index 0a37bdeb40e..4f5a09da718 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/constant/thermophysicalProperties
@@ -36,16 +36,11 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties
index 0a37bdeb40e..4f5a09da718 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/constant/thermophysicalProperties
@@ -36,16 +36,11 @@ inertSpecie     N2;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermophysicalProperties
index a703f9908a6..4d387a46f61 100644
--- a/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/filter/constant/thermophysicalProperties
@@ -36,16 +36,11 @@ foamChemistryThermoFile "$FOAM_CASE/constant/thermo.incompressiblePoly";
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 inertSpecie     N2;
 
diff --git a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermophysicalProperties
index 8e324f5244f..ee162cff25b 100644
--- a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/constant/thermophysicalProperties
@@ -38,16 +38,11 @@ inertSpecie     air;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermophysicalProperties
index d12affc2f3b..ee162cff25b 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/constant/thermophysicalProperties
@@ -38,16 +38,11 @@ inertSpecie     air;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermophysicalProperties
index c2a5aa1eb71..76f240e5ca3 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/thermophysicalProperties
@@ -36,18 +36,14 @@ inertSpecie     air;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 // de-activate the pressure-work term when running local time-stepping
 dpdt            no;
 
+
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermophysicalProperties b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermophysicalProperties
index 9b63bc18b37..9eb1bc72334 100644
--- a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/thermophysicalProperties
@@ -36,16 +36,11 @@ inertSpecie     air;
 
 liquids
 {
-    H2O
-    {
-        defaultCoeffs   yes;
-    }
+    H2O {}
 }
 
 solids
-{
-    // none
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/sprayFoam/aachenBomb/constant/thermophysicalProperties b/tutorials/lagrangian/sprayFoam/aachenBomb/constant/thermophysicalProperties
index 312d8c6b954..4456333c912 100644
--- a/tutorials/lagrangian/sprayFoam/aachenBomb/constant/thermophysicalProperties
+++ b/tutorials/lagrangian/sprayFoam/aachenBomb/constant/thermophysicalProperties
@@ -36,15 +36,11 @@ inertSpecie     N2;
 
 liquids
 {
-    C7H16
-    {
-        defaultCoeffs   yes;
-    }
+    C7H16 {}
 }
 
 solids
-{
-    // none
-}
+{}
+
 
 // ************************************************************************* //
-- 
GitLab