diff --git a/src/thermophysicalModels/liquidMixture/liquidMixture/liquidMixture.C b/src/thermophysicalModels/liquidMixture/liquidMixture/liquidMixture.C
index 6db944c0287714d5993bdfb4ff5f88a21a83bdc3..05660e55f1361ac06d589bd9411d0a61eda8cc18 100644
--- a/src/thermophysicalModels/liquidMixture/liquidMixture/liquidMixture.C
+++ b/src/thermophysicalModels/liquidMixture/liquidMixture/liquidMixture.C
@@ -62,6 +62,18 @@ Foam::liquidMixture::liquidMixture
 }
 
 
+Foam::liquidMixture::liquidMixture(const liquidMixture& lm)
+:
+    components_(lm.components_),
+    properties_(lm.properties_.size())
+{
+    forAll(properties_, i)
+    {
+        properties_.set(i, lm.properties_(i)->clone());
+    }
+}
+
+
 // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
 
 Foam::autoPtr<Foam::liquidMixture> Foam::liquidMixture::New
diff --git a/src/thermophysicalModels/liquidMixture/liquidMixture/liquidMixture.H b/src/thermophysicalModels/liquidMixture/liquidMixture/liquidMixture.H
index 2ecde01b7b884f0144b1abc14dfe215eb60b901c..9409e0508faabad8e9e1813e6798b5150519ea1c 100644
--- a/src/thermophysicalModels/liquidMixture/liquidMixture/liquidMixture.H
+++ b/src/thermophysicalModels/liquidMixture/liquidMixture/liquidMixture.H
@@ -119,7 +119,21 @@ public:
     // Constructors
 
         //- Construct from dictionary
-        liquidMixture(const dictionary&);
+        liquidMixture(const dictionary& dict);
+
+        //- Construct copy
+        liquidMixture(const liquidMixture& lm);
+
+        //- Construct and return a clone
+        virtual autoPtr<liquidMixture> clone() const
+        {
+            return autoPtr<liquidMixture>(new liquidMixture(*this));
+        }
+
+
+    //- Destructor
+    virtual ~liquidMixture()
+    {}
 
 
     // Selectors
diff --git a/src/thermophysicalModels/liquids/Ar/Ar.C b/src/thermophysicalModels/liquids/Ar/Ar.C
index cb7835691049b206117b3c5f564ecf79751403e3..7da2de5a41f1a96f31464b53d6f3eab5563de4d1 100644
--- a/src/thermophysicalModels/liquids/Ar/Ar.C
+++ b/src/thermophysicalModels/liquids/Ar/Ar.C
@@ -158,4 +158,23 @@ Foam::Ar::Ar(const dictionary& dict)
 {}
 
 
