From 8ce75feb7a6b91bb98b71195819851d774811723 Mon Sep 17 00:00:00 2001 From: laurence Date: Thu, 5 Jan 2012 12:21:31 +0000 Subject: [PATCH 01/25] BUG: List constructor now uses deref op instead of operator()()- mantis #219 --- applications/test/List/Test-List.C | 31 +++++++++++++++++++++++ src/OpenFOAM/containers/Lists/List/List.C | 2 +- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/applications/test/List/Test-List.C b/applications/test/List/Test-List.C index 681e6796ef..ca303d53b7 100644 --- a/applications/test/List/Test-List.C +++ b/applications/test/List/Test-List.C @@ -37,6 +37,8 @@ Description #include "vector.H" #include "ListOps.H" +#include + using namespace Foam; @@ -117,6 +119,35 @@ int main(int argc, char *argv[]) << "-wordList: " << wLst << nl << "-stringList: " << sLst << endl; + + Info<< nl + << "Test List Iterator Constuctor" << endl; + + List initialList(IStringStream("((0 1 2) (3 4 5) (6 7 8))")()); + + Info<< " Initial List: " << initialList << endl; + + List iteratorList(initialList.begin(), initialList.end()); + + Info<< " Foam::List constructed from Foam::List: " + << iteratorList << endl; + + std::list stlList(initialList.begin(), initialList.end()); + + Info<< " std::list constructed from Foam::List: "; + + std::list::iterator it; + for (it=stlList.begin(); it != stlList.end(); it++) + { + Info<< *it << " "; + } + Info<< endl; + + List iteratorSTLList(stlList.begin(), stlList.end()); + + Info<< " Foam::List constructed from std::list: " + << iteratorList << endl; + return 0; } diff --git a/src/OpenFOAM/containers/Lists/List/List.C b/src/OpenFOAM/containers/Lists/List/List.C index 7e9e741a0e..5f97921e3d 100644 --- a/src/OpenFOAM/containers/Lists/List/List.C +++ b/src/OpenFOAM/containers/Lists/List/List.C @@ -200,7 +200,7 @@ Foam::List::List(InputIterator first, InputIterator last) ++iter ) { - this->operator[](s++) = iter(); + this->operator[](s++) = *iter; } } From e0824b96927cc0694369983bf9b728d79e2e9ba2 Mon Sep 17 00:00:00 2001 From: laurence Date: Thu, 5 Jan 2012 17:45:46 +0000 Subject: [PATCH 02/25] BUG: objToVTK: Do not print vertex normal header in vtk if none are in the obj --- .../utilities/mesh/manipulation/objToVTK/objToVTK.C | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/applications/utilities/mesh/manipulation/objToVTK/objToVTK.C b/applications/utilities/mesh/manipulation/objToVTK/objToVTK.C index 76babb0b8c..4ff721f485 100644 --- a/applications/utilities/mesh/manipulation/objToVTK/objToVTK.C +++ b/applications/utilities/mesh/manipulation/objToVTK/objToVTK.C @@ -273,12 +273,16 @@ int main(int argc, char *argv[]) } } - outFile << nl << "NORMALS pointNormals float\n"; - forAll(pointNormals, i) + if (!pointNormals.empty()) { - const vector& n = pointNormals[i]; + outFile << nl << "NORMALS pointNormals float\n"; - outFile << n.x() << ' ' << n.y() << ' ' << n.z() << nl; + forAll(pointNormals, i) + { + const vector& n = pointNormals[i]; + + outFile << n.x() << ' ' << n.y() << ' ' << n.z() << nl; + } } Info<< "End\n" << endl; From 05d2ab92dd55951214c9c5bdf24be7a4f6553b56 Mon Sep 17 00:00:00 2001 From: andy Date: Tue, 10 Jan 2012 11:48:32 +0000 Subject: [PATCH 03/25] ENH: Updated liquid evaporation/boiling model in lagrangian intermediate library --- .../LiquidEvaporationBoil.C | 54 ++++++++++--------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C index 651d95d1c6..ced9a98221 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C @@ -157,8 +157,8 @@ void Foam::LiquidEvaporationBoil::calculate // liquid volume fraction const scalarField X(liquids_.X(Yl)); - // droplet surface pressure - scalar ps = liquids_.pv(pc, T, X); + // droplet vapour surface pressure + scalar ps = liquids_.pv(pc, Ts, X); // vapour density at droplet surface [kg/m3] scalar rhos = ps*liquids_.W(X)/(specie::RR*Ts); @@ -178,66 +178,64 @@ void Foam::LiquidEvaporationBoil::calculate const label lid = liqToLiqMap_[i]; // boiling temperature at cell pressure for liquid species lid [K] - const scalar TBoil = liquids_.properties()[lid].pvInvert(pc); + const scalar TBoil = liquids_.properties()[lid].pvInvert(ps); // limit droplet temperature to boiling/critical temperature const scalar Td = min(T, 0.999*TBoil); // saturation pressure for liquid species lid [Pa] - const scalar pSat = liquids_.properties()[lid].pv(pc, Td); + const scalar pSat = liquids_.properties()[lid].pv(ps, Td); // carrier phase concentration const scalar Xc = XcMix[gid]; + if (Xc*pc > pSat) { // saturated vapour - no phase change } else { + // vapour diffusivity [m2/s] + const scalar Dab = liquids_.properties()[lid].D(ps, Td); + + // Schmidt number + const scalar Sc = nu/(Dab + ROOTVSMALL); + + // Sherwood number + const scalar Sh = this->Sh(Re, Sc); + + if (pSat > 0.999*pc) { // boiling -// const scalar deltaT = max(Tc - Td, 0.5); - const scalar deltaT = max(Tc - T, 0.5); + const scalar deltaT = max(T - TBoil, 0.5); // liquid specific heat capacity const scalar Cp = liquids_.properties()[lid].Cp(pc, Td); - // vapour heat of fomation + // vapour heat of formation const scalar hv = liquids_.properties()[lid].hl(pc, Td); - // Nusselt number - const scalar Nu = 2.0 + 0.6*sqrt(Re)*cbrt(Pr); - const scalar lg = log(1.0 + Cp*deltaT/max(SMALL, hv)); // mass transfer [kg] - dMassPC[lid] += pi*kappac*Nu*lg*d/Cp*dt; + // NOTE: Using Sherwood number instead of Nusselt number + dMassPC[lid] += pi*kappac*Sh*lg*d/Cp*dt; } else { // evaporation // surface molar fraction - Raoult's Law - const scalar Xs = X[lid]*pSat/pc; + const scalar Xs = X[lid]*pSat/ps; // molar ratio const scalar Xr = (Xs - Xc)/max(SMALL, 1.0 - Xs); - if (Xr > 0) { - // vapour diffusivity [m2/s] - const scalar Dab = liquids_.properties()[lid].D(pc, Td); - - // Schmidt number - const scalar Sc = nu/(Dab + ROOTVSMALL); - - // Sherwood number - const scalar Sh = this->Sh(Re, Sc); - // mass transfer coefficient [m/s] const scalar kc = Sh*Dab/(d + ROOTVSMALL); @@ -261,18 +259,24 @@ Foam::scalar Foam::LiquidEvaporationBoil::dh { scalar dh = 0; + scalar TDash = T; + if (liquids_.properties()[idl].pv(p, T) >= 0.999*p) + { + TDash = liquids_.properties()[idl].pvInvert(p); + } + typedef PhaseChangeModel parent; switch (parent::enthalpyTransfer_) { case (parent::etLatentHeat): { - dh = liquids_.properties()[idl].hl(p, T); + dh = liquids_.properties()[idl].hl(p, TDash); break; } case (parent::etEnthalpyDifference): { - scalar hc = this->owner().composition().carrier().H(idc, T); - scalar hp = liquids_.properties()[idl].h(p, T); + scalar hc = this->owner().composition().carrier().H(idc, TDash); + scalar hp = liquids_.properties()[idl].h(p, TDash); dh = hc - hp; break; From cd082ff459fa90a81bc7e88b0bf45514dcee0f82 Mon Sep 17 00:00:00 2001 From: andy Date: Tue, 10 Jan 2012 15:22:49 +0000 Subject: [PATCH 04/25] ENH: Further updates to liquid boiling model with contribution from Niklas Nordin --- .../LiquidEvaporationBoil.C | 86 ++++++++++++++----- .../LiquidEvaporationBoil.H | 11 ++- 2 files changed, 73 insertions(+), 24 deletions(-) diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C index ced9a98221..9887cf3897 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C @@ -157,19 +157,12 @@ void Foam::LiquidEvaporationBoil::calculate // liquid volume fraction const scalarField X(liquids_.X(Yl)); - // droplet vapour surface pressure + // droplet surface pressure assumed to surface vapour pressure scalar ps = liquids_.pv(pc, Ts, X); // vapour density at droplet surface [kg/m3] scalar rhos = ps*liquids_.W(X)/(specie::RR*Ts); - // thermal conductivity of carrier [W/m/K] - scalar kappac = 0.0; - forAll(this->owner().thermo().carrier().Y(), i) - { - const scalar Yc = this->owner().thermo().carrier().Y()[i][cellI]; - kappac += Yc*this->owner().thermo().carrier().kappa(i, Ts); - } // calculate mass transfer of each specie in liquid forAll(activeLiquids_, i) @@ -178,13 +171,13 @@ void Foam::LiquidEvaporationBoil::calculate const label lid = liqToLiqMap_[i]; // boiling temperature at cell pressure for liquid species lid [K] - const scalar TBoil = liquids_.properties()[lid].pvInvert(ps); + const scalar TBoil = liquids_.properties()[lid].pvInvert(pc); // limit droplet temperature to boiling/critical temperature const scalar Td = min(T, 0.999*TBoil); // saturation pressure for liquid species lid [Pa] - const scalar pSat = liquids_.properties()[lid].pv(ps, Td); + const scalar pSat = liquids_.properties()[lid].pv(pc, Td); // carrier phase concentration const scalar Xc = XcMix[gid]; @@ -197,7 +190,7 @@ void Foam::LiquidEvaporationBoil::calculate else { // vapour diffusivity [m2/s] - const scalar Dab = liquids_.properties()[lid].D(ps, Td); + const scalar Dab = liquids_.properties()[lid].D(ps, Ts); // Schmidt number const scalar Sc = nu/(Dab + ROOTVSMALL); @@ -212,35 +205,82 @@ void Foam::LiquidEvaporationBoil::calculate const scalar deltaT = max(T - TBoil, 0.5); - // liquid specific heat capacity - const scalar Cp = liquids_.properties()[lid].Cp(pc, Td); + scalar Hsc = 0.0; + scalar Hc = 0.0; + scalar Cpc = 0.0; + scalar kappac = 0.0; + forAll(this->owner().thermo().carrier().Y(), i) + { + scalar Yc = this->owner().thermo().carrier().Y()[i][cellI]; + Hc += Yc*this->owner().thermo().carrier().H(i, Tc); + Hsc += Yc*this->owner().thermo().carrier().H(i, Ts); + Cpc += Yc*this->owner().thermo().carrier().Cp(i, Ts); + kappac += Yc*this->owner().thermo().carrier().kappa(i, Ts); + } // vapour heat of formation const scalar hv = liquids_.properties()[lid].hl(pc, Td); - const scalar lg = log(1.0 + Cp*deltaT/max(SMALL, hv)); + // empirical heat transfer coefficient W/m2/K + scalar alphaS = 0.0; + if (deltaT < 5.0) + { + alphaS = 760.0*pow(deltaT, 0.26); + } + else if (deltaT < 25.0) + { + alphaS = 27.0*pow(deltaT, 2.33); + } + else + { + alphaS = 13800.0*pow(deltaT, 0.39); + } - // mass transfer [kg] - // NOTE: Using Sherwood number instead of Nusselt number - dMassPC[lid] += pi*kappac*Sh*lg*d/Cp*dt; + // flash-boil vaporisation rate + const scalar Gf = alphaS*deltaT*pi*sqr(d)/hv; + + // model constants + // NOTE: using Sherwood number instead of Nusselt number + const scalar A = (Hc - Hsc)/hv; + const scalar B = pi*kappac/Cpc*d*Sh; + + scalar G = 0.0; + if (A > 0.0) + { + // heat transfer from the surroundings contributes + // to the vaporisation process + scalar Gr = 1e-5; + + for (label i=0; i<50; i++) + { + scalar GrDash = Gr; + + G = B/(1.0 + Gr)*log(1.0 + A*(1.0 + Gr)); + Gr = Gf/G; + + if (mag(Gr - GrDash)/GrDash < 1e-3) + { + break; + } + } + } + + dMassPC[lid] += (G + Gf)*dt; } else { // evaporation // surface molar fraction - Raoult's Law - const scalar Xs = X[lid]*pSat/ps; + const scalar Xs = X[lid]*pSat/pc; // molar ratio const scalar Xr = (Xs - Xc)/max(SMALL, 1.0 - Xs); if (Xr > 0) { - // mass transfer coefficient [m/s] - const scalar kc = Sh*Dab/(d + ROOTVSMALL); - // mass transfer [kg] - dMassPC[lid] += pi*sqr(d)*kc*rhos*log(1.0 + Xr)*dt; + dMassPC[lid] += pi*d*Sh*Dab*rhos*log(1.0 + Xr)*dt; } } } @@ -291,7 +331,7 @@ Foam::scalar Foam::LiquidEvaporationBoil::dh "const label, " "const label, " "const label" - ")" + ") const" ) << "Unknown enthalpyTransfer type" << abort(FatalError); } } diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.H index f16ea47be9..48d92292cd 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.H +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.H @@ -27,7 +27,16 @@ Class Description Liquid evaporation model - uses ideal gas assumption - - includes boiling model + - includes boiling model based on: + + \verbatim + "Studies of Superheated Fuel Spray Structures and Vaporization in + GDI Engines" + + Zuo, B., Gomes, A. M. and Rutland C. J. + + International Journal of Engine Research, 2000, Vol. 1(4), pp. 321-336 + \endverbatim \*---------------------------------------------------------------------------*/ From 5cb322dbdc9237d6d4910d2b353c437aff58c3b4 Mon Sep 17 00:00:00 2001 From: andy Date: Tue, 10 Jan 2012 15:24:32 +0000 Subject: [PATCH 05/25] ENH: Restricted pEqn maxIter to 20 for parcel evaporation tutorial case --- .../parcelInBox/system/fvSolution | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/parcelInBox/system/fvSolution b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/parcelInBox/system/fvSolution index 6622d336f4..b4db5d1593 100644 --- a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/parcelInBox/system/fvSolution +++ b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/parcelInBox/system/fvSolution @@ -59,6 +59,7 @@ solvers nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; + maxIter 20; } pFinal @@ -66,7 +67,6 @@ solvers $p; tolerance 1e-06; relTol 0; - maxIter 20; } "(Yi|O2|N2|H2O)" From 396ba5f24e77c5254ccd78d8d9eb01ebf1d106b6 Mon Sep 17 00:00:00 2001 From: andy Date: Tue, 10 Jan 2012 15:29:04 +0000 Subject: [PATCH 06/25] ENH: Further updates to liquid boiling code --- .../LiquidEvaporationBoil.C | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C index 9887cf3897..643beb55e1 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C @@ -163,6 +163,19 @@ void Foam::LiquidEvaporationBoil::calculate // vapour density at droplet surface [kg/m3] scalar rhos = ps*liquids_.W(X)/(specie::RR*Ts); + // carrier thermo properties + scalar Hsc = 0.0; + scalar Hc = 0.0; + scalar Cpc = 0.0; + scalar kappac = 0.0; + forAll(this->owner().thermo().carrier().Y(), i) + { + scalar Yc = this->owner().thermo().carrier().Y()[i][cellI]; + Hc += Yc*this->owner().thermo().carrier().H(i, Tc); + Hsc += Yc*this->owner().thermo().carrier().H(i, Ts); + Cpc += Yc*this->owner().thermo().carrier().Cp(i, Ts); + kappac += Yc*this->owner().thermo().carrier().kappa(i, Ts); + } // calculate mass transfer of each specie in liquid forAll(activeLiquids_, i) @@ -205,19 +218,6 @@ void Foam::LiquidEvaporationBoil::calculate const scalar deltaT = max(T - TBoil, 0.5); - scalar Hsc = 0.0; - scalar Hc = 0.0; - scalar Cpc = 0.0; - scalar kappac = 0.0; - forAll(this->owner().thermo().carrier().Y(), i) - { - scalar Yc = this->owner().thermo().carrier().Y()[i][cellI]; - Hc += Yc*this->owner().thermo().carrier().H(i, Tc); - Hsc += Yc*this->owner().thermo().carrier().H(i, Ts); - Cpc += Yc*this->owner().thermo().carrier().Cp(i, Ts); - kappac += Yc*this->owner().thermo().carrier().kappa(i, Ts); - } - // vapour heat of formation const scalar hv = liquids_.properties()[lid].hl(pc, Td); From 8267f356b241c488d56dfb6bbf0a8afff7b1ef78 Mon Sep 17 00:00:00 2001 From: sergio Date: Tue, 10 Jan 2012 15:30:44 +0000 Subject: [PATCH 07/25] ENH: Creation of fieldSources lib. Remove of fieldSources from /src/finiteVolume/cfdTools/general --- src/fieldSources/Make/files | 28 ++ src/fieldSources/Make/options | 17 ++ .../actuationDiskSource/actuationDiskSource.C | 0 .../actuationDiskSource/actuationDiskSource.H | 0 .../actuationDiskSourceTemplates.C | 0 .../basicSource/IObasicSourceList.C | 0 .../basicSource/IObasicSourceList.H | 0 .../basicSource/basicSource/basicSource.C | 84 +++++- .../basicSource/basicSource/basicSource.H | 36 ++- .../basicSource/basicSource/basicSourceI.H | 17 ++ .../basicSource/basicSource/basicSourceIO.C | 4 + .../basicSource/basicSource/basicSourceList.C | 0 .../basicSource/basicSource/basicSourceList.H | 0 .../basicSource/basicSourceListTemplates.C | 0 .../basicSource/basicSource/makeBasicSource.H | 0 .../explicitSetValue/ExplicitSetValue.C | 0 .../explicitSetValue/ExplicitSetValue.H | 0 .../explicitSetValue/ExplicitSetValueIO.C | 0 .../explicitSetValue/explicitSetValue.C | 0 .../explicitSource/ExplicitSource.C | 0 .../explicitSource/ExplicitSource.H | 0 .../explicitSource/ExplicitSourceI.H | 0 .../explicitSource/ExplicitSourceIO.C | 0 .../explicitSource/explicitSource.C | 0 .../constantHeatTransfer.C | 141 +++++++++ .../constantHeatTransfer.H | 110 +++++++ .../interRegionHeatTransferModel.C | 273 ++++++++++++++++++ .../interRegionHeatTransferModel.H | 139 +++++++++ .../tabulatedHeatTransfer.C | 155 ++++++++++ .../tabulatedHeatTransfer.H | 112 +++++++ .../variableHeatTransfer.C | 187 ++++++++++++ .../variableHeatTransfer.H | 128 ++++++++ .../pressureGradientExplicitSource.C | 0 .../pressureGradientExplicitSource.H | 0 .../pressureGradientExplicitSourceIO.C | 0 .../radialActuationDiskSource.C | 0 .../radialActuationDiskSource.H | 0 .../radialActuationDiskSourceTemplates.C | 0 .../rotorDiskSource/bladeModel/bladeModel.C | 0 .../rotorDiskSource/bladeModel/bladeModel.H | 0 .../profileModel/lookup/lookupProfile.C | 0 .../profileModel/lookup/lookupProfile.H | 0 .../profileModel/profileModel.C | 0 .../profileModel/profileModel.H | 0 .../profileModel/profileModelList.C | 0 .../profileModel/profileModelList.H | 0 .../profileModel/series/seriesProfile.C | 0 .../profileModel/series/seriesProfile.H | 0 .../rotorDiskSource/rotorDiskSource.C | 0 .../rotorDiskSource/rotorDiskSource.H | 0 .../rotorDiskSourceTemplates.C | 0 51 files changed, 1418 insertions(+), 13 deletions(-) create mode 100644 src/fieldSources/Make/files create mode 100644 src/fieldSources/Make/options rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/actuationDiskSource/actuationDiskSource.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/actuationDiskSource/actuationDiskSource.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/actuationDiskSource/actuationDiskSourceTemplates.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/basicSource/IObasicSourceList.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/basicSource/IObasicSourceList.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/basicSource/basicSource.C (78%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/basicSource/basicSource.H (91%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/basicSource/basicSourceI.H (88%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/basicSource/basicSourceIO.C (97%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/basicSource/basicSourceList.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/basicSource/basicSourceList.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/basicSource/basicSourceListTemplates.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/basicSource/makeBasicSource.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/explicitSetValue/ExplicitSetValue.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/explicitSetValue/ExplicitSetValue.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/explicitSetValue/ExplicitSetValueIO.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/explicitSetValue/explicitSetValue.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/explicitSource/ExplicitSource.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/explicitSource/ExplicitSource.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/explicitSource/ExplicitSourceI.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/explicitSource/ExplicitSourceIO.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/explicitSource/explicitSource.C (100%) create mode 100644 src/fieldSources/basicSource/interRegionHeatTransferModel/constantHeatTransfer/constantHeatTransfer.C create mode 100644 src/fieldSources/basicSource/interRegionHeatTransferModel/constantHeatTransfer/constantHeatTransfer.H create mode 100644 src/fieldSources/basicSource/interRegionHeatTransferModel/interRegionHeatTransferModel/interRegionHeatTransferModel.C create mode 100644 src/fieldSources/basicSource/interRegionHeatTransferModel/interRegionHeatTransferModel/interRegionHeatTransferModel.H create mode 100644 src/fieldSources/basicSource/interRegionHeatTransferModel/tabulatedHeatTransfer/tabulatedHeatTransfer.C create mode 100644 src/fieldSources/basicSource/interRegionHeatTransferModel/tabulatedHeatTransfer/tabulatedHeatTransfer.H create mode 100644 src/fieldSources/basicSource/interRegionHeatTransferModel/variableHeatTransfer/variableHeatTransfer.C create mode 100644 src/fieldSources/basicSource/interRegionHeatTransferModel/variableHeatTransfer/variableHeatTransfer.H rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/pressureGradientExplicitSource/pressureGradientExplicitSource.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/pressureGradientExplicitSource/pressureGradientExplicitSource.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/pressureGradientExplicitSource/pressureGradientExplicitSourceIO.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/radialActuationDiskSource/radialActuationDiskSource.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/radialActuationDiskSource/radialActuationDiskSource.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/radialActuationDiskSource/radialActuationDiskSourceTemplates.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/rotorDiskSource/bladeModel/bladeModel.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/rotorDiskSource/bladeModel/bladeModel.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/rotorDiskSource/profileModel/lookup/lookupProfile.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/rotorDiskSource/profileModel/lookup/lookupProfile.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/rotorDiskSource/profileModel/profileModel.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/rotorDiskSource/profileModel/profileModel.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/rotorDiskSource/profileModel/profileModelList.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/rotorDiskSource/profileModel/profileModelList.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/rotorDiskSource/profileModel/series/seriesProfile.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/rotorDiskSource/profileModel/series/seriesProfile.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/rotorDiskSource/rotorDiskSource.C (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/rotorDiskSource/rotorDiskSource.H (100%) rename src/{finiteVolume/cfdTools/general => }/fieldSources/basicSource/rotorDiskSource/rotorDiskSourceTemplates.C (100%) diff --git a/src/fieldSources/Make/files b/src/fieldSources/Make/files new file mode 100644 index 0000000000..0df9defae4 --- /dev/null +++ b/src/fieldSources/Make/files @@ -0,0 +1,28 @@ +basicSource/basicSource/basicSource.C +basicSource/basicSource/basicSourceIO.C +basicSource/basicSource/basicSourceList.C +basicSource/basicSource/IObasicSourceList.C + +basicSource/pressureGradientExplicitSource/pressureGradientExplicitSource.C +basicSource/pressureGradientExplicitSource/pressureGradientExplicitSourceIO.C + +basicSource/explicitSource/explicitSource.C +basicSource/explicitSetValue/explicitSetValue.C + +basicSource/rotorDiskSource/rotorDiskSource.C +basicSource/rotorDiskSource/bladeModel/bladeModel.C +basicSource/rotorDiskSource/profileModel/profileModel.C +basicSource/rotorDiskSource/profileModel/profileModelList.C +basicSource/rotorDiskSource/profileModel/lookup/lookupProfile.C +basicSource/rotorDiskSource/profileModel/series/seriesProfile.C + +basicSource/actuationDiskSource/actuationDiskSource.C +basicSource/radialActuationDiskSource/radialActuationDiskSource.C + +interRegion = basicSource/interRegionHeatTransferModel +$(interRegion)/interRegionHeatTransferModel/interRegionHeatTransferModel.C +$(interRegion)/constantHeatTransfer/constantHeatTransfer.C +$(interRegion)/tabulatedHeatTransfer/tabulatedHeatTransfer.C +$(interRegion)/variableHeatTransfer/variableHeatTransfer.C + +LIB = $(FOAM_LIBBIN)/libfieldSources \ No newline at end of file diff --git a/src/fieldSources/Make/options b/src/fieldSources/Make/options new file mode 100644 index 0000000000..bb78896172 --- /dev/null +++ b/src/fieldSources/Make/options @@ -0,0 +1,17 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/basicSolidThermo/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ + -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel/lnInclude \ + -I$(LIB_SRC)/turbulenceModels + + +LIB_LIBS = \ + -lfiniteVolume \ + -lsampling \ + -lmeshTools \ + -lbasicSolidThermo \ + -lcompressibleTurbulenceModel diff --git a/src/finiteVolume/cfdTools/general/fieldSources/basicSource/actuationDiskSource/actuationDiskSource.C b/src/fieldSources/basicSource/actuationDiskSource/actuationDiskSource.C similarity index 100% rename from src/finiteVolume/cfdTools/general/fieldSources/basicSource/actuationDiskSource/actuationDiskSource.C rename to src/fieldSources/basicSource/actuationDiskSource/actuationDiskSource.C diff --git a/src/finiteVolume/cfdTools/general/fieldSources/basicSource/actuationDiskSource/actuationDiskSource.H b/src/fieldSources/basicSource/actuationDiskSource/actuationDiskSource.H similarity index 100% rename from src/finiteVolume/cfdTools/general/fieldSources/basicSource/actuationDiskSource/actuationDiskSource.H rename to src/fieldSources/basicSource/actuationDiskSource/actuationDiskSource.H diff --git a/src/finiteVolume/cfdTools/general/fieldSources/basicSource/actuationDiskSource/actuationDiskSourceTemplates.C b/src/fieldSources/basicSource/actuationDiskSource/actuationDiskSourceTemplates.C similarity index 100% rename from src/finiteVolume/cfdTools/general/fieldSources/basicSource/actuationDiskSource/actuationDiskSourceTemplates.C rename to src/fieldSources/basicSource/actuationDiskSource/actuationDiskSourceTemplates.C diff --git a/src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/IObasicSourceList.C b/src/fieldSources/basicSource/basicSource/IObasicSourceList.C similarity index 100% rename from src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/IObasicSourceList.C rename to src/fieldSources/basicSource/basicSource/IObasicSourceList.C diff --git a/src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/IObasicSourceList.H b/src/fieldSources/basicSource/basicSource/IObasicSourceList.H similarity index 100% rename from src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/IObasicSourceList.H rename to src/fieldSources/basicSource/basicSource/IObasicSourceList.H diff --git a/src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/basicSource.C b/src/fieldSources/basicSource/basicSource/basicSource.C similarity index 78% rename from src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/basicSource.C rename to src/fieldSources/basicSource/basicSource/basicSource.C index da790fab4d..40f283a78a 100644 --- a/src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/basicSource.C +++ b/src/fieldSources/basicSource/basicSource/basicSource.C @@ -38,16 +38,17 @@ namespace Foam template<> const char* NamedEnum < basicSource::selectionModeType, - 4 + 5 >::names[] = { "points", "cellSet", "cellZone", + "mapRegion", "all" }; - const NamedEnum + const NamedEnum basicSource::selectionModeTypeNames_; } @@ -73,6 +74,13 @@ void Foam::basicSource::setSelection(const dictionary& dict) dict.lookup("cellZone") >> cellSetName_; break; } + case smMapRegion: + { + dict_.lookup("secondarySourceName") >> secondarySourceName_; + dict_.lookup("mapRegionName") >> mapRegionName_; + master_ = readBool(dict_.lookup("master")); + break; + } case smAll: { break; @@ -151,6 +159,47 @@ void Foam::basicSource::setCellSet() break; } + case smMapRegion: + { + if(active_) + { + Info<< indent << "- selecting inter region mapping" << endl; + const fvMesh& secondaryMesh = + mesh_.time().lookupObject(mapRegionName_); + const boundBox primaryBB = mesh_.bounds(); + const boundBox secondaryBB = secondaryMesh.bounds(); + if (secondaryBB.overlaps(primaryBB)) + { + + // Dummy patches + wordList cuttingPatches; + HashTable patchMap; + + secondaryToPrimaryInterpPtr_.reset + ( + new meshToMesh + ( + secondaryMesh, + mesh_, + patchMap, + cuttingPatches + ) + ); + } + else + { + FatalErrorIn + ( + "Foam::basicSource::setCellSet()" + ) << "regions dont overlap " + << secondaryMesh.name() + << " in region " << mesh_.name() + << nl + << exit(FatalError); + } + } + break; + } case smAll: { Info<< indent << "- selecting all cells" << endl; @@ -169,16 +218,19 @@ void Foam::basicSource::setCellSet() } // Set volume information - V_ = 0.0; - forAll(cells_, i) + if(selectionMode_ != smMapRegion) { - V_ += mesh_.V()[cells_[i]]; - } - reduce(V_, sumOp()); + V_ = 0.0; + forAll(cells_, i) + { + V_ += mesh_.V()[cells_[i]]; + } + reduce(V_, sumOp()); - Info<< indent << "- selected " - << returnReduce(cells_.size(), sumOp