+Foam::Ar::Ar(const Ar& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/Ar/Ar.H b/src/thermophysicalModels/liquids/Ar/Ar.H
index 560b99a583e9a5b4c74161a9e7ca1496bdf4332e..d77b2edc0d27408b61aa4cc8c3e301e4da3561f6 100644
--- a/src/thermophysicalModels/liquids/Ar/Ar.H
+++ b/src/thermophysicalModels/liquids/Ar/Ar.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         Ar(const dictionary& dict);
 
+        //- Construct copy
+        Ar(const Ar& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new Ar(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C10H22/C10H22.C b/src/thermophysicalModels/liquids/C10H22/C10H22.C
index c27466912659ccf960b40ec9c84ca789b456dfd2..cc5189d08644e05ba9b84b6d99cdb7e46bcbf3aa 100644
--- a/src/thermophysicalModels/liquids/C10H22/C10H22.C
+++ b/src/thermophysicalModels/liquids/C10H22/C10H22.C
@@ -166,4 +166,23 @@ Foam::C10H22::C10H22(const dictionary& dict)
 {}
 
 
+Foam::C10H22::C10H22(const C10H22& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C10H22/C10H22.H b/src/thermophysicalModels/liquids/C10H22/C10H22.H
index 9fc03f06407d423bd50be4b469608b24e6f860f0..93aea87d9025e265ec665daeb3a04bde6709232a 100644
--- a/src/thermophysicalModels/liquids/C10H22/C10H22.H
+++ b/src/thermophysicalModels/liquids/C10H22/C10H22.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C10H22(const dictionary& dict);
 
+        //- Construct copy
+        C10H22(const C10H22& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C10H22(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C12H26/C12H26.C b/src/thermophysicalModels/liquids/C12H26/C12H26.C
index f384008d6915939936c50af22252be2401fbf251..1dc0a8428a60f00a0f7970f290de8ddede7c2ce8 100644
--- a/src/thermophysicalModels/liquids/C12H26/C12H26.C
+++ b/src/thermophysicalModels/liquids/C12H26/C12H26.C
@@ -158,4 +158,23 @@ Foam::C12H26::C12H26(const dictionary& dict)
 {}
 
 
+Foam::C12H26::C12H26(const C12H26& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C12H26/C12H26.H b/src/thermophysicalModels/liquids/C12H26/C12H26.H
index bbdba13e792b29d1f95fa7f17b7a67bae66dbb25..10e5c1f73efad2f308d2c6f7d4d1e5d99182c081 100644
--- a/src/thermophysicalModels/liquids/C12H26/C12H26.H
+++ b/src/thermophysicalModels/liquids/C12H26/C12H26.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C12H26(const dictionary& dict);
 
+        //- Construct copy
+        C12H26(const C12H26& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C12H26(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C13H28/C13H28.C b/src/thermophysicalModels/liquids/C13H28/C13H28.C
index adb9e44911584721a996766f9610c27d68e7f13e..2a236c5c998d0c1e6c71f313ff2e16a96b9de9af 100644
--- a/src/thermophysicalModels/liquids/C13H28/C13H28.C
+++ b/src/thermophysicalModels/liquids/C13H28/C13H28.C
@@ -166,4 +166,23 @@ Foam::C13H28::C13H28(const dictionary& dict)
 {}
 
 
+Foam::C13H28::C13H28(const C13H28& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C13H28/C13H28.H b/src/thermophysicalModels/liquids/C13H28/C13H28.H
index 3cd8dfcb798a89a2a8b3943e2a2587329b508d6e..63b67797c00917f885fcf0d5efa1c983a5b44a89 100644
--- a/src/thermophysicalModels/liquids/C13H28/C13H28.H
+++ b/src/thermophysicalModels/liquids/C13H28/C13H28.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C13H28(const dictionary& dict);
 
+        //- Construct copy
+        C13H28(const C13H28& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C13H28(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C14H30/C14H30.C b/src/thermophysicalModels/liquids/C14H30/C14H30.C
index 0b2d2515c42843a8aecdc765419447a9af8e8341..c096b62a147f607a305e5b0448c50970bba8f0e6 100644
--- a/src/thermophysicalModels/liquids/C14H30/C14H30.C
+++ b/src/thermophysicalModels/liquids/C14H30/C14H30.C
@@ -166,4 +166,23 @@ Foam::C14H30::C14H30(const dictionary& dict)
 {}
 
 
+Foam::C14H30::C14H30(const C14H30& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C14H30/C14H30.H b/src/thermophysicalModels/liquids/C14H30/C14H30.H
index b96d4daf7df7776666089b2553d81169343b1471..7b9c13735849cb180ed54518223af0c82364a2e2 100644
--- a/src/thermophysicalModels/liquids/C14H30/C14H30.H
+++ b/src/thermophysicalModels/liquids/C14H30/C14H30.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C14H30(const dictionary& dict);
 
+        //- Construct copy
+        C14H30(const C14H30& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C14H30(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C16H34/C16H34.C b/src/thermophysicalModels/liquids/C16H34/C16H34.C
index 3f7089378e0cea82520ed43255d313ddb64e2e03..b3549a16aeeda5159529130e2407583bd8c9fe81 100644
--- a/src/thermophysicalModels/liquids/C16H34/C16H34.C
+++ b/src/thermophysicalModels/liquids/C16H34/C16H34.C
@@ -166,4 +166,23 @@ Foam::C16H34::C16H34(const dictionary& dict)
 {}
 
 
+Foam::C16H34::C16H34(const C16H34& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C16H34/C16H34.H b/src/thermophysicalModels/liquids/C16H34/C16H34.H
index 4654a0eef3e329a39102a417798467da64dd956b..ec3037d2b2f5dda21200afa561c3755fb6ac179a 100644
--- a/src/thermophysicalModels/liquids/C16H34/C16H34.H
+++ b/src/thermophysicalModels/liquids/C16H34/C16H34.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C16H34(const dictionary& dict);
 
+        //- Construct copy
+        C16H34(const C16H34& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C16H34(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C2H5OH/C2H5OH.C b/src/thermophysicalModels/liquids/C2H5OH/C2H5OH.C
index 1f7c2beab626beeda3727cb210b9d248a9b17932..ceeae4389dd0ce39bb8b4b3aded02905d0dbc45a 100644
--- a/src/thermophysicalModels/liquids/C2H5OH/C2H5OH.C
+++ b/src/thermophysicalModels/liquids/C2H5OH/C2H5OH.C
@@ -166,4 +166,23 @@ Foam::C2H5OH::C2H5OH(const dictionary& dict)
 {}
 
 
+Foam::C2H5OH::C2H5OH(const C2H5OH& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C2H5OH/C2H5OH.H b/src/thermophysicalModels/liquids/C2H5OH/C2H5OH.H
index 57a692608d55ec1e5295674901a2489453db189c..4b280382c936a90a9c7791e2dd43f034b447cff9 100644
--- a/src/thermophysicalModels/liquids/C2H5OH/C2H5OH.H
+++ b/src/thermophysicalModels/liquids/C2H5OH/C2H5OH.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C2H5OH(const dictionary& dict);
 
+        //- Construct copy
+        C2H5OH(const C2H5OH& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C2H5OH(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C2H6/C2H6.C b/src/thermophysicalModels/liquids/C2H6/C2H6.C
index 57b63c89a8665c3626285f39c396c8654188b2d6..b9ee6478d0fe3b45e126e3a0b90f829aaca02a6f 100644
--- a/src/thermophysicalModels/liquids/C2H6/C2H6.C
+++ b/src/thermophysicalModels/liquids/C2H6/C2H6.C
@@ -157,4 +157,23 @@ Foam::C2H6::C2H6(const dictionary& dict)
 {}
 
 
+Foam::C2H6::C2H6(const C2H6& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C2H6/C2H6.H b/src/thermophysicalModels/liquids/C2H6/C2H6.H
index f3647fae40e5cdcf7d90977c46a65e6ecf3e1504..caaadc13bf7f9de374f7a3917736574787b3fde8 100644
--- a/src/thermophysicalModels/liquids/C2H6/C2H6.H
+++ b/src/thermophysicalModels/liquids/C2H6/C2H6.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C2H6(const dictionary& dict);
 
+        //- Construct copy
+        C2H6(const C2H6& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C2H6(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C2H6O/C2H6O.C b/src/thermophysicalModels/liquids/C2H6O/C2H6O.C
index d3ea71a5281eb83c49bbb365d9bbe9a25ac9d461..da0d737304dcd9c2262362f5f26d1250766b6267 100644
--- a/src/thermophysicalModels/liquids/C2H6O/C2H6O.C
+++ b/src/thermophysicalModels/liquids/C2H6O/C2H6O.C
@@ -166,4 +166,23 @@ Foam::C2H6O::C2H6O(const dictionary& dict)
 {}
 
 
+Foam::C2H6O::C2H6O(const C2H6O& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C2H6O/C2H6O.H b/src/thermophysicalModels/liquids/C2H6O/C2H6O.H
index d4faffa564a2f563def6a5825566911a6c0edda2..1a1778322b61c2f7a0de0205e1ffca844176570a 100644
--- a/src/thermophysicalModels/liquids/C2H6O/C2H6O.H
+++ b/src/thermophysicalModels/liquids/C2H6O/C2H6O.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C2H6O(const dictionary& dict);
 
+        //- Construct copy
+        C2H6O(const C2H6O& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C2H6O(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C3H6O/C3H6O.C b/src/thermophysicalModels/liquids/C3H6O/C3H6O.C
index b72d1f43d8a741f3ac7d0940f7b1cf2922002773..8bddb28e6c071b4173e61d962956951783e461ee 100644
--- a/src/thermophysicalModels/liquids/C3H6O/C3H6O.C
+++ b/src/thermophysicalModels/liquids/C3H6O/C3H6O.C
@@ -166,4 +166,23 @@ Foam::C3H6O::C3H6O(const dictionary& dict)
 {}
 
 
+Foam::C3H6O::C3H6O(const C3H6O& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C3H6O/C3H6O.H b/src/thermophysicalModels/liquids/C3H6O/C3H6O.H
index 664693ac74b4b2b335124a388e870e936a842569..f6f49ba51a0a4f9e4050cea21f929c775274ed1b 100644
--- a/src/thermophysicalModels/liquids/C3H6O/C3H6O.H
+++ b/src/thermophysicalModels/liquids/C3H6O/C3H6O.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C3H6O(const dictionary& dict);
 
+        //- Construct copy
+        C3H6O(const C3H6O& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C3H6O(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C3H8/C3H8.C b/src/thermophysicalModels/liquids/C3H8/C3H8.C
index 79069ed5b6048ac04251846dc21ac90599e9772b..51acfc3b43e3e9fc21c03b199ea4b1086f79e6b8 100644
--- a/src/thermophysicalModels/liquids/C3H8/C3H8.C
+++ b/src/thermophysicalModels/liquids/C3H8/C3H8.C
@@ -156,4 +156,23 @@ Foam::C3H8::C3H8(const dictionary& dict)
 {}
 
 
+Foam::C3H8::C3H8(const C3H8& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C3H8/C3H8.H b/src/thermophysicalModels/liquids/C3H8/C3H8.H
index 88de0f86d3f42492972930cc02511459248c6894..b87d796442810da3e1614acd8290656ae50d6071 100644
--- a/src/thermophysicalModels/liquids/C3H8/C3H8.H
+++ b/src/thermophysicalModels/liquids/C3H8/C3H8.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C3H8(const dictionary& dict);
 
+        //- Construct copy
+        C3H8(const C3H8& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C3H8(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C4H10O/C4H10O.C b/src/thermophysicalModels/liquids/C4H10O/C4H10O.C
index 10483d5decb27c87a046ae32175cfa3f24b9ee1f..b27f721015536a72b65932531283eadcbdd46f24 100644
--- a/src/thermophysicalModels/liquids/C4H10O/C4H10O.C
+++ b/src/thermophysicalModels/liquids/C4H10O/C4H10O.C
@@ -166,4 +166,23 @@ Foam::C4H10O::C4H10O(const dictionary& dict)
 {}
 
 
+Foam::C4H10O::C4H10O(const C4H10O& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C4H10O/C4H10O.H b/src/thermophysicalModels/liquids/C4H10O/C4H10O.H
index 2099cffa8b7bf1cbf0ad45d9bd655f3d64741d2b..24fd46f7301a535b4af00bf2b8109fd235d4ca08 100644
--- a/src/thermophysicalModels/liquids/C4H10O/C4H10O.H
+++ b/src/thermophysicalModels/liquids/C4H10O/C4H10O.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C4H10O(const dictionary& dict);
 
+        //- Construct copy
+        C4H10O(const C4H10O& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C4H10O(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C6H14/C6H14.C b/src/thermophysicalModels/liquids/C6H14/C6H14.C
index 607e94217f7f8042427d27bc8855bd36d5d3905f..cbee72cf84f97648e24605f73a7012c545ab14d5 100644
--- a/src/thermophysicalModels/liquids/C6H14/C6H14.C
+++ b/src/thermophysicalModels/liquids/C6H14/C6H14.C
@@ -166,4 +166,23 @@ Foam::C6H14::C6H14(const dictionary& dict)
 {}
 
 
+Foam::C6H14::C6H14(const C6H14& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C6H14/C6H14.H b/src/thermophysicalModels/liquids/C6H14/C6H14.H
index fe97e35f9b65e16c51516b1b09d8c49874e96147..88a2a845196ed3a2bd2d12abcc5afd7a227f118e 100644
--- a/src/thermophysicalModels/liquids/C6H14/C6H14.H
+++ b/src/thermophysicalModels/liquids/C6H14/C6H14.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C6H14(const dictionary& dict);
 
+        //- Construct copy
+        C6H14(const C6H14& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C6H14(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C6H6/C6H6.C b/src/thermophysicalModels/liquids/C6H6/C6H6.C
index 5dd2ee1398c523829bab31985b95a9ea83ef78a9..443aa82185cc3e44c55a21a3d4667b85e3a73836 100644
--- a/src/thermophysicalModels/liquids/C6H6/C6H6.C
+++ b/src/thermophysicalModels/liquids/C6H6/C6H6.C
@@ -166,4 +166,23 @@ Foam::C6H6::C6H6(const dictionary& dict)
 {}
 
 
+Foam::C6H6::C6H6(const C6H6& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C6H6/C6H6.H b/src/thermophysicalModels/liquids/C6H6/C6H6.H
index 3484656d0091dd0a3f6d5a3e10012f0ce9f52e78..b9939297af77ca16daa5cee8f7723fa3f0482513 100644
--- a/src/thermophysicalModels/liquids/C6H6/C6H6.H
+++ b/src/thermophysicalModels/liquids/C6H6/C6H6.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C6H6(const dictionary& dict);
 
+        //- Construct copy
+        C6H6(const C6H6& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C6H6(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C7H16/C7H16.C b/src/thermophysicalModels/liquids/C7H16/C7H16.C
index 15d2b2678bfa1915c813d6fe9eb7725de7f514ca..7b4d2a2c2d6f47e7dbdc320e2e2050f761a70bb1 100644
--- a/src/thermophysicalModels/liquids/C7H16/C7H16.C
+++ b/src/thermophysicalModels/liquids/C7H16/C7H16.C
@@ -165,4 +165,23 @@ Foam::C7H16::C7H16(const dictionary& dict)
 {}
 
 
+Foam::C7H16::C7H16(const C7H16& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C7H16/C7H16.H b/src/thermophysicalModels/liquids/C7H16/C7H16.H
index ce8b9dfb37e82252fb3e51d8323c4f89e9d92d5d..15f7ab793c7f045217461bfd7b8800c062d6f098 100644
--- a/src/thermophysicalModels/liquids/C7H16/C7H16.H
+++ b/src/thermophysicalModels/liquids/C7H16/C7H16.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C7H16(const dictionary& dict);
 
+        //- Construct copy
+        C7H16(const C7H16& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C7H16(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C7H8/C7H8.C b/src/thermophysicalModels/liquids/C7H8/C7H8.C
index 311eabbe1242c0a8d5e53e055d2fe263cc0765f3..88aae3594b625263f935b13c5ae550e177eb26b8 100644
--- a/src/thermophysicalModels/liquids/C7H8/C7H8.C
+++ b/src/thermophysicalModels/liquids/C7H8/C7H8.C
@@ -166,4 +166,23 @@ Foam::C7H8::C7H8(const dictionary& dict)
 {}
 
 
+Foam::C7H8::C7H8(const C7H8& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C7H8/C7H8.H b/src/thermophysicalModels/liquids/C7H8/C7H8.H
index 31130737cb5f9897c7ddd9978315f4dde2dc9937..3829414a749d2d4901f4addc83882bc14312b539 100644
--- a/src/thermophysicalModels/liquids/C7H8/C7H8.H
+++ b/src/thermophysicalModels/liquids/C7H8/C7H8.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C7H8(const dictionary& dict);
 
+        //- Construct copy
+        C7H8(const C7H8& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C7H8(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C8H10/C8H10.C b/src/thermophysicalModels/liquids/C8H10/C8H10.C
index a7d001394c87d18fdddfac60dfce149a9d9cc9fe..e65e7db2f3689d76a8fd93e05f8f367df2264f7e 100644
--- a/src/thermophysicalModels/liquids/C8H10/C8H10.C
+++ b/src/thermophysicalModels/liquids/C8H10/C8H10.C
@@ -166,4 +166,23 @@ Foam::C8H10::C8H10(const dictionary& dict)
 {}
 
 
+Foam::C8H10::C8H10(const C8H10& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C8H10/C8H10.H b/src/thermophysicalModels/liquids/C8H10/C8H10.H
index 3757aabee51d99f62d93e86f7cbad15f7c0a98f5..b92796894651e557d77160c8868dc6ad22fe5a9d 100644
--- a/src/thermophysicalModels/liquids/C8H10/C8H10.H
+++ b/src/thermophysicalModels/liquids/C8H10/C8H10.H
@@ -112,6 +112,15 @@ public:
         //- Construct from dictionary
         C8H10(const dictionary& dict);
 
+        //- Construct copy
+        C8H10(const C8H10& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C8H10(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C8H18/C8H18.C b/src/thermophysicalModels/liquids/C8H18/C8H18.C
index a5f3529d1a6ade09ccbc4a14acb1b05dc90063e7..a1c0c71ee4530accecf4940a724626d12a76f4d2 100644
--- a/src/thermophysicalModels/liquids/C8H18/C8H18.C
+++ b/src/thermophysicalModels/liquids/C8H18/C8H18.C
@@ -166,4 +166,23 @@ Foam::C8H18::C8H18(const dictionary& dict)
 {}
 
 
+Foam::C8H18::C8H18(const C8H18& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C8H18/C8H18.H b/src/thermophysicalModels/liquids/C8H18/C8H18.H
index 57223738b056630622aae39fe796a388f13c2433..cef1f09751c633521e62b133cefd0015a9e97f8b 100644
--- a/src/thermophysicalModels/liquids/C8H18/C8H18.H
+++ b/src/thermophysicalModels/liquids/C8H18/C8H18.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C8H18(const dictionary& dict);
 
+        //- Construct copy
+        C8H18(const C8H18& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C8H18(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/C9H20/C9H20.C b/src/thermophysicalModels/liquids/C9H20/C9H20.C
index 966965dbd27ff26125672bb84f11f0d1d835185c..d3c5dde947908edec3c96fc6534c19fad65171ab 100644
--- a/src/thermophysicalModels/liquids/C9H20/C9H20.C
+++ b/src/thermophysicalModels/liquids/C9H20/C9H20.C
@@ -166,4 +166,23 @@ Foam::C9H20::C9H20(const dictionary& dict)
 {}
 
 
+Foam::C9H20::C9H20(const C9H20& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/C9H20/C9H20.H b/src/thermophysicalModels/liquids/C9H20/C9H20.H
index 375219da826f5a88148deddf740ec7b5868e0018..fdf0fc77e624c3208f7e1001e988c53092cfb8b4 100644
--- a/src/thermophysicalModels/liquids/C9H20/C9H20.H
+++ b/src/thermophysicalModels/liquids/C9H20/C9H20.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         C9H20(const dictionary& dict);
 
+        //- Construct copy
+        C9H20(const C9H20& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new C9H20(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/CH3OH/CH3OH.C b/src/thermophysicalModels/liquids/CH3OH/CH3OH.C
index e93e52aa951a96cbf34f9ed8837eba9288c63dfe..324b21ceaa9d30be5ef4d9999935a1f60de76256 100644
--- a/src/thermophysicalModels/liquids/CH3OH/CH3OH.C
+++ b/src/thermophysicalModels/liquids/CH3OH/CH3OH.C
@@ -166,4 +166,23 @@ Foam::CH3OH::CH3OH(const dictionary& dict)
 {}
 
 
+Foam::CH3OH::CH3OH(const CH3OH& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/CH3OH/CH3OH.H b/src/thermophysicalModels/liquids/CH3OH/CH3OH.H
index 5f90bafe9213cf71f25ec6768d9c1e4973090665..cf577d7571bf41fcdb70f2ccdd36a531a1a05664 100644
--- a/src/thermophysicalModels/liquids/CH3OH/CH3OH.H
+++ b/src/thermophysicalModels/liquids/CH3OH/CH3OH.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         CH3OH(const dictionary& dict);
 
+        //- Construct copy
+        CH3OH(const CH3OH& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new CH3OH(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/CH4N2O/CH4N2O.C b/src/thermophysicalModels/liquids/CH4N2O/CH4N2O.C
index b32f82f269c4f6b38ca5d2d4086a627c98bdd4c9..21e19255551dced2aad7eb2b50d639bafe66ff94 100644
--- a/src/thermophysicalModels/liquids/CH4N2O/CH4N2O.C
+++ b/src/thermophysicalModels/liquids/CH4N2O/CH4N2O.C
@@ -151,4 +151,23 @@ Foam::CH4N2O::CH4N2O(const dictionary& dict)
 {}
 
 
+Foam::CH4N2O::CH4N2O(const CH4N2O& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/CH4N2O/CH4N2O.H b/src/thermophysicalModels/liquids/CH4N2O/CH4N2O.H
index b4d221b42df54bca91d4b81e59199aac376356da..de5498732654fd5eb0160ac9ae8641dbb22e66d1 100644
--- a/src/thermophysicalModels/liquids/CH4N2O/CH4N2O.H
+++ b/src/thermophysicalModels/liquids/CH4N2O/CH4N2O.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         CH4N2O(const dictionary& dict);
 
+        //- Construct copy
+        CH4N2O(const CH4N2O& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new CH4N2O(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/H2O/H2O.C b/src/thermophysicalModels/liquids/H2O/H2O.C
index 6820731f8bc916ef3adb0fc4d525c8b6c27287e9..ef16dbd76851164735537225d8775297a0435c56 100644
--- a/src/thermophysicalModels/liquids/H2O/H2O.C
+++ b/src/thermophysicalModels/liquids/H2O/H2O.C
@@ -173,4 +173,23 @@ Foam::H2O::H2O(const dictionary& dict)
 {}
 
 
+Foam::H2O::H2O(const H2O& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/H2O/H2O.H b/src/thermophysicalModels/liquids/H2O/H2O.H
index a25c9f48db6f1adc52eafb4a88753c9f99ece93a..8fc694e0ec797a368ce54fb9054c70c880fdbc3a 100644
--- a/src/thermophysicalModels/liquids/H2O/H2O.H
+++ b/src/thermophysicalModels/liquids/H2O/H2O.H
@@ -112,6 +112,15 @@ public:
         //- Construct from dictionary
         H2O(const dictionary& dict);
 
+        //- Construct copy
+        H2O(const H2O& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new H2O(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/IC8H18/IC8H18.C b/src/thermophysicalModels/liquids/IC8H18/IC8H18.C
index cfc4736d60549ff9a03910fa668a622b2ee7ce24..cce8daebd7eac84a66e9d69c8badc06ae6a993ef 100644
--- a/src/thermophysicalModels/liquids/IC8H18/IC8H18.C
+++ b/src/thermophysicalModels/liquids/IC8H18/IC8H18.C
@@ -166,4 +166,23 @@ Foam::IC8H18::IC8H18(const dictionary& dict)
 {}
 
 
+Foam::IC8H18::IC8H18(const IC8H18& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/IC8H18/IC8H18.H b/src/thermophysicalModels/liquids/IC8H18/IC8H18.H
index 967a458b47c359b6c909da275fa7277a64891555..848b8e11e703bbc25fe8a7d7416005a260a31460 100644
--- a/src/thermophysicalModels/liquids/IC8H18/IC8H18.H
+++ b/src/thermophysicalModels/liquids/IC8H18/IC8H18.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         IC8H18(const dictionary& dict);
 
+        //- Construct copy
+        IC8H18(const IC8H18& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new IC8H18(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/IDEA/IDEA.C b/src/thermophysicalModels/liquids/IDEA/IDEA.C
index 8e113b90c880c3f1403fd913e48424ba385abe95..1d2966d629eb6506b1dacead49f3e9f1c7e5bbd4 100644
--- a/src/thermophysicalModels/liquids/IDEA/IDEA.C
+++ b/src/thermophysicalModels/liquids/IDEA/IDEA.C
@@ -186,4 +186,23 @@ Foam::IDEA::IDEA(const dictionary& dict)
 {}
 
 
+Foam::IDEA::IDEA(const IDEA& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/IDEA/IDEA.H b/src/thermophysicalModels/liquids/IDEA/IDEA.H
index f5e6d9152ea725d89f97389dff5922ab0e1b09f4..14569dfcff18506d0c7eb9e0520509cc9df0b618 100644
--- a/src/thermophysicalModels/liquids/IDEA/IDEA.H
+++ b/src/thermophysicalModels/liquids/IDEA/IDEA.H
@@ -135,6 +135,15 @@ public:
         //- Construct from dictionary
         IDEA(const dictionary& dict);
 
+        //- Construct copy
+        IDEA(const IDEA& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new IDEA(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/MB/MB.C b/src/thermophysicalModels/liquids/MB/MB.C
index c4d6fe38f4b093b68a2e5a57c66fabaea77d24f1..3c105a83b21e2cd29b62f3a2a40155f987f6a6aa 100644
--- a/src/thermophysicalModels/liquids/MB/MB.C
+++ b/src/thermophysicalModels/liquids/MB/MB.C
@@ -150,4 +150,23 @@ Foam::MB::MB(const dictionary& dict)
 {}
 
 
+Foam::MB::MB(const MB& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/MB/MB.H b/src/thermophysicalModels/liquids/MB/MB.H
index 15245c6e47b16eb1fcb35acc39fe07974daa2ecd..060fd2ec5284622ae453fc1f50808a30a2a5e06e 100644
--- a/src/thermophysicalModels/liquids/MB/MB.H
+++ b/src/thermophysicalModels/liquids/MB/MB.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         MB(const dictionary& dict);
 
+        //- Construct copy
+        MB(const MB& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new MB(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/N2/N2.C b/src/thermophysicalModels/liquids/N2/N2.C
index 5e414122434535544e6c3d76951d0c17ee987e4d..b77028fa5e398aad55936922f62a854c46749282 100644
--- a/src/thermophysicalModels/liquids/N2/N2.C
+++ b/src/thermophysicalModels/liquids/N2/N2.C
@@ -166,4 +166,23 @@ Foam::N2::N2(const dictionary& dict)
 {}
 
 
+Foam::N2::N2(const N2& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/N2/N2.H b/src/thermophysicalModels/liquids/N2/N2.H
index 6f318f1a452cd563618de04699e5b8b45e571a26..1a7ea9411ebb8b8ce1626918c935c47e70c33512 100644
--- a/src/thermophysicalModels/liquids/N2/N2.H
+++ b/src/thermophysicalModels/liquids/N2/N2.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         N2(const dictionary& dict);
 
+        //- Construct copy
+        N2(const N2& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new N2(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/aC10H7CH3/aC10H7CH3.C b/src/thermophysicalModels/liquids/aC10H7CH3/aC10H7CH3.C
index 9532106b78c5f19c05b25602303cecc21f510395..49e26581ee46c6c7361ffdb308fdee63ed95b165 100644
--- a/src/thermophysicalModels/liquids/aC10H7CH3/aC10H7CH3.C
+++ b/src/thermophysicalModels/liquids/aC10H7CH3/aC10H7CH3.C
@@ -158,4 +158,23 @@ Foam::aC10H7CH3::aC10H7CH3(const dictionary& dict)
 {}
 
 
+Foam::aC10H7CH3::aC10H7CH3(const aC10H7CH3& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/aC10H7CH3/aC10H7CH3.H b/src/thermophysicalModels/liquids/aC10H7CH3/aC10H7CH3.H
index 05ec2c90a07b307c1cad792b127bb7a43d752173..a7de909a2395d5fb157b6b56c520d560c04bfdc7 100644
--- a/src/thermophysicalModels/liquids/aC10H7CH3/aC10H7CH3.H
+++ b/src/thermophysicalModels/liquids/aC10H7CH3/aC10H7CH3.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         aC10H7CH3(const dictionary& dict);
 
+        //- Construct copy
+        aC10H7CH3(const aC10H7CH3& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new aC10H7CH3(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/bC10H7CH3/bC10H7CH3.C b/src/thermophysicalModels/liquids/bC10H7CH3/bC10H7CH3.C
index 656a57d23bbe4f4a13e227d6264c73284fe51377..ee371c9a171e096a41b207c4528d94676f37b512 100644
--- a/src/thermophysicalModels/liquids/bC10H7CH3/bC10H7CH3.C
+++ b/src/thermophysicalModels/liquids/bC10H7CH3/bC10H7CH3.C
@@ -158,4 +158,23 @@ Foam::bC10H7CH3::bC10H7CH3(const dictionary& dict)
 {}
 
 
+Foam::bC10H7CH3::bC10H7CH3(const bC10H7CH3& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/bC10H7CH3/bC10H7CH3.H b/src/thermophysicalModels/liquids/bC10H7CH3/bC10H7CH3.H
index d3ff3512913a0f195865e0c8b73e4e60bae9cbbf..b9f2361e276e765328ae572efdf037da130c9efe 100644
--- a/src/thermophysicalModels/liquids/bC10H7CH3/bC10H7CH3.H
+++ b/src/thermophysicalModels/liquids/bC10H7CH3/bC10H7CH3.H
@@ -113,6 +113,15 @@ public:
         //- Construct from dictionary
         bC10H7CH3(const dictionary& dict);
 
+        //- Construct copy
+        bC10H7CH3(const bC10H7CH3& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new bC10H7CH3(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/iC3H8O/iC3H8O.C b/src/thermophysicalModels/liquids/iC3H8O/iC3H8O.C
index 1faec0b0c293615265f51cf6c55ebb89a34f67be..c1b434a1d5c30eb049de9c08aec132a30158bf11 100644
--- a/src/thermophysicalModels/liquids/iC3H8O/iC3H8O.C
+++ b/src/thermophysicalModels/liquids/iC3H8O/iC3H8O.C
@@ -166,4 +166,23 @@ Foam::iC3H8O::iC3H8O(const dictionary& dict)
 {}
 
 
+Foam::iC3H8O::iC3H8O(const iC3H8O& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/iC3H8O/iC3H8O.H b/src/thermophysicalModels/liquids/iC3H8O/iC3H8O.H
index 6caa05922244d0961069aa193a8ce18b38eb8015..fdf4279f2c3290e6a6857708348591e6e285e94d 100644
--- a/src/thermophysicalModels/liquids/iC3H8O/iC3H8O.H
+++ b/src/thermophysicalModels/liquids/iC3H8O/iC3H8O.H
@@ -111,6 +111,15 @@ public:
         //- Construct from dictionary
         iC3H8O(const dictionary& dict);
 
+        //- Construct copy
+        iC3H8O(const iC3H8O& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new iC3H8O(*this));
+        }
+
 
     // Member Functions
 
diff --git a/src/thermophysicalModels/liquids/liquid/liquid.C b/src/thermophysicalModels/liquids/liquid/liquid.C
index cb3f322182280b42c42203ea9f18620a287e7379..f23f87d6378d67104fb1094b7fcb8e776737879f 100644
--- a/src/thermophysicalModels/liquids/liquid/liquid.C
+++ b/src/thermophysicalModels/liquids/liquid/liquid.C
@@ -74,6 +74,10 @@ Foam::liquid::liquid(Istream& is)
     Tc_(readScalar(is)),
     Pc_(readScalar(is)),
     Vc_(readScalar(is)),
+    Zc_(readScalar(is)),
+    Tt_(readScalar(is)),
+    Pt_(readScalar(is)),
+    Tb_(readScalar(is)),
     dipm_(readScalar(is)),
     omega_(readScalar(is)),
     delta_(readScalar(is))
@@ -86,12 +90,32 @@ Foam::liquid::liquid(const dictionary& dict)
     Tc_(readScalar(dict.lookup("Tc"))),
     Pc_(readScalar(dict.lookup("Pc"))),
     Vc_(readScalar(dict.lookup("Vc"))),
+    Zc_(readScalar(dict.lookup("Zc"))),
+    Tt_(readScalar(dict.lookup("Tt"))),
+    Pt_(readScalar(dict.lookup("Pt"))),
+    Tb_(readScalar(dict.lookup("Tb"))),
     dipm_(readScalar(dict.lookup("dipm"))),
     omega_(readScalar(dict.lookup("omega"))),
     delta_(readScalar(dict.lookup("delta")))
 {}
 
 
+Foam::liquid::liquid(const liquid& liq)
+:
+    W_(liq.W_),
+    Tc_(liq.Tc_),
+    Pc_(liq.Pc_),
+    Vc_(liq.Vc_),
+    Zc_(liq.Zc_),
+    Tt_(liq.Tt_),
+    Pt_(liq.Pt_),
+    Tb_(liq.Tb_),
+    dipm_(liq.dipm_),
+    omega_(liq.omega_),
+    delta_(liq.delta_)
+{}
+
+
 // * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * //
 
 Foam::autoPtr<Foam::liquid> Foam::liquid::New(Istream& is)
@@ -203,4 +227,114 @@ Foam::autoPtr<Foam::liquid> Foam::liquid::New(const dictionary& dict)
 }
 
 
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::scalar Foam::liquid::rho(scalar p, scalar T) const
+{
+    notImplemented("Foam::scalar Foam::liquid::rho(scalar, scalar) const");
+    return 0.0;
+}
+
+
+Foam::scalar Foam::liquid::pv(scalar p, scalar T) const
+{
+    notImplemented("Foam::scalar Foam::liquid::pv(scalar, scalar) const");
+    return 0.0;
+}
+
+
+Foam::scalar Foam::liquid::hl(scalar p, scalar T) const
+{
+    notImplemented("Foam::scalar Foam::liquid::hl(scalar, scalar) const");
+    return 0.0;
+}
+
+
+Foam::scalar Foam::liquid::Cp(scalar p, scalar T) const
+{
+    notImplemented("Foam::scalar Foam::liquid::Cp(scalar, scalar) const");
+    return 0.0;
+}
+
+
+Foam::scalar Foam::liquid::h(scalar p, scalar T) const
+{
+    notImplemented("Foam::scalar Foam::liquid::h(scalar, scalar) const");
+    return 0.0;
+}
+
+
+Foam::scalar Foam::liquid::Cpg(scalar p, scalar T) const
+{
+    notImplemented("Foam::scalar Foam::liquid::Cpg(scalar, scalar) const");
+    return 0.0;
+}
+
+
+Foam::scalar Foam::liquid::mu(scalar p, scalar T) const
+{
+    notImplemented("Foam::scalar Foam::liquid::mu(scalar, scalar) const");
+    return 0.0;
+}
+
+
+Foam::scalar Foam::liquid::mug(scalar p, scalar T) const
+{
+    notImplemented("Foam::scalar Foam::liquid::mug(scalar, scalar) const");
+    return 0.0;
+}
+
+
+Foam::scalar Foam::liquid::K(scalar p, scalar T) const
+{
+    notImplemented("Foam::scalar Foam::liquid::K(scalar, scalar) const");
+    return 0.0;
+}
+
+
+Foam::scalar Foam::liquid::Kg(scalar p, scalar T) const
+{
+    notImplemented("Foam::scalar Foam::liquid::Kg(scalar, scalar) const");
+    return 0.0;
+}
+
+
+Foam::scalar Foam::liquid::sigma(scalar p, scalar T) const
+{
+    notImplemented("Foam::scalar Foam::liquid::sigms(scalar, scalar) const");
+    return 0.0;
+}
+
+
+Foam::scalar Foam::liquid::D(scalar p, scalar T) const
+{
+    notImplemented("Foam::scalar Foam::liquid::D(scalar, scalar) const");
+    return 0.0;
+}
+
+
+Foam::scalar Foam::liquid::D(scalar p, scalar T, scalar Wb) const
+{
+    notImplemented("Foam::scalar Foam::liquid::D(scalar, scalar) const");
+    return 0.0;
+}
+
+
+void Foam::liquid::writeData(Ostream& os) const
+{
+
+    os  << W_ << token::SPACE
+        << Tc_ << token::SPACE
+        << Pc_ << token::SPACE
+        << Vc_ << token::SPACE
+        << Zc_ << token::SPACE
+        << Tt_ << token::SPACE
+        << Pt_ << token::SPACE
+        << Tb_ << token::SPACE
+        << dipm_ << token::SPACE
+        << omega_<< token::SPACE
+        << delta_;
+}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/liquid/liquid.H b/src/thermophysicalModels/liquids/liquid/liquid.H
index 005058857e568ca745f35501bcf890f87f2cd8e1..ab3b876d9b0a6d737a853795856c08fdb1073fd7 100644
--- a/src/thermophysicalModels/liquids/liquid/liquid.H
+++ b/src/thermophysicalModels/liquids/liquid/liquid.H
@@ -148,6 +148,15 @@ public:
         //- Construct from dictionary
         liquid(const dictionary& dict);
 
+        //- Construct copy
+        liquid(const liquid& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new liquid(*this));
+        }
+
 
     // Selectors
 
@@ -204,58 +213,49 @@ public:
         // Physical property pure virtual functions
 
             //- Liquid rho [kg/m^3]
-            virtual scalar rho(scalar p, scalar T) const = 0;
+            virtual scalar rho(scalar p, scalar T) const;
 
             //- Vapour pressure [Pa]
-            virtual scalar pv(scalar p, scalar T) const = 0;
+            virtual scalar pv(scalar p, scalar T) const;
 
             //- Heat of vapourisation [J/kg]
-            virtual scalar hl(scalar p, scalar T) const = 0;
+            virtual scalar hl(scalar p, scalar T) const;
 
             //- Liquid heat capacity [J/(kg K)]
-            virtual scalar Cp(scalar p, scalar T) const = 0;
+            virtual scalar Cp(scalar p, scalar T) const;
 
             //- Liquid enthalpy [J/kg] - reference to 298.15 K
-            virtual scalar h(scalar p, scalar T) const = 0;
+            virtual scalar h(scalar p, scalar T) const;
 
             //- Ideal gas heat capacity [J/(kg K)]
-            virtual scalar Cpg(scalar p, scalar T) const = 0;
+            virtual scalar Cpg(scalar p, scalar T) const;
 
             //- Liquid viscosity [Pa s]
-            virtual scalar mu(scalar p, scalar T) const = 0;
+            virtual scalar mu(scalar p, scalar T) const;
 
             //- Vapour viscosity [Pa s]
-            virtual scalar mug(scalar p, scalar T) const = 0;
+            virtual scalar mug(scalar p, scalar T) const;
 
             //- Liquid thermal conductivity  [W/(m K)]
-            virtual scalar K(scalar p, scalar T) const = 0;
+            virtual scalar K(scalar p, scalar T) const;
 
             //- Vapour thermal conductivity  [W/(m K)]
-            virtual scalar Kg(scalar p, scalar T) const = 0;
+            virtual scalar Kg(scalar p, scalar T) const;
 
             //- Surface tension [N/m]
-            virtual scalar sigma(scalar p, scalar T) const = 0;
+            virtual scalar sigma(scalar p, scalar T) const;
 
             //- Vapour diffussivity [m2/s]
-            virtual scalar D(scalar p, scalar T) const = 0;
+            virtual scalar D(scalar p, scalar T) const;
 
             //- Vapour diffussivity [m2/s] with specified binary pair
-            virtual scalar D(scalar p, scalar T, scalar Wb) const = 0;
+            virtual scalar D(scalar p, scalar T, scalar Wb) const;
 
 
     // I-O
 
         //- Write the function coefficients
-        virtual void writeData(Ostream& os) const
-        {
-            os  << W_ << token::SPACE
-                << Tc_ << token::SPACE
-                << Pc_ << token::SPACE
-                << Vc_ << token::SPACE
-                << dipm_ << token::SPACE
-                << omega_<< token::SPACE
-                << delta_;
-        }
+        virtual void writeData(Ostream& os) const;
 
         //- Ostream Operator
         friend Ostream& operator<<(Ostream& os, const liquid& l)
diff --git a/src/thermophysicalModels/liquids/nC3H8O/nC3H8O.C b/src/thermophysicalModels/liquids/nC3H8O/nC3H8O.C
index 6d816baa76e4a3110b32f60fd1a96b6fc4af0f19..6725c00493a249e6529588af460c31cdfeb7e4a0 100644
--- a/src/thermophysicalModels/liquids/nC3H8O/nC3H8O.C
+++ b/src/thermophysicalModels/liquids/nC3H8O/nC3H8O.C
@@ -166,4 +166,23 @@ Foam::nC3H8O::nC3H8O(const dictionary& dict)
 {}
 
 
+Foam::nC3H8O::nC3H8O(const nC3H8O& liq)
+:
+    liquid(liq),
+    rho_(liq.rho_),
+    pv_(liq.pv_),
+    hl_(liq.hl_),
+    Cp_(liq.Cp_),
+    h_(liq.h_),
+    Cpg_(liq.Cpg_),
+    B_(liq.B_),
+    mu_(liq.mu_),
+    mug_(liq.mug_),
+    K_(liq.K_),
+    Kg_(liq.Kg_),
+    sigma_(liq.sigma_),
+    D_(liq.D_)
+{}
+
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/liquids/nC3H8O/nC3H8O.H b/src/thermophysicalModels/liquids/nC3H8O/nC3H8O.H
index f4751b0fcf093c9e2c13a36b051bface618b6647..1f34a5ca74ec73d2f4488fa4a07c86b391cbc35e 100644
--- a/src/thermophysicalModels/liquids/nC3H8O/nC3H8O.H
+++ b/src/thermophysicalModels/liquids/nC3H8O/nC3H8O.H
@@ -111,6 +111,15 @@ public:
         //- Construct from dictionary
         nC3H8O(const dictionary& dict);
 
+        //- Construct copy
+        nC3H8O(const nC3H8O& liq);
+
+        //- Construct and return clone
+        virtual autoPtr<liquid> clone() const
+        {
+            return autoPtr<liquid>(new nC3H8O(*this));
+        }
+
 
     // Member Functions