Compare commits
48 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d3fd147e6c | |||
| 4fb28506e8 | |||
| b492054bfd | |||
| 0602504866 | |||
| 9763346f31 | |||
| 00e347c45a | |||
| 1cc13ef87a | |||
| 166e3a7a1f | |||
| 1bc13ff592 | |||
| 2e39b995f6 | |||
| 35b809176d | |||
| dea248aecd | |||
| 26e2dcd5c7 | |||
| af7d7f427b | |||
| 9afef77a90 | |||
| d2c4174c4c | |||
| 199f87f327 | |||
| a9be0f471a | |||
| 9668a8ca7b | |||
| 32081b60f4 | |||
| 37207f3279 | |||
| b38715c4b1 | |||
| a2c8fc63d9 | |||
| 1e3889d08a | |||
| fa095c1fe8 | |||
| 535d1a46d2 | |||
| bf2812ed5a | |||
| abb4358f2b | |||
| 6f23328ef8 | |||
| c170b24e8e | |||
| 8bb011e46a | |||
| 9917d8a761 | |||
| 0f14683c11 | |||
| 1a0c91b3ba | |||
| 5c6e283b35 | |||
| ab3187783a | |||
| f6aa1105a5 | |||
| 78b00911ad | |||
| ff66723ebb | |||
| 50bf76a422 | |||
| 82b3c0c1d5 | |||
| 63b0469a7b | |||
| f2766db589 | |||
| e1944af08b | |||
| c7056f4734 | |||
| 8b86ccf55c | |||
| 66a81087c2 | |||
| f845197ccf |
@ -146,7 +146,7 @@ void PDRkEpsilon::correct()
|
|||||||
volScalarField GR(drag.Gk());
|
volScalarField GR(drag.Gk());
|
||||||
|
|
||||||
volScalarField LI
|
volScalarField LI
|
||||||
(C4_*(Lobs + dimensionedScalar("minLength", dimLength, vSmall)));
|
(C4_*(Lobs + dimensionedScalar("minLength", dimLength, rootVSmall)));
|
||||||
|
|
||||||
// Dissipation equation
|
// Dissipation equation
|
||||||
tmp<fvScalarMatrix> epsEqn
|
tmp<fvScalarMatrix> epsEqn
|
||||||
|
|||||||
@ -11,7 +11,7 @@ if (pimple.transonic())
|
|||||||
fvc::interpolate(psi)
|
fvc::interpolate(psi)
|
||||||
*(
|
*(
|
||||||
fvc::flux(HbyA)
|
fvc::flux(HbyA)
|
||||||
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
|
+ fvc::interpolate(betav*rho*rAU)*fvc::ddtCorr(rho, U, phi)
|
||||||
/fvc::interpolate(rho)
|
/fvc::interpolate(rho)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -42,7 +42,7 @@ else
|
|||||||
"phiHbyA",
|
"phiHbyA",
|
||||||
(
|
(
|
||||||
fvc::flux(rho*HbyA)
|
fvc::flux(rho*HbyA)
|
||||||
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
|
+ fvc::interpolate(betav*rho*rAU)*fvc::ddtCorr(rho, U, phi)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -48,7 +48,7 @@ Description
|
|||||||
#include "fvCFD.H"
|
#include "fvCFD.H"
|
||||||
#include "singlePhaseTransportModel.H"
|
#include "singlePhaseTransportModel.H"
|
||||||
#include "turbulentTransportModel.H"
|
#include "turbulentTransportModel.H"
|
||||||
#include "radiationModel.H"
|
#include "noRadiation.H"
|
||||||
#include "fvOptions.H"
|
#include "fvOptions.H"
|
||||||
#include "pimpleControl.H"
|
#include "pimpleControl.H"
|
||||||
|
|
||||||
|
|||||||
@ -48,7 +48,7 @@ Description
|
|||||||
#include "fvCFD.H"
|
#include "fvCFD.H"
|
||||||
#include "singlePhaseTransportModel.H"
|
#include "singlePhaseTransportModel.H"
|
||||||
#include "turbulentTransportModel.H"
|
#include "turbulentTransportModel.H"
|
||||||
#include "radiationModel.H"
|
#include "noRadiation.H"
|
||||||
#include "fvOptions.H"
|
#include "fvOptions.H"
|
||||||
#include "simpleControl.H"
|
#include "simpleControl.H"
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@ surfaceScalarField phiHbyA
|
|||||||
|
|
||||||
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
|
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
|
||||||
|
|
||||||
const bool closedVolume = adjustPhi(phiHbyA, U, p_rgh);
|
const bool closedVolume = mesh.steady() && adjustPhi(phiHbyA, U, p_rgh);
|
||||||
const bool adjustMass = closedVolume && !thermo.incompressible();
|
const bool adjustMass = closedVolume && !thermo.incompressible();
|
||||||
|
|
||||||
phiHbyA += phig;
|
phiHbyA += phig;
|
||||||
|
|||||||
@ -22,7 +22,7 @@ License
|
|||||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Application
|
Application
|
||||||
pimpleDyMFoam.C
|
pimpleFoam
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Transient solver for incompressible, turbulent flow of Newtonian fluids,
|
Transient solver for incompressible, turbulent flow of Newtonian fluids,
|
||||||
|
|||||||
@ -350,6 +350,25 @@ Foam::tmp<Foam::scalarField> Foam::twoPhaseMixtureThermo::kappa
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::tmp<Foam::volScalarField> Foam::twoPhaseMixtureThermo::alphahe() const
|
||||||
|
{
|
||||||
|
return
|
||||||
|
alpha1()*thermo1_->alphahe()
|
||||||
|
+ alpha2()*thermo2_->alphahe();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::tmp<Foam::scalarField> Foam::twoPhaseMixtureThermo::alphahe
|
||||||
|
(
|
||||||
|
const label patchi
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return
|
||||||
|
alpha1().boundaryField()[patchi]*thermo1_->alphahe(patchi)
|
||||||
|
+ alpha2().boundaryField()[patchi]*thermo2_->alphahe(patchi);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Foam::tmp<Foam::volScalarField> Foam::twoPhaseMixtureThermo::kappaEff
|
Foam::tmp<Foam::volScalarField> Foam::twoPhaseMixtureThermo::kappaEff
|
||||||
(
|
(
|
||||||
const volScalarField& alphat
|
const volScalarField& alphat
|
||||||
|
|||||||
@ -266,6 +266,12 @@ public:
|
|||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
|
//- Thermal diffusivity for energy of mixture [kg/m/s]
|
||||||
|
virtual tmp<volScalarField> alphahe() const;
|
||||||
|
|
||||||
|
//- Thermal diffusivity for energy of mixture for patch [kg/m/s]
|
||||||
|
virtual tmp<scalarField> alphahe(const label patchi) const;
|
||||||
|
|
||||||
//- Effective thermal diffusivity of mixture [J/m/s/K]
|
//- Effective thermal diffusivity of mixture [J/m/s/K]
|
||||||
virtual tmp<volScalarField> kappaEff
|
virtual tmp<volScalarField> kappaEff
|
||||||
(
|
(
|
||||||
|
|||||||
@ -603,6 +603,45 @@ Foam::tmp<Foam::scalarField> Foam::multiphaseMixtureThermo::kappa
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::alphahe() const
|
||||||
|
{
|
||||||
|
PtrDictionary<phaseModel>::const_iterator phasei = phases_.begin();
|
||||||
|
|
||||||
|
tmp<volScalarField> talphaEff(phasei()*phasei().thermo().alphahe());
|
||||||
|
|
||||||
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
|
{
|
||||||
|
talphaEff.ref() += phasei()*phasei().thermo().alphahe();
|
||||||
|
}
|
||||||
|
|
||||||
|
return talphaEff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::tmp<Foam::scalarField> Foam::multiphaseMixtureThermo::alphahe
|
||||||
|
(
|
||||||
|
const label patchi
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
PtrDictionary<phaseModel>::const_iterator phasei = phases_.begin();
|
||||||
|
|
||||||
|
tmp<scalarField> talphaEff
|
||||||
|
(
|
||||||
|
phasei().boundaryField()[patchi]
|
||||||
|
*phasei().thermo().alphahe(patchi)
|
||||||
|
);
|
||||||
|
|
||||||
|
for (++phasei; phasei != phases_.end(); ++phasei)
|
||||||
|
{
|
||||||
|
talphaEff.ref() +=
|
||||||
|
phasei().boundaryField()[patchi]
|
||||||
|
*phasei().thermo().alphahe(patchi);
|
||||||
|
}
|
||||||
|
|
||||||
|
return talphaEff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::kappaEff
|
Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::kappaEff
|
||||||
(
|
(
|
||||||
const volScalarField& alphat
|
const volScalarField& alphat
|
||||||
|
|||||||
@ -397,6 +397,12 @@ public:
|
|||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
|
//- Thermal diffusivity for energy of mixture [kg/m/s]
|
||||||
|
virtual tmp<volScalarField> alphahe() const;
|
||||||
|
|
||||||
|
//- Thermal diffusivity for energy of mixture for patch [kg/m/s]
|
||||||
|
virtual tmp<scalarField> alphahe(const label patchi) const;
|
||||||
|
|
||||||
//- Effective thermal diffusivity of mixture [J/m/s/K]
|
//- Effective thermal diffusivity of mixture [J/m/s/K]
|
||||||
virtual tmp<volScalarField> kappaEff
|
virtual tmp<volScalarField> kappaEff
|
||||||
(
|
(
|
||||||
|
|||||||
@ -201,15 +201,6 @@ public:
|
|||||||
virtual void divU(tmp<volScalarField> divU);
|
virtual void divU(tmp<volScalarField> divU);
|
||||||
|
|
||||||
|
|
||||||
// Transport (prevents compiler warnings)
|
|
||||||
|
|
||||||
//- Return the effective thermal conductivity
|
|
||||||
using BasePhaseModel::kappaEff;
|
|
||||||
|
|
||||||
//- Return the effective thermal conductivity for enthalpy
|
|
||||||
using BasePhaseModel::alphaEff;
|
|
||||||
|
|
||||||
|
|
||||||
// Turbulence
|
// Turbulence
|
||||||
|
|
||||||
//- Return the turbulent dynamic viscosity
|
//- Return the turbulent dynamic viscosity
|
||||||
@ -224,17 +215,23 @@ public:
|
|||||||
//- Return the effective kinematic viscosity
|
//- Return the effective kinematic viscosity
|
||||||
virtual tmp<volScalarField> nuEff() const;
|
virtual tmp<volScalarField> nuEff() const;
|
||||||
|
|
||||||
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
|
// of mixture for patch [J/m/s/K]
|
||||||
|
using BasePhaseModel::kappaEff;
|
||||||
|
|
||||||
//- Return the effective thermal conductivity
|
//- Return the effective thermal conductivity
|
||||||
virtual tmp<volScalarField> kappaEff() const;
|
virtual tmp<volScalarField> kappaEff() const;
|
||||||
|
|
||||||
//- Return the effective thermal conductivity on a patch
|
//- Return the effective thermal conductivity on a patch
|
||||||
virtual tmp<scalarField> kappaEff(const label patchi) const;
|
virtual tmp<scalarField> kappaEff(const label patchi) const;
|
||||||
|
|
||||||
//- Return the effective thermal diffusivity for enthalpy
|
//- Effective thermal turbulent diffusivity of mixture [kg/m/s]
|
||||||
|
using BasePhaseModel::alphaEff;
|
||||||
|
|
||||||
|
//- Return the effective thermal diffusivity
|
||||||
virtual tmp<volScalarField> alphaEff() const;
|
virtual tmp<volScalarField> alphaEff() const;
|
||||||
|
|
||||||
//- Return the effective thermal conductivity for enthalpy on a
|
//- Return the effective thermal conductivity on a patch
|
||||||
// patch
|
|
||||||
virtual tmp<scalarField> alphaEff(const label patchi) const;
|
virtual tmp<scalarField> alphaEff(const label patchi) const;
|
||||||
|
|
||||||
//- Return the turbulent kinetic energy
|
//- Return the turbulent kinetic energy
|
||||||
|
|||||||
@ -171,15 +171,6 @@ public:
|
|||||||
virtual void divU(tmp<volScalarField> divU);
|
virtual void divU(tmp<volScalarField> divU);
|
||||||
|
|
||||||
|
|
||||||
// Transport (prevents compiler warnings)
|
|
||||||
|
|
||||||
//- Return the effective thermal conductivity
|
|
||||||
using BasePhaseModel::kappaEff;
|
|
||||||
|
|
||||||
//- Return the effective thermal conductivity for enthalpy
|
|
||||||
using BasePhaseModel::alphaEff;
|
|
||||||
|
|
||||||
|
|
||||||
// Turbulence
|
// Turbulence
|
||||||
|
|
||||||
//- Return the turbulent dynamic viscosity
|
//- Return the turbulent dynamic viscosity
|
||||||
@ -194,17 +185,23 @@ public:
|
|||||||
//- Return the effective kinematic viscosity
|
//- Return the effective kinematic viscosity
|
||||||
virtual tmp<volScalarField> nuEff() const;
|
virtual tmp<volScalarField> nuEff() const;
|
||||||
|
|
||||||
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
|
// of mixture for patch [J/m/s/K]
|
||||||
|
using BasePhaseModel::kappaEff;
|
||||||
|
|
||||||
//- Return the effective thermal conductivity
|
//- Return the effective thermal conductivity
|
||||||
virtual tmp<volScalarField> kappaEff() const;
|
virtual tmp<volScalarField> kappaEff() const;
|
||||||
|
|
||||||
//- Return the effective thermal conductivity on a patch
|
//- Return the effective thermal conductivity on a patch
|
||||||
virtual tmp<scalarField> kappaEff(const label patchi) const;
|
virtual tmp<scalarField> kappaEff(const label patchi) const;
|
||||||
|
|
||||||
//- Return the effective thermal diffusivity for enthalpy
|
//- Effective thermal turbulent diffusivity of mixture [kg/m/s]
|
||||||
|
using BasePhaseModel::alphaEff;
|
||||||
|
|
||||||
|
//- Return the effective thermal diffusivity
|
||||||
virtual tmp<volScalarField> alphaEff() const;
|
virtual tmp<volScalarField> alphaEff() const;
|
||||||
|
|
||||||
//- Return the effective thermal conductivity for enthalpy on a
|
//- Return the effective thermal conductivity on a patch
|
||||||
// patch
|
|
||||||
virtual tmp<scalarField> alphaEff(const label patchi) const;
|
virtual tmp<scalarField> alphaEff(const label patchi) const;
|
||||||
|
|
||||||
//- Return the turbulent kinetic energy
|
//- Return the turbulent kinetic energy
|
||||||
|
|||||||
@ -153,6 +153,25 @@ Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::kappa
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class BasePhaseModel, class ThermoType>
|
||||||
|
Foam::tmp<Foam::volScalarField>
|
||||||
|
Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::alphahe() const
|
||||||
|
{
|
||||||
|
return thermo_->alphahe();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class BasePhaseModel, class ThermoType>
|
||||||
|
Foam::tmp<Foam::scalarField>
|
||||||
|
Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::alphahe
|
||||||
|
(
|
||||||
|
const label patchi
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return thermo_->alphahe(patchi);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class BasePhaseModel, class ThermoType>
|
template<class BasePhaseModel, class ThermoType>
|
||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::kappaEff
|
Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::kappaEff
|
||||||
|
|||||||
@ -112,56 +112,63 @@ public:
|
|||||||
//- Return the laminar kinematic viscosity on a patch
|
//- Return the laminar kinematic viscosity on a patch
|
||||||
virtual tmp<scalarField> nu(const label patchi) const;
|
virtual tmp<scalarField> nu(const label patchi) const;
|
||||||
|
|
||||||
//- Return the laminar thermal conductivity
|
//- Thermal diffusivity for enthalpy of mixture [kg/m/s]
|
||||||
|
virtual tmp<volScalarField> alpha() const;
|
||||||
|
|
||||||
|
//- Thermal diffusivity for enthalpy of mixture for patch [kg/m/s]
|
||||||
|
virtual tmp<scalarField> alpha(const label patchi) const;
|
||||||
|
|
||||||
|
//- Thermal diffusivity for temperature of mixture [J/m/s/K]
|
||||||
virtual tmp<volScalarField> kappa() const;
|
virtual tmp<volScalarField> kappa() const;
|
||||||
|
|
||||||
//- Return the laminar thermal conductivity on a patch
|
//- Thermal diffusivity for temperature of mixture
|
||||||
|
// for patch [J/m/s/K]
|
||||||
virtual tmp<scalarField> kappa(const label patchi) const;
|
virtual tmp<scalarField> kappa(const label patchi) const;
|
||||||
|
|
||||||
//- Return the laminar thermal conductivity, given the turbulent
|
//- Thermal diffusivity for energy of mixture [kg/m/s]
|
||||||
// thermal diffusivity
|
virtual tmp<volScalarField> alphahe() const;
|
||||||
|
|
||||||
|
//- Thermal diffusivity for energy of mixture for patch [kg/m/s]
|
||||||
|
virtual tmp<scalarField> alphahe(const label patchi) const;
|
||||||
|
|
||||||
|
|
||||||
|
// Turbulence
|
||||||
|
|
||||||
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
|
// of mixture for patch [J/m/s/K]
|
||||||
|
using BasePhaseModel::kappaEff;
|
||||||
|
|
||||||
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
|
// of mixture [J/m/s/K]
|
||||||
virtual tmp<volScalarField> kappaEff
|
virtual tmp<volScalarField> kappaEff
|
||||||
(
|
(
|
||||||
const volScalarField& alphat
|
const volScalarField& alphat
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
//- Return the laminar thermal conductivity on a patch, given the
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
// turbulent thermal diffusivity
|
// of mixture for patch [J/m/s/K]
|
||||||
virtual tmp<scalarField> kappaEff
|
virtual tmp<scalarField> kappaEff
|
||||||
(
|
(
|
||||||
const scalarField& alphat,
|
const scalarField& alphat,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
//- Return the thermal diffusivity for enthalpy
|
//- Effective thermal turbulent diffusivity of mixture [kg/m/s]
|
||||||
virtual tmp<volScalarField> alpha() const;
|
using BasePhaseModel::alphaEff;
|
||||||
|
|
||||||
//- Return the thermal diffusivity for enthalpy on a patch
|
//- Effective thermal turbulent diffusivity of mixture [kg/m/s]
|
||||||
virtual tmp<scalarField> alpha(const label patchi) const;
|
|
||||||
|
|
||||||
//- Return the effective thermal diffusivity for enthalpy, given the
|
|
||||||
// turbulent thermal diffusivity
|
|
||||||
virtual tmp<volScalarField> alphaEff
|
virtual tmp<volScalarField> alphaEff
|
||||||
(
|
(
|
||||||
const volScalarField& alphat
|
const volScalarField& alphat
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
//- Return the effective thermal diffusivity for enthalpy on a
|
//- Effective thermal turbulent diffusivity of mixture
|
||||||
// patch, given the turbulent thermal diffusivity
|
// for patch [kg/m/s]
|
||||||
virtual tmp<scalarField> alphaEff
|
virtual tmp<scalarField> alphaEff
|
||||||
(
|
(
|
||||||
const scalarField& alphat,
|
const scalarField& alphat,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
|
|
||||||
// Turbulence (prevents compiler warnings)
|
|
||||||
|
|
||||||
//- Return the effective thermal conductivity
|
|
||||||
using BasePhaseModel::kappaEff;
|
|
||||||
|
|
||||||
//- Return the effective thermal conductivity for enthalpy
|
|
||||||
using BasePhaseModel::alphaEff;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -327,42 +327,48 @@ public:
|
|||||||
//- Return the laminar kinematic viscosity on a patch
|
//- Return the laminar kinematic viscosity on a patch
|
||||||
virtual tmp<scalarField> nu(const label patchi) const = 0;
|
virtual tmp<scalarField> nu(const label patchi) const = 0;
|
||||||
|
|
||||||
//- Return the laminar thermal conductivity
|
//- Thermal diffusivity for enthalpy of mixture [kg/m/s]
|
||||||
|
virtual tmp<volScalarField> alpha() const = 0;
|
||||||
|
|
||||||
|
//- Thermal diffusivity for enthalpy of mixture for patch [kg/m/s]
|
||||||
|
virtual tmp<scalarField> alpha(const label patchi) const = 0;
|
||||||
|
|
||||||
|
//- Thermal diffusivity for temperature of mixture [J/m/s/K]
|
||||||
virtual tmp<volScalarField> kappa() const = 0;
|
virtual tmp<volScalarField> kappa() const = 0;
|
||||||
|
|
||||||
//- Return the laminar thermal conductivity on a patch
|
//- Thermal diffusivity for temperature of mixture
|
||||||
|
// for patch [J/m/s/K]
|
||||||
virtual tmp<scalarField> kappa(const label patchi) const = 0;
|
virtual tmp<scalarField> kappa(const label patchi) const = 0;
|
||||||
|
|
||||||
//- Return the effective thermal conductivity, given the turbulent
|
//- Thermal diffusivity for energy of mixture [kg/m/s]
|
||||||
// thermal diffusivity
|
virtual tmp<volScalarField> alphahe() const = 0;
|
||||||
|
|
||||||
|
//- Thermal diffusivity for energy of mixture for patch [kg/m/s]
|
||||||
|
virtual tmp<scalarField> alphahe(const label patchi) const = 0;
|
||||||
|
|
||||||
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
|
// of mixture [J/m/s/K]
|
||||||
virtual tmp<volScalarField> kappaEff
|
virtual tmp<volScalarField> kappaEff
|
||||||
(
|
(
|
||||||
const volScalarField& alphat
|
const volScalarField& alphat
|
||||||
) const = 0;
|
) const = 0;
|
||||||
|
|
||||||
//- Return the effective thermal conductivity on a patch, given the
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
// turbulent thermal diffusivity
|
// of mixture for patch [J/m/s/K]
|
||||||
virtual tmp<scalarField> kappaEff
|
virtual tmp<scalarField> kappaEff
|
||||||
(
|
(
|
||||||
const scalarField& alphat,
|
const scalarField& alphat,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const = 0;
|
) const = 0;
|
||||||
|
|
||||||
//- Return the laminar thermal diffusivity for enthalpy
|
//- Effective thermal turbulent diffusivity of mixture [kg/m/s]
|
||||||
virtual tmp<volScalarField> alpha() const = 0;
|
|
||||||
|
|
||||||
//- Return the laminar thermal diffusivity for enthalpy on a patch
|
|
||||||
virtual tmp<scalarField> alpha(const label patchi) const = 0;
|
|
||||||
|
|
||||||
//- Return the effective thermal diffusivity for enthalpy, given the
|
|
||||||
// turbulent thermal diffusivity
|
|
||||||
virtual tmp<volScalarField> alphaEff
|
virtual tmp<volScalarField> alphaEff
|
||||||
(
|
(
|
||||||
const volScalarField& alphat
|
const volScalarField& alphat
|
||||||
) const = 0;
|
) const = 0;
|
||||||
|
|
||||||
//- Return the effective thermal diffusivity for enthalpy on a
|
//- Effective thermal turbulent diffusivity of mixture
|
||||||
// patch, given the turbulent thermal diffusivity
|
// for patch [kg/m/s]
|
||||||
virtual tmp<scalarField> alphaEff
|
virtual tmp<scalarField> alphaEff
|
||||||
(
|
(
|
||||||
const scalarField& alphat,
|
const scalarField& alphat,
|
||||||
@ -384,17 +390,19 @@ public:
|
|||||||
//- Return the effective kinematic viscosity
|
//- Return the effective kinematic viscosity
|
||||||
virtual tmp<volScalarField> nuEff() const = 0;
|
virtual tmp<volScalarField> nuEff() const = 0;
|
||||||
|
|
||||||
//- Return the effective thermal conductivity
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
|
// of mixture [J/m/s/K]
|
||||||
virtual tmp<volScalarField> kappaEff() const = 0;
|
virtual tmp<volScalarField> kappaEff() const = 0;
|
||||||
|
|
||||||
//- Return the effective thermal conductivity on a patch
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
|
// of mixture for patch [J/m/s/K]
|
||||||
virtual tmp<scalarField> kappaEff(const label patchi) const = 0;
|
virtual tmp<scalarField> kappaEff(const label patchi) const = 0;
|
||||||
|
|
||||||
//- Return the effective thermal diffusivity for enthalpy
|
//- Effective thermal turbulent diffusivity of mixture [kg/m/s]
|
||||||
virtual tmp<volScalarField> alphaEff() const = 0;
|
virtual tmp<volScalarField> alphaEff() const = 0;
|
||||||
|
|
||||||
//- Return the effective thermal conductivity for enthalpy on a
|
//- Effective thermal turbulent diffusivity of mixture
|
||||||
// patch
|
// for patch [kg/m/s]
|
||||||
virtual tmp<scalarField> alphaEff(const label patchi) const = 0;
|
virtual tmp<scalarField> alphaEff(const label patchi) const = 0;
|
||||||
|
|
||||||
//- Return the turbulent kinetic energy
|
//- Return the turbulent kinetic energy
|
||||||
|
|||||||
@ -196,19 +196,45 @@ public:
|
|||||||
return thermo_->mu(patchi);
|
return thermo_->mu(patchi);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the thermal conductivity on a patch
|
//- Thermal diffusivity for enthalpy of mixture [kg/m/s]
|
||||||
|
tmp<volScalarField> alpha() const
|
||||||
|
{
|
||||||
|
return thermo_->alpha();
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Thermal diffusivity for enthalpy of mixture for patch [kg/m/s]
|
||||||
|
tmp<scalarField> alpha(const label patchi) const
|
||||||
|
{
|
||||||
|
return thermo_->alpha(patchi);
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Thermal diffusivity for temperature of mixture [J/m/s/K]
|
||||||
tmp<scalarField> kappa(const label patchi) const
|
tmp<scalarField> kappa(const label patchi) const
|
||||||
{
|
{
|
||||||
return thermo_->kappa(patchi);
|
return thermo_->kappa(patchi);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the thermal conductivity
|
//- Thermal diffusivity for temperature of mixture
|
||||||
|
// for patch [J/m/s/K]
|
||||||
tmp<volScalarField> kappa() const
|
tmp<volScalarField> kappa() const
|
||||||
{
|
{
|
||||||
return thermo_->kappa();
|
return thermo_->kappa();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the laminar thermal conductivity
|
//- Thermal diffusivity for energy of mixture [kg/m/s]
|
||||||
|
tmp<volScalarField> alphahe() const
|
||||||
|
{
|
||||||
|
return thermo_->alphahe();
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Thermal diffusivity for energy of mixture for patch [kg/m/s]
|
||||||
|
tmp<scalarField> alphahe(const label patchi) const
|
||||||
|
{
|
||||||
|
return thermo_->alphahe(patchi);
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
|
// of mixture [J/m/s/K]
|
||||||
tmp<volScalarField> kappaEff
|
tmp<volScalarField> kappaEff
|
||||||
(
|
(
|
||||||
const volScalarField& alphat
|
const volScalarField& alphat
|
||||||
@ -217,7 +243,8 @@ public:
|
|||||||
return thermo_->kappaEff(alphat);
|
return thermo_->kappaEff(alphat);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the laminar thermal conductivity on a patch
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
|
// of mixture for patch [J/m/s/K]
|
||||||
tmp<scalarField> kappaEff
|
tmp<scalarField> kappaEff
|
||||||
(
|
(
|
||||||
const scalarField& alphat,
|
const scalarField& alphat,
|
||||||
@ -227,19 +254,7 @@ public:
|
|||||||
return thermo_->kappaEff(alphat, patchi);
|
return thermo_->kappaEff(alphat, patchi);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the laminar thermal diffusivity for enthalpy
|
//- Effective thermal turbulent diffusivity of mixture [kg/m/s]
|
||||||
tmp<volScalarField> alpha() const
|
|
||||||
{
|
|
||||||
return thermo_->alpha();
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Return the laminar thermal diffusivity for enthalpy on a patch
|
|
||||||
tmp<scalarField> alpha(const label patchi) const
|
|
||||||
{
|
|
||||||
return thermo_->alpha(patchi);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Return the effective thermal diffusivity for enthalpy
|
|
||||||
tmp<volScalarField> alphaEff
|
tmp<volScalarField> alphaEff
|
||||||
(
|
(
|
||||||
const volScalarField& alphat
|
const volScalarField& alphat
|
||||||
@ -248,7 +263,8 @@ public:
|
|||||||
return thermo_->alphaEff(alphat);
|
return thermo_->alphaEff(alphat);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the effective thermal diffusivity for enthalpy on a patch
|
//- Effective thermal turbulent diffusivity of mixture
|
||||||
|
// for patch [kg/m/s]
|
||||||
tmp<scalarField> alphaEff
|
tmp<scalarField> alphaEff
|
||||||
(
|
(
|
||||||
const scalarField& alphat,
|
const scalarField& alphat,
|
||||||
|
|||||||
@ -0,0 +1,31 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Copyright (C) 2018 OpenFOAM Foundation
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Application
|
||||||
|
ansysToFoam
|
||||||
|
|
||||||
|
Description
|
||||||
|
Converts an ANSYS input mesh file, exported from I-DEAS,
|
||||||
|
to OpenFOAM format.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -21,13 +21,6 @@ License
|
|||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Application
|
|
||||||
ansysToFoam
|
|
||||||
|
|
||||||
Description
|
|
||||||
Converts an ANSYS input mesh file, exported from I-DEAS,
|
|
||||||
to OpenFOAM format.
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
%{
|
%{
|
||||||
|
|||||||
@ -0,0 +1,30 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Copyright (C) 2018 OpenFOAM Foundation
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Application
|
||||||
|
fluent3DMeshToFoam
|
||||||
|
|
||||||
|
Description
|
||||||
|
Converts a Fluent mesh to OpenFOAM format.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -21,12 +21,6 @@ License
|
|||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Application
|
|
||||||
fluent3DMeshToFoam
|
|
||||||
|
|
||||||
Description
|
|
||||||
Converts a Fluent mesh to OpenFOAM format.
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
%{
|
%{
|
||||||
|
|||||||
@ -0,0 +1,31 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Copyright (C) 2018 OpenFOAM Foundation
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Application
|
||||||
|
fluentMeshToFoam
|
||||||
|
|
||||||
|
Description
|
||||||
|
Converts a Fluent mesh to OpenFOAM format
|
||||||
|
including multiple region and region boundary handling.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -21,13 +21,6 @@ License
|
|||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Application
|
|
||||||
fluentMeshToFoam
|
|
||||||
|
|
||||||
Description
|
|
||||||
Converts a Fluent mesh to OpenFOAM format
|
|
||||||
including multiple region and region boundary handling.
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
%{
|
%{
|
||||||
|
|||||||
@ -0,0 +1,30 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Copyright (C) 2018 OpenFOAM Foundation
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Application
|
||||||
|
gambitToFoam
|
||||||
|
|
||||||
|
Description
|
||||||
|
Converts a GAMBIT mesh to OpenFOAM format.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -21,12 +21,6 @@ License
|
|||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Application
|
|
||||||
gambitToFoam
|
|
||||||
|
|
||||||
Description
|
|
||||||
Converts a GAMBIT mesh to OpenFOAM format.
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
%{
|
%{
|
||||||
|
|||||||
34
bin/foamGet
34
bin/foamGet
@ -54,7 +54,7 @@ USAGE
|
|||||||
|
|
||||||
error() {
|
error() {
|
||||||
exec 1>&2
|
exec 1>&2
|
||||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
while [ "$#" -ge 1 ]; do echo "Error: $1"; shift; done
|
||||||
usage
|
usage
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
@ -68,8 +68,8 @@ findFilesInDirs () {
|
|||||||
[ -d "$_d" ] && _out="$(find "$_d" -name "$_str" -type f | sort) $_out"
|
[ -d "$_d" ] && _out="$(find "$_d" -name "$_str" -type f | sort) $_out"
|
||||||
done
|
done
|
||||||
|
|
||||||
# Remove whitespace
|
# Remove whitespace and blank lines
|
||||||
echo "$_out" | xargs -n 1
|
echo "$_out" | xargs -n 1 | awk 'NF'
|
||||||
}
|
}
|
||||||
|
|
||||||
findFiles () {
|
findFiles () {
|
||||||
@ -136,7 +136,7 @@ setFile () {
|
|||||||
noFilesMessage () {
|
noFilesMessage () {
|
||||||
_ext="$1"
|
_ext="$1"
|
||||||
[ "$_ext" = "ANY" ] && echo "(with or without file extensions)" && return 1
|
[ "$_ext" = "ANY" ] && echo "(with or without file extensions)" && return 1
|
||||||
[ -n "$_ext" ] && echo "with file extension $_ext" && return 1
|
[ -n "$_ext" ] && echo "with file extension '$_ext'" && return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
searchDirs="\
|
searchDirs="\
|
||||||
@ -146,7 +146,7 @@ searchDirs="\
|
|||||||
$FOAM_ETC/caseDicts"
|
$FOAM_ETC/caseDicts"
|
||||||
|
|
||||||
ext="ANY"
|
ext="ANY"
|
||||||
tgt="system"
|
tgt=""
|
||||||
while [ "$#" -gt 0 ]
|
while [ "$#" -gt 0 ]
|
||||||
do
|
do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@ -170,7 +170,6 @@ do
|
|||||||
-t | -target)
|
-t | -target)
|
||||||
[ "$#" -ge 2 ] || error "'$1' option requires an argument"
|
[ "$#" -ge 2 ] || error "'$1' option requires an argument"
|
||||||
tgt="$2"
|
tgt="$2"
|
||||||
[ -d "$tgt" ] || error "directory with -t option does not exist: '$tgt'"
|
|
||||||
shift 2
|
shift 2
|
||||||
;;
|
;;
|
||||||
-*)
|
-*)
|
||||||
@ -183,15 +182,32 @@ do
|
|||||||
done
|
done
|
||||||
|
|
||||||
[ $# -gt 1 ] && error "$# arguments \"$*\" specified: only 1 permitted"
|
[ $# -gt 1 ] && error "$# arguments \"$*\" specified: only 1 permitted"
|
||||||
[ $# -eq 1 ] || error "Missing argument: no file name/prefix <file> supplied"
|
[ $# -eq 1 ] || error "missing argument: no file name/prefix <file> supplied"
|
||||||
prefix="$1"
|
prefix="$1"
|
||||||
|
|
||||||
|
[ "$tgt" ] || \
|
||||||
|
case "$prefix" in
|
||||||
|
All*)
|
||||||
|
tgt="."
|
||||||
|
;;
|
||||||
|
*Properties|*Cloud)
|
||||||
|
tgt="constant"
|
||||||
|
;;
|
||||||
|
s)
|
||||||
|
tgt="0"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
tgt="system"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
[ -s "system/controlDict" ] || \
|
[ -s "system/controlDict" ] || \
|
||||||
error "Cannot find OpenFOAM case directory (no system/controlDict file)"
|
echo "Warning: cannot find OpenFOAM case directory (no system/controlDict file)"
|
||||||
|
[ -d "$tgt" ] || error "target directory does not exist: '$tgt'"
|
||||||
|
|
||||||
files="$(findFiles "$searchDirs" "$prefix" "$ext")"
|
files="$(findFiles "$searchDirs" "$prefix" "$ext")"
|
||||||
[ -z "$files" ] && \
|
[ -z "$files" ] && \
|
||||||
error "No file $prefix found $(noFilesMessage "$ext")"
|
error "no file $prefix found $(noFilesMessage "$ext")"
|
||||||
|
|
||||||
nFiles="$(nArgs "$files")"
|
nFiles="$(nArgs "$files")"
|
||||||
[ "$nFiles" -eq 1 ] && cpFile "$files" "$tgt" && exit 0
|
[ "$nFiles" -eq 1 ] && cpFile "$files" "$tgt" && exit 0
|
||||||
|
|||||||
52
bin/foamInfo
52
bin/foamInfo
@ -39,6 +39,7 @@ options:
|
|||||||
-browser | -b <name> output C++ source guide web page with specified browser,
|
-browser | -b <name> output C++ source guide web page with specified browser,
|
||||||
e.g. foamInfo -browser "firefox"
|
e.g. foamInfo -browser "firefox"
|
||||||
-help | -h print the usage
|
-help | -h print the usage
|
||||||
|
-keyword | -k uses <name> as a keyword, rather than an exact match
|
||||||
-web | -w output C++ source guide web page with the browser
|
-web | -w output C++ source guide web page with the browser
|
||||||
specified in the global controlDict file
|
specified in the global controlDict file
|
||||||
|
|
||||||
@ -49,13 +50,22 @@ Prints the following for an application, a script, or a model
|
|||||||
- Usage details from the header file;
|
- Usage details from the header file;
|
||||||
- Examples: a list of relevant cases from the tutorials directory.
|
- Examples: a list of relevant cases from the tutorials directory.
|
||||||
|
|
||||||
For example, run:
|
By default, finds a case-sensitive match to <name>; otherwise, a
|
||||||
|
case-insensitive match; otherwise, looks for a broader keyword match
|
||||||
|
with "-keyword | -k" option.
|
||||||
|
|
||||||
|
Examples:
|
||||||
foamInfo simpleFoam
|
foamInfo simpleFoam
|
||||||
foamInfo kEpsilon
|
|
||||||
foamInfo turbulentIntensityKineticEnergyInlet
|
foamInfo turbulentIntensityKineticEnergyInlet
|
||||||
foamInfo fixedTemperatureConstraint
|
foamInfo fixedTemperatureConstraint
|
||||||
foamInfo surfaces
|
foamInfo surfaces
|
||||||
foamInfo foamNewBC
|
foamInfo foamNewBC
|
||||||
|
foamInfo wallFunction
|
||||||
|
foamInfo kEpsilon
|
||||||
|
foamInfo -k kEpsilon
|
||||||
|
foamInfo fixedValue
|
||||||
|
foamInfo -k fixedValue
|
||||||
|
foamInfo -k contactAngle
|
||||||
|
|
||||||
USAGE
|
USAGE
|
||||||
}
|
}
|
||||||
@ -67,6 +77,17 @@ error() {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# (1) case-sensitive match; (2) case-insensitive match; (3) keyword match
|
||||||
|
findModelFiles() {
|
||||||
|
find "$FOAM_SRC" \
|
||||||
|
-name "$1" \
|
||||||
|
-iname "$2" \
|
||||||
|
! -iname "$3" \
|
||||||
|
! -name "*Fwd.H" \
|
||||||
|
! -name "*Fields.H" \
|
||||||
|
! -name "*I.H" -type f
|
||||||
|
}
|
||||||
|
|
||||||
findFiles() {
|
findFiles() {
|
||||||
_pre="$1"
|
_pre="$1"
|
||||||
|
|
||||||
@ -77,20 +98,16 @@ findFiles() {
|
|||||||
_out="$(find "$FOAM_SRC/../bin" -name "${_pre}" -type f) $_out"
|
_out="$(find "$FOAM_SRC/../bin" -name "${_pre}" -type f) $_out"
|
||||||
|
|
||||||
# Model
|
# Model
|
||||||
# exact match
|
# case-sensitive match
|
||||||
_models="$(find "$FOAM_SRC" \
|
_models="$(findModelFiles "${_pre}*.H" "*" "")"
|
||||||
-name "${_pre}*.H" \
|
|
||||||
! -name "*Fwd.H" \
|
|
||||||
! -name "*Fields.H" \
|
|
||||||
! -name "*I.H" -type f)"
|
|
||||||
|
|
||||||
# otherwise "looser" match
|
# case-insensitive match
|
||||||
[ "$_models" ] || \
|
[ "$_models" ] || \
|
||||||
_models="$(find "$FOAM_SRC" \
|
_models="$(findModelFiles "*" "${_pre}*.H" "")"
|
||||||
-iname "*${_pre}*.H" \
|
|
||||||
! -name "*Fwd.H" \
|
# keyword match
|
||||||
! -name "*Fields.H" \
|
[ "$_models" -a ! "$KEYWORD" ] || \
|
||||||
! -name "*I.H" -type f)"
|
_models="$_models $(findModelFiles "*" "*${_pre}*.H" "${_pre}*.H")"
|
||||||
|
|
||||||
_out="$_models $_out"
|
_out="$_models $_out"
|
||||||
|
|
||||||
@ -105,7 +122,7 @@ findFiles() {
|
|||||||
_out="$(find "$FOAM_ETC" -name "${_pre}" -type f) $_out"
|
_out="$(find "$FOAM_ETC" -name "${_pre}" -type f) $_out"
|
||||||
|
|
||||||
# Remove whitespace
|
# Remove whitespace
|
||||||
echo "$_out" | xargs -n 1
|
echo "$_out" | xargs -n 1 | awk 'NF'
|
||||||
}
|
}
|
||||||
|
|
||||||
nArgs() {
|
nArgs() {
|
||||||
@ -292,6 +309,7 @@ all=""
|
|||||||
# Global controlDict file
|
# Global controlDict file
|
||||||
controlDict="$(foamEtcFile controlDict 2> /dev/null)"
|
controlDict="$(foamEtcFile controlDict 2> /dev/null)"
|
||||||
BROWSER="$(grep docBrowser "$controlDict" 2> /dev/null | cut -d "\"" -f2)"
|
BROWSER="$(grep docBrowser "$controlDict" 2> /dev/null | cut -d "\"" -f2)"
|
||||||
|
KEYWORD=""
|
||||||
|
|
||||||
while [ "$#" -gt 0 ]
|
while [ "$#" -gt 0 ]
|
||||||
do
|
do
|
||||||
@ -309,6 +327,10 @@ do
|
|||||||
-h | -help)
|
-h | -help)
|
||||||
usage && exit 0
|
usage && exit 0
|
||||||
;;
|
;;
|
||||||
|
-k | -keyword)
|
||||||
|
KEYWORD="yes"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
-w | -web)
|
-w | -web)
|
||||||
web="yes"
|
web="yes"
|
||||||
shift
|
shift
|
||||||
|
|||||||
@ -1,145 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
# ========= |
|
|
||||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
# \\ / O peration | Website: https://openfoam.org
|
|
||||||
# \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
|
||||||
# \\/ M anipulation |
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
# License
|
|
||||||
# This file is part of OpenFOAM.
|
|
||||||
#
|
|
||||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
# for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Script
|
|
||||||
# foamUpdateCaseFileHeader
|
|
||||||
#
|
|
||||||
# Description
|
|
||||||
# Updates the header of application files.
|
|
||||||
# By default, writes current version in the header.
|
|
||||||
# Alternatively version can be specified with -v option.
|
|
||||||
# Also removes consecutive blank lines from file.
|
|
||||||
#
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
error() {
|
|
||||||
exec 1>&2
|
|
||||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
cat<<USAGE
|
|
||||||
|
|
||||||
Usage: ${0##*/} [OPTION] <file1> ... <fileN>
|
|
||||||
|
|
||||||
options:
|
|
||||||
-version <ver> specifies the version to be written in the header
|
|
||||||
-help print the usage
|
|
||||||
|
|
||||||
Updates the header of application files and removes consecutive blank lines.
|
|
||||||
By default, writes current OpenFOAM version in the header.
|
|
||||||
An alternative version can be specified with the -version option.
|
|
||||||
|
|
||||||
USAGE
|
|
||||||
}
|
|
||||||
|
|
||||||
while [ "$#" -gt 0 ]
|
|
||||||
do
|
|
||||||
case "$1" in
|
|
||||||
-h | -help)
|
|
||||||
usage && exit 0
|
|
||||||
;;
|
|
||||||
-v | -version)
|
|
||||||
[ "$#" -ge 2 ] || error "'$1' option requires an argument"
|
|
||||||
version="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-*)
|
|
||||||
error "unknown option: '$*'"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "$version" | grep -Eq '^([0-9]\.[0-9x]|dev)$' || \
|
|
||||||
error "The version number is \"${version}\"." \
|
|
||||||
"The format must be MAJOR.MINOR (e.g. \"$WM_PROJECT_VERSION\" or \"dev\")"
|
|
||||||
|
|
||||||
# constant width for version - default to WM_PROJECT_VERSION
|
|
||||||
version=$(printf %-36s "${version:-$WM_PROJECT_VERSION}")
|
|
||||||
|
|
||||||
[ $# -ge 1 ] || error
|
|
||||||
|
|
||||||
printHeader()
|
|
||||||
{
|
|
||||||
cat<<HEADER
|
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\\
|
|
||||||
========= |
|
|
||||||
| \\\\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\\\ / O peration | Version: $version |
|
|
||||||
| \\\\ / A nd | Website: https://openfoam.org |
|
|
||||||
| \\\\/ M anipulation | |
|
|
||||||
\\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format $1;
|
|
||||||
class $2;
|
|
||||||
object $3;
|
|
||||||
}
|
|
||||||
HEADER
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# extract attribute '$1' from file '$2'
|
|
||||||
#
|
|
||||||
FoamFileAttribute()
|
|
||||||
{
|
|
||||||
sed -n -e 's/[ ;]*$//' -e "s/^ *$1 *//p" "$2"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# main
|
|
||||||
#
|
|
||||||
|
|
||||||
tmpFile=FoamFile.tmp$$
|
|
||||||
for caseFile
|
|
||||||
do
|
|
||||||
if grep FoamFile $caseFile >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
echo "Updating case file: $caseFile"
|
|
||||||
sed -n '/FoamFile/,/}/p' $caseFile > $tmpFile
|
|
||||||
|
|
||||||
format=$(FoamFileAttribute format $tmpFile)
|
|
||||||
class=$(FoamFileAttribute class $tmpFile)
|
|
||||||
object=$(FoamFileAttribute object $tmpFile)
|
|
||||||
|
|
||||||
printHeader "$format" "$class" "$object" > $tmpFile
|
|
||||||
|
|
||||||
sed '1,/}/d' $caseFile | sed '/./,/^$/!d' >> $tmpFile
|
|
||||||
|
|
||||||
# use cat to avoid removing/replace soft-links
|
|
||||||
[ -s $tmpFile ] && cat $tmpFile >| $caseFile
|
|
||||||
rm -f $tmpFile 2>/dev/null
|
|
||||||
else
|
|
||||||
echo " Invalid case file: $caseFile" 1>&2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
@ -793,9 +793,7 @@ INPUT_ENCODING = UTF-8
|
|||||||
# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,
|
# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,
|
||||||
# *.vhdl, *.ucf, *.qsf, *.as and *.js.
|
# *.vhdl, *.ucf, *.qsf, *.as and *.js.
|
||||||
|
|
||||||
FILE_PATTERNS = *.H \
|
FILE_PATTERNS = *.H *.C
|
||||||
*.C \
|
|
||||||
*.dox
|
|
||||||
|
|
||||||
# The RECURSIVE tag can be used to specify whether or not subdirectories should
|
# The RECURSIVE tag can be used to specify whether or not subdirectories should
|
||||||
# be searched for input files as well.
|
# be searched for input files as well.
|
||||||
@ -810,7 +808,11 @@ RECURSIVE = YES
|
|||||||
# Note that relative paths are relative to the directory from which doxygen is
|
# Note that relative paths are relative to the directory from which doxygen is
|
||||||
# run.
|
# run.
|
||||||
|
|
||||||
EXCLUDE =
|
EXCLUDE = \
|
||||||
|
$(WM_PROJECT_DIR)/src/mesh/blockMesh/blockMesh/blockMesh.C \
|
||||||
|
$(WM_PROJECT_DIR)/src/dynamicMesh/polyTopoChange/polyTopoChange/removeFaces.C \
|
||||||
|
$(WM_PROJECT_DIR)/src/meshTools/sets/topoSets/topoSet.C \
|
||||||
|
$(WM_PROJECT_DIR)/src/conversion/polyDualMesh/polyDualMesh.C
|
||||||
|
|
||||||
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
|
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
|
||||||
# directories that are symbolic links (a Unix file system feature) are excluded
|
# directories that are symbolic links (a Unix file system feature) are excluded
|
||||||
@ -1422,7 +1424,7 @@ EXT_LINKS_IN_WINDOW = NO
|
|||||||
# Minimum value: 8, maximum value: 50, default value: 10.
|
# Minimum value: 8, maximum value: 50, default value: 10.
|
||||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||||
|
|
||||||
FORMULA_FONTSIZE = 10
|
FORMULA_FONTSIZE = 16
|
||||||
|
|
||||||
# Use the FORMULA_TRANPARENT tag to determine whether or not the images
|
# Use the FORMULA_TRANPARENT tag to determine whether or not the images
|
||||||
# generated for formulas are transparent PNGs. Transparent PNGs are not
|
# generated for formulas are transparent PNGs. Transparent PNGs are not
|
||||||
@ -1632,7 +1634,8 @@ PAPER_TYPE = a4wide
|
|||||||
# If left blank no extra packages will be included.
|
# If left blank no extra packages will be included.
|
||||||
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
||||||
|
|
||||||
EXTRA_PACKAGES = $(WM_PROJECT_DIR)/doc/Doxygen/Macros/tensorOperator
|
EXTRA_PACKAGES = $(WM_PROJECT_DIR)/doc/Doxygen/Macros/tensorOperator \
|
||||||
|
amsmath
|
||||||
|
|
||||||
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
|
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
|
||||||
# generated LaTeX document. The header should contain everything until the first
|
# generated LaTeX document. The header should contain everything until the first
|
||||||
|
|||||||
17
etc/caseDicts/general/workflow/Allclean
Executable file
17
etc/caseDicts/general/workflow/Allclean
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Run from this directory
|
||||||
|
cd "${0%/*}" || exit 1
|
||||||
|
|
||||||
|
# Source tutorial clean functions
|
||||||
|
. "$WM_PROJECT_DIR/bin/tools/CleanFunctions"
|
||||||
|
|
||||||
|
# Delete the following:
|
||||||
|
# - time directories
|
||||||
|
# - constant/polyMesh directory
|
||||||
|
# - postProcessing and VTK directories
|
||||||
|
# - log files
|
||||||
|
# - field files with a ".orig" backup
|
||||||
|
cleanCase
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
15
etc/caseDicts/general/workflow/Allmesh
Executable file
15
etc/caseDicts/general/workflow/Allmesh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Run from this directory
|
||||||
|
cd "${0%/*}" || exit 1
|
||||||
|
|
||||||
|
# Source tutorial run functions
|
||||||
|
. "$WM_PROJECT_DIR/bin/tools/RunFunctions"
|
||||||
|
|
||||||
|
# Example workflow with meshing applications
|
||||||
|
runApplication blockMesh
|
||||||
|
runApplication topoSet
|
||||||
|
runApplication refineMesh -overwrite
|
||||||
|
runApplication transformPoints -scale "(0.01 0.01 0.01)"
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
33
etc/caseDicts/general/workflow/Allrun
Executable file
33
etc/caseDicts/general/workflow/Allrun
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Run from this directory
|
||||||
|
cd "${0%/*}" || exit 1
|
||||||
|
|
||||||
|
# Source tutorial run functions
|
||||||
|
. "$WM_PROJECT_DIR/bin/tools/RunFunctions"
|
||||||
|
|
||||||
|
# Example with runApplication:
|
||||||
|
# - runs blockMesh in background
|
||||||
|
# - redirecting standard output to log.blockMesh
|
||||||
|
# - does *not* run in log file already exists
|
||||||
|
runApplication blockMesh
|
||||||
|
|
||||||
|
# Example running topoSet and refineMesh 3 times with multiple dictionaries
|
||||||
|
# -a|-append option appends to log file
|
||||||
|
i=0
|
||||||
|
while [ "$i" -lt 3 ]
|
||||||
|
do
|
||||||
|
runApplication -a topoSet -dict "topoSetDict.${i}"
|
||||||
|
runApplication -a refineMesh -dict "refineMeshDict.${i}"
|
||||||
|
i=$(( i + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
runApplication decomposePar
|
||||||
|
|
||||||
|
# Example with runParallel to run in parallel
|
||||||
|
# getApplication finds solver name from "application" entry in controlDict
|
||||||
|
runParallel "$(getApplication)"
|
||||||
|
|
||||||
|
runApplication reconstructPar
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
@ -40,7 +40,7 @@ surfaces
|
|||||||
pointAndNormalDict
|
pointAndNormalDict
|
||||||
{
|
{
|
||||||
basePoint (0 0 2); // Overrides default basePoint (0 0 0)
|
basePoint (0 0 2); // Overrides default basePoint (0 0 0)
|
||||||
normalVector $z; // $y: macro for (0 0 1)
|
normalVector $z; // $z: macro for (0 0 1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -82,7 +82,7 @@ wmRefresh()
|
|||||||
{
|
{
|
||||||
wmProjectDir=$WM_PROJECT_DIR
|
wmProjectDir=$WM_PROJECT_DIR
|
||||||
foamSettings=$FOAM_SETTINGS
|
foamSettings=$FOAM_SETTINGS
|
||||||
wmUnset
|
. $wmProjectDir/etc/config.sh/unset
|
||||||
. $wmProjectDir/etc/bashrc $foamSettings
|
. $wmProjectDir/etc/bashrc $foamSettings
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,7 @@ Documentation
|
|||||||
"$WM_PROJECT_USER_DIR/html"
|
"$WM_PROJECT_USER_DIR/html"
|
||||||
"~OpenFOAM/html"
|
"~OpenFOAM/html"
|
||||||
"$WM_PROJECT_DIR/doc/Doxygen/html"
|
"$WM_PROJECT_DIR/doc/Doxygen/html"
|
||||||
"http://cpp.openfoam.org/dev"
|
"http://cpp.openfoam.org/v6"
|
||||||
);
|
);
|
||||||
doxySourceFileExt "_8C.html";
|
doxySourceFileExt "_8C.html";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,6 +16,8 @@ FoamFile
|
|||||||
|
|
||||||
internalFacesOnly true;
|
internalFacesOnly true;
|
||||||
|
|
||||||
|
fields true;
|
||||||
|
|
||||||
baffles
|
baffles
|
||||||
{
|
{
|
||||||
baffleFaces
|
baffleFaces
|
||||||
|
|||||||
@ -16,7 +16,7 @@ FoamFile
|
|||||||
|
|
||||||
solvers
|
solvers
|
||||||
{
|
{
|
||||||
p
|
"(p|pcorr)"
|
||||||
{
|
{
|
||||||
solver GAMG;
|
solver GAMG;
|
||||||
smoother GaussSeidel;
|
smoother GaussSeidel;
|
||||||
@ -32,7 +32,7 @@ solvers
|
|||||||
relTol 0.1;
|
relTol 0.1;
|
||||||
}
|
}
|
||||||
|
|
||||||
pFinal
|
"(p|pcorr)Final"
|
||||||
{
|
{
|
||||||
$p;
|
$p;
|
||||||
relTol 0;
|
relTol 0;
|
||||||
|
|||||||
@ -16,6 +16,8 @@ FoamFile
|
|||||||
|
|
||||||
internalFacesOnly true;
|
internalFacesOnly true;
|
||||||
|
|
||||||
|
fields true;
|
||||||
|
|
||||||
baffles
|
baffles
|
||||||
{
|
{
|
||||||
baffleFaces
|
baffleFaces
|
||||||
|
|||||||
@ -16,7 +16,7 @@ FoamFile
|
|||||||
|
|
||||||
solvers
|
solvers
|
||||||
{
|
{
|
||||||
p
|
"(p|pcorr)"
|
||||||
{
|
{
|
||||||
solver GAMG;
|
solver GAMG;
|
||||||
smoother GaussSeidel;
|
smoother GaussSeidel;
|
||||||
@ -32,7 +32,7 @@ solvers
|
|||||||
relTol 0.1;
|
relTol 0.1;
|
||||||
}
|
}
|
||||||
|
|
||||||
pFinal
|
"(p|pcorr)Final"
|
||||||
{
|
{
|
||||||
$p;
|
$p;
|
||||||
relTol 0;
|
relTol 0;
|
||||||
|
|||||||
@ -15,9 +15,7 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
radiationModel none; // P1;
|
||||||
|
|
||||||
radiationModel P1;
|
|
||||||
|
|
||||||
solverFreq 1;
|
solverFreq 1;
|
||||||
|
|
||||||
|
|||||||
@ -15,9 +15,7 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
radiationModel none; // P1;
|
||||||
|
|
||||||
radiationModel P1;
|
|
||||||
|
|
||||||
solverFreq 1;
|
solverFreq 1;
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,7 @@ thermoType
|
|||||||
mixture pureMixture;
|
mixture pureMixture;
|
||||||
transport const;
|
transport const;
|
||||||
thermo hConst;
|
thermo hConst;
|
||||||
equationOfState perfectGas;
|
equationOfState perfectFluid;
|
||||||
specie specie;
|
specie specie;
|
||||||
energy sensibleEnthalpy;
|
energy sensibleEnthalpy;
|
||||||
}
|
}
|
||||||
@ -32,6 +32,11 @@ mixture
|
|||||||
nMoles 1;
|
nMoles 1;
|
||||||
molWeight 18.0; // [g/mol]
|
molWeight 18.0; // [g/mol]
|
||||||
}
|
}
|
||||||
|
equationOfState
|
||||||
|
{
|
||||||
|
R 3000; // [J/(kg K)]
|
||||||
|
rho0 1027; // [kg/m^3]
|
||||||
|
}
|
||||||
thermodynamics
|
thermodynamics
|
||||||
{
|
{
|
||||||
Cp 4181; // [J/(kg K)] at T = 293 K
|
Cp 4181; // [J/(kg K)] at T = 293 K
|
||||||
|
|||||||
@ -116,6 +116,7 @@ public:
|
|||||||
FatalErrorInFunction
|
FatalErrorInFunction
|
||||||
<< "Call to other only valid for Pair with differing"
|
<< "Call to other only valid for Pair with differing"
|
||||||
<< " elements:" << *this << abort(FatalError);
|
<< " elements:" << *this << abort(FatalError);
|
||||||
|
return first();
|
||||||
}
|
}
|
||||||
else if (first() == a)
|
else if (first() == a)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -96,7 +96,7 @@ Foam::Roots<3> Foam::cubicEqn::roots() const
|
|||||||
|
|
||||||
if (oneReal)
|
if (oneReal)
|
||||||
{
|
{
|
||||||
const Roots<1> r = linearEqn(- a, b/3).roots();
|
const Roots<1> r = linearEqn(a, b/3).roots();
|
||||||
return Roots<3>(r.type(0), r[0]);
|
return Roots<3>(r.type(0), r[0]);
|
||||||
}
|
}
|
||||||
else if (twoReal)
|
else if (twoReal)
|
||||||
|
|||||||
@ -71,7 +71,7 @@ Foam::Roots<2> Foam::quadraticEqn::roots() const
|
|||||||
|
|
||||||
if (oneReal)
|
if (oneReal)
|
||||||
{
|
{
|
||||||
const Roots<1> r = linearEqn(- a, b/2).roots();
|
const Roots<1> r = linearEqn(a, b/2).roots();
|
||||||
return Roots<2>(r, r);
|
return Roots<2>(r, r);
|
||||||
}
|
}
|
||||||
else if (twoReal)
|
else if (twoReal)
|
||||||
|
|||||||
@ -102,42 +102,40 @@ public:
|
|||||||
//- Re-read model coefficients if they have changed
|
//- Re-read model coefficients if they have changed
|
||||||
virtual bool read();
|
virtual bool read();
|
||||||
|
|
||||||
//- Return the turbulent thermal diffusivity for enthalpy [kg/m/s]
|
//- Turbulent thermal diffusivity for enthalpy [kg/m/s]
|
||||||
virtual tmp<volScalarField> alphat() const
|
virtual tmp<volScalarField> alphat() const
|
||||||
{
|
{
|
||||||
return alphat_;
|
return alphat_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the turbulent thermal diffusivity for enthalpy for a patch
|
//- Turbulent thermal diffusivity for enthalpy for a patch [kg/m/s]
|
||||||
// [kg/m/s]
|
|
||||||
virtual tmp<scalarField> alphat(const label patchi) const
|
virtual tmp<scalarField> alphat(const label patchi) const
|
||||||
{
|
{
|
||||||
return alphat()().boundaryField()[patchi];
|
return alphat()().boundaryField()[patchi];
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the effective turbulent thermal diffusivity for temperature
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
// [J/m/s/K]
|
// of mixture [J/m/s/K]
|
||||||
virtual tmp<volScalarField> kappaEff() const
|
virtual tmp<volScalarField> kappaEff() const
|
||||||
{
|
{
|
||||||
return this->transport_.kappaEff(alphat());
|
return this->transport_.kappaEff(alphat());
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the effective turbulent thermal diffusivity for temperature
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
// [J/m/s/K]
|
// of mixture for patch [J/m/s/K]
|
||||||
virtual tmp<scalarField> kappaEff(const label patchi) const
|
virtual tmp<scalarField> kappaEff(const label patchi) const
|
||||||
{
|
{
|
||||||
return this->transport_.kappaEff(alphat(patchi), patchi);
|
return this->transport_.kappaEff(alphat(patchi), patchi);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the effective turbulent thermal diffusivity for enthalpy
|
//- Effective thermal turbulent diffusivity of mixture [kg/m/s]
|
||||||
// [kg/m/s]
|
|
||||||
virtual tmp<volScalarField> alphaEff() const
|
virtual tmp<volScalarField> alphaEff() const
|
||||||
{
|
{
|
||||||
return this->transport_.alphaEff(alphat());
|
return this->transport_.alphaEff(alphat());
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the effective turbulent thermal diffusivity for enthalpy
|
//- Effective thermal turbulent diffusivity of mixture
|
||||||
// for a patch [kg/m/s]
|
// for patch [kg/m/s]
|
||||||
virtual tmp<scalarField> alphaEff(const label patchi) const
|
virtual tmp<scalarField> alphaEff(const label patchi) const
|
||||||
{
|
{
|
||||||
return this->transport_.alphaEff(alphat(patchi), patchi);
|
return this->transport_.alphaEff(alphat(patchi), patchi);
|
||||||
|
|||||||
@ -107,65 +107,62 @@ public:
|
|||||||
|
|
||||||
// Member Functions
|
// Member Functions
|
||||||
|
|
||||||
//- Return the thermal diffusivity for temperature [J/m/s/K]
|
//- Thermal diffusivity for enthalpy of mixture [kg/m/s]
|
||||||
virtual tmp<volScalarField> kappa() const
|
|
||||||
{
|
|
||||||
return this->transport_.kappa();
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Return the laminar thermal diffusivity for temperature on patch
|
|
||||||
// [J/m/s/K]
|
|
||||||
virtual tmp<scalarField> kappa(const label patchi) const
|
|
||||||
{
|
|
||||||
return this->transport_.kappa(patchi);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Return the laminar thermal diffusivity for enthalpy [kg/m/s]
|
|
||||||
virtual tmp<volScalarField> alpha() const
|
virtual tmp<volScalarField> alpha() const
|
||||||
{
|
{
|
||||||
return this->transport_.alpha();
|
return this->transport_.alpha();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the laminar thermal diffusivity for enthalpy on patch
|
//- Thermal diffusivity for enthalpy of mixture for patch [kg/m/s]
|
||||||
// [kg/m/s]
|
|
||||||
virtual tmp<scalarField> alpha(const label patchi) const
|
virtual tmp<scalarField> alpha(const label patchi) const
|
||||||
{
|
{
|
||||||
return this->transport_.alpha(patchi);
|
return this->transport_.alpha(patchi);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the turbulent thermal diffusivity for enthalpy [kg/m/s]
|
//- Thermal diffusivity for temperature of mixture [J/m/s/K]
|
||||||
|
virtual tmp<volScalarField> kappa() const
|
||||||
|
{
|
||||||
|
return this->transport_.kappa();
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Thermal diffusivity for temperature of mixture
|
||||||
|
// for patch [J/m/s/K]
|
||||||
|
virtual tmp<scalarField> kappa(const label patchi) const
|
||||||
|
{
|
||||||
|
return this->transport_.kappa(patchi);
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Turbulent thermal diffusivity for enthalpy [kg/m/s]
|
||||||
virtual tmp<volScalarField> alphat() const;
|
virtual tmp<volScalarField> alphat() const;
|
||||||
|
|
||||||
//- Return the turbulent thermal diffusivity for enthalpy for a patch
|
//- Turbulent thermal diffusivity for enthalpy for a patch [kg/m/s]
|
||||||
// [kg/m/s]
|
|
||||||
virtual tmp<scalarField> alphat(const label patchi) const;
|
virtual tmp<scalarField> alphat(const label patchi) const;
|
||||||
|
|
||||||
//- Return the effective turbulent thermal diffusivity for temperature
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
// [J/m/s/K]
|
// of mixture [J/m/s/K]
|
||||||
virtual tmp<volScalarField> kappaEff() const
|
virtual tmp<volScalarField> kappaEff() const
|
||||||
{
|
{
|
||||||
return kappa();
|
return kappa();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the effective turbulent thermal diffusivity for temperature
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
// [J/m/s/K]
|
// of mixture for patch [J/m/s/K]
|
||||||
virtual tmp<scalarField> kappaEff(const label patchi) const
|
virtual tmp<scalarField> kappaEff(const label patchi) const
|
||||||
{
|
{
|
||||||
return kappa(patchi);
|
return kappa(patchi);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the effective turbulent thermal diffusivity for enthalpy
|
//- Effective thermal turbulent diffusivity of mixture [kg/m/s]
|
||||||
// [kg/m/s]
|
|
||||||
virtual tmp<volScalarField> alphaEff() const
|
virtual tmp<volScalarField> alphaEff() const
|
||||||
{
|
{
|
||||||
return alpha();
|
return this->transport_.alphahe();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the effective turbulent thermal diffusivity for enthalpy
|
//- Effective thermal turbulent diffusivity of mixture
|
||||||
// for a patch [kg/m/s]
|
// for patch [kg/m/s]
|
||||||
virtual tmp<scalarField> alphaEff(const label patchi) const
|
virtual tmp<scalarField> alphaEff(const label patchi) const
|
||||||
{
|
{
|
||||||
return alpha(patchi);
|
return this->transport_.alphahe(patchi);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,97 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration | Website: https://openfoam.org
|
|
||||||
\\ / A nd | Copyright (C) 2012-2018 OpenFOAM Foundation
|
|
||||||
\\/ M anipulation |
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
License
|
|
||||||
This file is part of OpenFOAM.
|
|
||||||
|
|
||||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
\page pageBoundaryConditions Boundary Conditions
|
|
||||||
\ref grpBoundaryConditions are required to 'close' the simulation problem.
|
|
||||||
Careful attention should be applied to their selection so as to create a
|
|
||||||
well-posed system of equations, which can be solved numerically.
|
|
||||||
|
|
||||||
\section secBoundaryConditionsOverview Overview
|
|
||||||
The set of available \ref grpBoundaryConditions comprise of basic, turbulent and
|
|
||||||
thermophysical types.
|
|
||||||
|
|
||||||
\subsection secBC1 Basic boundary conditions
|
|
||||||
- \ref grpConstraintBoundaryConditions
|
|
||||||
- \ref grpInletBoundaryConditions
|
|
||||||
- \ref grpOutletBoundaryConditions
|
|
||||||
- \ref grpGenericBoundaryConditions
|
|
||||||
- \ref grpCoupledBoundaryConditions
|
|
||||||
- \ref grpWallBoundaryConditions
|
|
||||||
|
|
||||||
\subsection secBC2 Turbulent flow boundary conditions
|
|
||||||
- \ref grpRASBoundaryConditions
|
|
||||||
|
|
||||||
\subsection secBC3 Thermophysical boundary conditions
|
|
||||||
- \ref grpThermoBoundaryConditions
|
|
||||||
|
|
||||||
|
|
||||||
\section secWallFunctions Wall-functions
|
|
||||||
Wall-functions in OpenFOAM are modelled as boundary conditions, applied to
|
|
||||||
the viscosity for momentum, and thermal diffusivity for energy.
|
|
||||||
|
|
||||||
Wall-functions
|
|
||||||
- \ref grpWallFunctions
|
|
||||||
|
|
||||||
Thermal wall-functions for incompressible flow
|
|
||||||
- \ref grpIcoWallFunctions
|
|
||||||
|
|
||||||
Thermal wall-functions for compressible flow
|
|
||||||
- \ref grpCmpWallFunctions
|
|
||||||
|
|
||||||
|
|
||||||
\section secBoundaryConditions Typical usage for pressure-velocity systems
|
|
||||||
The choice as to the most appropriate set of boundary conditions is dictated by
|
|
||||||
the type of flow problem. In many cases, multiple possible selections exist;
|
|
||||||
the following tables offer suggestions for subsonic flow.
|
|
||||||
|
|
||||||
subsonic inlet (flow specified):
|
|
||||||
\table
|
|
||||||
Variable | Symbol | Type
|
|
||||||
pressure | p | \link Foam::zeroGradientFvPatchField zeroGradient\endlink
|
|
||||||
velocity | U | \link Foam::fixedValueFvPatchField fixedValue\endlink
|
|
||||||
transported property | - | \link Foam::fixedValueFvPatchField fixedValue\endlink
|
|
||||||
derived property | - | \link Foam::calculatedFvPatchField calculated\endlink or \link Foam::zeroGradientFvPatchField zeroGradient\endlink
|
|
||||||
\endtable
|
|
||||||
|
|
||||||
subsonic outlet:
|
|
||||||
\table
|
|
||||||
Variable | Symbol | Type
|
|
||||||
pressure | p | \link Foam::fixedValueFvPatchField fixedValue\endlink
|
|
||||||
velocity | U | \link Foam::inletOutletFvPatchField inletOutlet\endlink or \link Foam::pressureInletOutletVelocityFvPatchVectorField pressureInletOutletVelocity\endlink
|
|
||||||
transported property | - | \link Foam::inletOutletFvPatchField inletOutlet\endlink
|
|
||||||
derived property | - | \link Foam::calculatedFvPatchField calculated\endlink or \link Foam::zeroGradientFvPatchField zeroGradient\endlink
|
|
||||||
\endtable
|
|
||||||
|
|
||||||
wall (impermeable, non-slip):
|
|
||||||
\table
|
|
||||||
Variable | Symbol | Type
|
|
||||||
pressure | p | \link Foam::zeroGradientFvPatchField zeroGradient\endlink
|
|
||||||
velocity | U | \link Foam::fixedValueFvPatchField fixedValue\endlink
|
|
||||||
transported property | - | \link Foam::fixedValueFvPatchField fixedValue\endlink
|
|
||||||
derived property | - | \link Foam::calculatedFvPatchField calculated\endlink or \link Foam::zeroGradientFvPatchField zeroGradient\endlink
|
|
||||||
\endtable
|
|
||||||
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
@ -73,48 +73,33 @@ bool Foam::functionObjects::CourantNo::calc()
|
|||||||
const surfaceScalarField& phi =
|
const surfaceScalarField& phi =
|
||||||
lookupObject<surfaceScalarField>(fieldName_);
|
lookupObject<surfaceScalarField>(fieldName_);
|
||||||
|
|
||||||
tmp<volScalarField::Internal> Coi
|
tmp<volScalarField> tCo
|
||||||
(
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
resultName_,
|
||||||
|
mesh_.time().timeName(),
|
||||||
|
mesh_
|
||||||
|
),
|
||||||
|
mesh_,
|
||||||
|
dimensionedScalar("0", dimless, 0.0),
|
||||||
|
zeroGradientFvPatchScalarField::typeName
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
tCo->ref() =
|
||||||
byRho
|
byRho
|
||||||
(
|
(
|
||||||
(0.5*mesh_.time().deltaT())
|
(0.5*mesh_.time().deltaT())
|
||||||
*fvc::surfaceSum(mag(phi))()()
|
*fvc::surfaceSum(mag(phi))()()
|
||||||
/mesh_.V()
|
/mesh_.V()
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (foundObject<volScalarField>(resultName_))
|
|
||||||
{
|
|
||||||
volScalarField& Co = lookupObjectRef<volScalarField>(resultName_);
|
|
||||||
|
|
||||||
Co.ref() = Coi();
|
|
||||||
Co.correctBoundaryConditions();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tmp<volScalarField> tCo
|
|
||||||
(
|
|
||||||
new volScalarField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
resultName_,
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar("0", dimless, 0.0),
|
|
||||||
zeroGradientFvPatchScalarField::typeName
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
tCo.ref().ref() = Coi();
|
|
||||||
tCo.ref().correctBoundaryConditions();
|
|
||||||
mesh_.objectRegistry::store(tCo.ptr());
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
tCo->correctBoundaryConditions();
|
||||||
|
|
||||||
|
return store(resultName_, tCo);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -51,25 +51,6 @@ Foam::functionObjects::processorField::processorField
|
|||||||
fvMeshFunctionObject(name, runTime, dict)
|
fvMeshFunctionObject(name, runTime, dict)
|
||||||
{
|
{
|
||||||
read(dict);
|
read(dict);
|
||||||
|
|
||||||
volScalarField* procFieldPtr
|
|
||||||
(
|
|
||||||
new volScalarField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"processorID",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar("0", dimless, 0.0)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
mesh_.objectRegistry::store(procFieldPtr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -91,10 +72,24 @@ bool Foam::functionObjects::processorField::read(const dictionary& dict)
|
|||||||
|
|
||||||
bool Foam::functionObjects::processorField::execute()
|
bool Foam::functionObjects::processorField::execute()
|
||||||
{
|
{
|
||||||
mesh_.lookupObjectRef<volScalarField>("processorID") ==
|
word name("processorID");
|
||||||
dimensionedScalar("proci", dimless, Pstream::myProcNo());
|
|
||||||
|
|
||||||
return true;
|
tmp<volScalarField> tprocField
|
||||||
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
name,
|
||||||
|
mesh_.time().timeName(),
|
||||||
|
mesh_
|
||||||
|
),
|
||||||
|
mesh_,
|
||||||
|
dimensionedScalar(name, dimless, Pstream::myProcNo())
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
return store(name, tprocField);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -71,25 +71,6 @@ Foam::functionObjects::turbulenceIntensity::turbulenceIntensity
|
|||||||
logFiles(obr_, name),
|
logFiles(obr_, name),
|
||||||
writeLocalObjects(obr_, log)
|
writeLocalObjects(obr_, log)
|
||||||
{
|
{
|
||||||
volScalarField* turbulenceIntensityPtr
|
|
||||||
(
|
|
||||||
new volScalarField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"I",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar("0", dimless, 0.0)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
mesh_.objectRegistry::store(turbulenceIntensityPtr);
|
|
||||||
|
|
||||||
read(dict);
|
read(dict);
|
||||||
resetName(typeName);
|
resetName(typeName);
|
||||||
resetLocalObjectName("I");
|
resetLocalObjectName("I");
|
||||||
@ -115,9 +96,6 @@ bool Foam::functionObjects::turbulenceIntensity::read(const dictionary& dict)
|
|||||||
|
|
||||||
bool Foam::functionObjects::turbulenceIntensity::execute()
|
bool Foam::functionObjects::turbulenceIntensity::execute()
|
||||||
{
|
{
|
||||||
volScalarField& turbulenceIntensity =
|
|
||||||
mesh_.lookupObjectRef<volScalarField>("I");
|
|
||||||
|
|
||||||
if (mesh_.foundObject<turbulenceModel>(turbulenceModel::propertiesName))
|
if (mesh_.foundObject<turbulenceModel>(turbulenceModel::propertiesName))
|
||||||
{
|
{
|
||||||
const turbulenceModel& turbModel = mesh_.lookupObject<turbulenceModel>
|
const turbulenceModel& turbModel = mesh_.lookupObject<turbulenceModel>
|
||||||
@ -126,12 +104,19 @@ bool Foam::functionObjects::turbulenceIntensity::execute()
|
|||||||
);
|
);
|
||||||
|
|
||||||
volScalarField uPrime(sqrt((2.0/3.0)*turbModel.k()));
|
volScalarField uPrime(sqrt((2.0/3.0)*turbModel.k()));
|
||||||
turbulenceIntensity =
|
|
||||||
uPrime
|
word name("I");
|
||||||
/max
|
|
||||||
|
return
|
||||||
|
store
|
||||||
(
|
(
|
||||||
max(uPrime, mag(turbModel.U())),
|
name,
|
||||||
dimensionedScalar("small", dimVelocity, small)
|
uPrime
|
||||||
|
/max
|
||||||
|
(
|
||||||
|
max(uPrime, mag(turbModel.U())),
|
||||||
|
dimensionedScalar("small", dimVelocity, small)
|
||||||
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -139,9 +124,9 @@ bool Foam::functionObjects::turbulenceIntensity::execute()
|
|||||||
FatalErrorInFunction
|
FatalErrorInFunction
|
||||||
<< "Unable to find turbulence model in the "
|
<< "Unable to find turbulence model in the "
|
||||||
<< "database" << exit(FatalError);
|
<< "database" << exit(FatalError);
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -58,15 +58,30 @@ void Foam::functionObjects::wallHeatFlux::writeFileHeader(const label i)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::functionObjects::wallHeatFlux::calcHeatFlux
|
Foam::tmp<Foam::volScalarField>
|
||||||
|
Foam::functionObjects::wallHeatFlux::calcWallHeatFlux
|
||||||
(
|
(
|
||||||
const volScalarField& alpha,
|
const volScalarField& alpha,
|
||||||
const volScalarField& he,
|
const volScalarField& he
|
||||||
volScalarField& wallHeatFlux
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
tmp<volScalarField> twallHeatFlux
|
||||||
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
type(),
|
||||||
|
mesh_.time().timeName(),
|
||||||
|
mesh_
|
||||||
|
),
|
||||||
|
mesh_,
|
||||||
|
dimensionedScalar("0", dimMass/pow3(dimTime), 0)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
volScalarField::Boundary& wallHeatFluxBf =
|
volScalarField::Boundary& wallHeatFluxBf =
|
||||||
wallHeatFlux.boundaryFieldRef();
|
twallHeatFlux.ref().boundaryFieldRef();
|
||||||
|
|
||||||
const volScalarField::Boundary& heBf =
|
const volScalarField::Boundary& heBf =
|
||||||
he.boundaryField();
|
he.boundaryField();
|
||||||
@ -97,6 +112,8 @@ void Foam::functionObjects::wallHeatFlux::calcHeatFlux
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return twallHeatFlux;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -114,25 +131,6 @@ Foam::functionObjects::wallHeatFlux::wallHeatFlux
|
|||||||
writeLocalObjects(obr_, log),
|
writeLocalObjects(obr_, log),
|
||||||
patchSet_()
|
patchSet_()
|
||||||
{
|
{
|
||||||
volScalarField* wallHeatFluxPtr
|
|
||||||
(
|
|
||||||
new volScalarField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
type(),
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar("0", dimMass/pow3(dimTime), 0)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
mesh_.objectRegistry::store(wallHeatFluxPtr);
|
|
||||||
|
|
||||||
read(dict);
|
read(dict);
|
||||||
resetName(typeName);
|
resetName(typeName);
|
||||||
resetLocalObjectName(typeName);
|
resetLocalObjectName(typeName);
|
||||||
@ -205,7 +203,7 @@ bool Foam::functionObjects::wallHeatFlux::read(const dictionary& dict)
|
|||||||
|
|
||||||
bool Foam::functionObjects::wallHeatFlux::execute()
|
bool Foam::functionObjects::wallHeatFlux::execute()
|
||||||
{
|
{
|
||||||
volScalarField& wallHeatFlux = lookupObjectRef<volScalarField>(type());
|
word name(type());
|
||||||
|
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
@ -221,11 +219,10 @@ bool Foam::functionObjects::wallHeatFlux::execute()
|
|||||||
turbulenceModel::propertiesName
|
turbulenceModel::propertiesName
|
||||||
);
|
);
|
||||||
|
|
||||||
calcHeatFlux
|
return store
|
||||||
(
|
(
|
||||||
turbModel.alphaEff(),
|
name,
|
||||||
turbModel.transport().he(),
|
calcWallHeatFlux(turbModel.alphaEff(), turbModel.transport().he())
|
||||||
wallHeatFlux
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else if (foundObject<solidThermo>(solidThermo::dictName))
|
else if (foundObject<solidThermo>(solidThermo::dictName))
|
||||||
@ -233,7 +230,7 @@ bool Foam::functionObjects::wallHeatFlux::execute()
|
|||||||
const solidThermo& thermo =
|
const solidThermo& thermo =
|
||||||
lookupObject<solidThermo>(solidThermo::dictName);
|
lookupObject<solidThermo>(solidThermo::dictName);
|
||||||
|
|
||||||
calcHeatFlux(thermo.alpha(), thermo.he(), wallHeatFlux);
|
return store(name, calcWallHeatFlux(thermo.alpha(), thermo.he()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -108,11 +108,10 @@ protected:
|
|||||||
virtual void writeFileHeader(const label i);
|
virtual void writeFileHeader(const label i);
|
||||||
|
|
||||||
//- Calculate the heat-flux
|
//- Calculate the heat-flux
|
||||||
void calcHeatFlux
|
tmp<volScalarField> calcWallHeatFlux
|
||||||
(
|
(
|
||||||
const volScalarField& alpha,
|
const volScalarField& alpha,
|
||||||
const volScalarField& he,
|
const volScalarField& he
|
||||||
volScalarField& wallHeatFlux
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -63,15 +63,35 @@ void Foam::functionObjects::wallHeatTransferCoeff::writeFileHeader
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::functionObjects::wallHeatTransferCoeff::calcHeatTransferCoeff
|
Foam::tmp<Foam::volScalarField>
|
||||||
|
Foam::functionObjects::wallHeatTransferCoeff::calcHeatTransferCoeff
|
||||||
(
|
(
|
||||||
const volScalarField& nu,
|
const volScalarField& nu,
|
||||||
const volScalarField& nut,
|
const volScalarField& nut
|
||||||
volScalarField& wallHeatTransferCoeff
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
tmp<volScalarField> twallHeatTransferCoeff
|
||||||
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
type(),
|
||||||
|
mesh_.time().timeName(),
|
||||||
|
mesh_
|
||||||
|
),
|
||||||
|
mesh_,
|
||||||
|
dimensionedScalar
|
||||||
|
(
|
||||||
|
"0",
|
||||||
|
dimMass/pow3(dimTime)/(dimTemperature/dimLength),
|
||||||
|
0
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
volScalarField::Boundary& wallHeatTransferCoeffBf =
|
volScalarField::Boundary& wallHeatTransferCoeffBf =
|
||||||
wallHeatTransferCoeff.boundaryFieldRef();
|
twallHeatTransferCoeff.ref().boundaryFieldRef();
|
||||||
|
|
||||||
const volScalarField::Boundary& nuBf = nu.boundaryField();
|
const volScalarField::Boundary& nuBf = nu.boundaryField();
|
||||||
const volScalarField::Boundary& nutBf = nut.boundaryField();
|
const volScalarField::Boundary& nutBf = nut.boundaryField();
|
||||||
@ -84,6 +104,8 @@ void Foam::functionObjects::wallHeatTransferCoeff::calcHeatTransferCoeff
|
|||||||
rho_*Cp_*(nuBf[patchi]/Prl_ + nutBf[patchi]/Prt_);
|
rho_*Cp_*(nuBf[patchi]/Prl_ + nutBf[patchi]/Prt_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return twallHeatTransferCoeff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -101,30 +123,6 @@ Foam::functionObjects::wallHeatTransferCoeff::wallHeatTransferCoeff
|
|||||||
writeLocalObjects(obr_, log),
|
writeLocalObjects(obr_, log),
|
||||||
patchSet_()
|
patchSet_()
|
||||||
{
|
{
|
||||||
volScalarField* wallHeatTransferCoeffPtr
|
|
||||||
(
|
|
||||||
new volScalarField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
type(),
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar
|
|
||||||
(
|
|
||||||
"0",
|
|
||||||
dimMass/pow3(dimTime)/(dimTemperature/dimLength),
|
|
||||||
0
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
mesh_.objectRegistry::store(wallHeatTransferCoeffPtr);
|
|
||||||
|
|
||||||
read(dict);
|
read(dict);
|
||||||
resetName(typeName);
|
resetName(typeName);
|
||||||
resetLocalObjectName(typeName);
|
resetLocalObjectName(typeName);
|
||||||
@ -202,8 +200,7 @@ bool Foam::functionObjects::wallHeatTransferCoeff::read(const dictionary& dict)
|
|||||||
|
|
||||||
bool Foam::functionObjects::wallHeatTransferCoeff::execute()
|
bool Foam::functionObjects::wallHeatTransferCoeff::execute()
|
||||||
{
|
{
|
||||||
volScalarField& wallHeatTransferCoeff =
|
word name(type());
|
||||||
lookupObjectRef<volScalarField>(type());
|
|
||||||
|
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
@ -219,11 +216,10 @@ bool Foam::functionObjects::wallHeatTransferCoeff::execute()
|
|||||||
turbulenceModel::propertiesName
|
turbulenceModel::propertiesName
|
||||||
);
|
);
|
||||||
|
|
||||||
calcHeatTransferCoeff
|
return store
|
||||||
(
|
(
|
||||||
turbModel.nu(),
|
name,
|
||||||
turbModel.nut(),
|
calcHeatTransferCoeff(turbModel.nu(), turbModel.nut())
|
||||||
wallHeatTransferCoeff
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -231,9 +227,9 @@ bool Foam::functionObjects::wallHeatTransferCoeff::execute()
|
|||||||
FatalErrorInFunction
|
FatalErrorInFunction
|
||||||
<< "Unable to find incompressible turbulence model in the "
|
<< "Unable to find incompressible turbulence model in the "
|
||||||
<< "database" << exit(FatalError);
|
<< "database" << exit(FatalError);
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -130,11 +130,10 @@ protected:
|
|||||||
virtual void writeFileHeader(const label i);
|
virtual void writeFileHeader(const label i);
|
||||||
|
|
||||||
//- Calculate the heat transfer coefficient
|
//- Calculate the heat transfer coefficient
|
||||||
void calcHeatTransferCoeff
|
tmp<volScalarField> calcHeatTransferCoeff
|
||||||
(
|
(
|
||||||
const volScalarField& nu,
|
const volScalarField& nu,
|
||||||
const volScalarField& nut,
|
const volScalarField& nut
|
||||||
volScalarField& wallHeatTransferCoeff
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -57,25 +57,42 @@ void Foam::functionObjects::wallShearStress::writeFileHeader(const label i)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::functionObjects::wallShearStress::calcShearStress
|
Foam::tmp<Foam::volVectorField>
|
||||||
|
Foam::functionObjects::wallShearStress::calcShearStress
|
||||||
(
|
(
|
||||||
const volSymmTensorField& Reff,
|
const volSymmTensorField& Reff
|
||||||
volVectorField& shearStress
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
shearStress.dimensions().reset(Reff.dimensions());
|
tmp<volVectorField> twallShearStress
|
||||||
|
(
|
||||||
|
new volVectorField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
type(),
|
||||||
|
mesh_.time().timeName(),
|
||||||
|
mesh_
|
||||||
|
),
|
||||||
|
mesh_,
|
||||||
|
dimensionedVector("0", Reff.dimensions(), Zero)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
volVectorField::Boundary& wallShearStressBf =
|
||||||
|
twallShearStress.ref().boundaryFieldRef();
|
||||||
|
|
||||||
forAllConstIter(labelHashSet, patchSet_, iter)
|
forAllConstIter(labelHashSet, patchSet_, iter)
|
||||||
{
|
{
|
||||||
label patchi = iter.key();
|
label patchi = iter.key();
|
||||||
|
|
||||||
vectorField& ssp = shearStress.boundaryFieldRef()[patchi];
|
|
||||||
const vectorField& Sfp = mesh_.Sf().boundaryField()[patchi];
|
const vectorField& Sfp = mesh_.Sf().boundaryField()[patchi];
|
||||||
const scalarField& magSfp = mesh_.magSf().boundaryField()[patchi];
|
const scalarField& magSfp = mesh_.magSf().boundaryField()[patchi];
|
||||||
const symmTensorField& Reffp = Reff.boundaryField()[patchi];
|
const symmTensorField& Reffp = Reff.boundaryField()[patchi];
|
||||||
|
|
||||||
ssp = (-Sfp/magSfp) & Reffp;
|
wallShearStressBf[patchi] = (-Sfp/magSfp) & Reffp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return twallShearStress;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -93,30 +110,6 @@ Foam::functionObjects::wallShearStress::wallShearStress
|
|||||||
writeLocalObjects(obr_, log),
|
writeLocalObjects(obr_, log),
|
||||||
patchSet_()
|
patchSet_()
|
||||||
{
|
{
|
||||||
volVectorField* wallShearStressPtr
|
|
||||||
(
|
|
||||||
new volVectorField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
type(),
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedVector
|
|
||||||
(
|
|
||||||
"0",
|
|
||||||
sqr(dimLength)/sqr(dimTime),
|
|
||||||
Zero
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
mesh_.objectRegistry::store(wallShearStressPtr);
|
|
||||||
|
|
||||||
read(dict);
|
read(dict);
|
||||||
resetName(typeName);
|
resetName(typeName);
|
||||||
resetLocalObjectName(typeName);
|
resetLocalObjectName(typeName);
|
||||||
@ -192,9 +185,6 @@ bool Foam::functionObjects::wallShearStress::execute()
|
|||||||
typedef compressible::turbulenceModel cmpModel;
|
typedef compressible::turbulenceModel cmpModel;
|
||||||
typedef incompressible::turbulenceModel icoModel;
|
typedef incompressible::turbulenceModel icoModel;
|
||||||
|
|
||||||
volVectorField& wallShearStress =
|
|
||||||
mesh_.lookupObjectRef<volVectorField>(type());
|
|
||||||
|
|
||||||
tmp<volSymmTensorField> Reff;
|
tmp<volSymmTensorField> Reff;
|
||||||
if (mesh_.foundObject<cmpModel>(turbulenceModel::propertiesName))
|
if (mesh_.foundObject<cmpModel>(turbulenceModel::propertiesName))
|
||||||
{
|
{
|
||||||
@ -217,9 +207,9 @@ bool Foam::functionObjects::wallShearStress::execute()
|
|||||||
<< "database" << exit(FatalError);
|
<< "database" << exit(FatalError);
|
||||||
}
|
}
|
||||||
|
|
||||||
calcShearStress(Reff(), wallShearStress);
|
word name(type());
|
||||||
|
|
||||||
return true;
|
return store(name, calcShearStress(Reff));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -117,10 +117,9 @@ protected:
|
|||||||
virtual void writeFileHeader(const label i);
|
virtual void writeFileHeader(const label i);
|
||||||
|
|
||||||
//- Calculate the shear-stress
|
//- Calculate the shear-stress
|
||||||
void calcShearStress
|
tmp<volVectorField> calcShearStress
|
||||||
(
|
(
|
||||||
const volSymmTensorField& Reff,
|
const volSymmTensorField& Reff
|
||||||
volVectorField& shearStress
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -62,12 +62,28 @@ void Foam::functionObjects::yPlus::writeFileHeader(const label i)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::functionObjects::yPlus::calcYPlus
|
Foam::tmp<Foam::volScalarField> Foam::functionObjects::yPlus::calcYPlus
|
||||||
(
|
(
|
||||||
const turbulenceModel& turbModel,
|
const turbulenceModel& turbModel
|
||||||
volScalarField& yPlus
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
tmp<volScalarField> tyPlus
|
||||||
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
type(),
|
||||||
|
mesh_.time().timeName(),
|
||||||
|
mesh_
|
||||||
|
),
|
||||||
|
mesh_,
|
||||||
|
dimensionedScalar("0", dimless, 0.0)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
volScalarField::Boundary& yPlusBf = tyPlus.ref().boundaryFieldRef();
|
||||||
|
|
||||||
volScalarField::Boundary d = nearWallDist(mesh_).y();
|
volScalarField::Boundary d = nearWallDist(mesh_).y();
|
||||||
|
|
||||||
const volScalarField::Boundary nutBf =
|
const volScalarField::Boundary nutBf =
|
||||||
@ -81,8 +97,6 @@ void Foam::functionObjects::yPlus::calcYPlus
|
|||||||
|
|
||||||
const fvPatchList& patches = mesh_.boundary();
|
const fvPatchList& patches = mesh_.boundary();
|
||||||
|
|
||||||
volScalarField::Boundary& yPlusBf = yPlus.boundaryFieldRef();
|
|
||||||
|
|
||||||
forAll(patches, patchi)
|
forAll(patches, patchi)
|
||||||
{
|
{
|
||||||
const fvPatch& patch = patches[patchi];
|
const fvPatch& patch = patches[patchi];
|
||||||
@ -108,6 +122,8 @@ void Foam::functionObjects::yPlus::calcYPlus
|
|||||||
)/nuBf[patchi];
|
)/nuBf[patchi];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return tyPlus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -124,25 +140,6 @@ Foam::functionObjects::yPlus::yPlus
|
|||||||
logFiles(obr_, name),
|
logFiles(obr_, name),
|
||||||
writeLocalObjects(obr_, log)
|
writeLocalObjects(obr_, log)
|
||||||
{
|
{
|
||||||
volScalarField* yPlusPtr
|
|
||||||
(
|
|
||||||
new volScalarField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
type(),
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar("0", dimless, 0.0)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
mesh_.objectRegistry::store(yPlusPtr);
|
|
||||||
|
|
||||||
read(dict);
|
read(dict);
|
||||||
resetName(typeName);
|
resetName(typeName);
|
||||||
resetLocalObjectName(typeName);
|
resetLocalObjectName(typeName);
|
||||||
@ -168,9 +165,6 @@ bool Foam::functionObjects::yPlus::read(const dictionary& dict)
|
|||||||
|
|
||||||
bool Foam::functionObjects::yPlus::execute()
|
bool Foam::functionObjects::yPlus::execute()
|
||||||
{
|
{
|
||||||
volScalarField& yPlus =
|
|
||||||
mesh_.lookupObjectRef<volScalarField>(type());
|
|
||||||
|
|
||||||
if (mesh_.foundObject<turbulenceModel>(turbulenceModel::propertiesName))
|
if (mesh_.foundObject<turbulenceModel>(turbulenceModel::propertiesName))
|
||||||
{
|
{
|
||||||
const turbulenceModel& model = mesh_.lookupObject<turbulenceModel>
|
const turbulenceModel& model = mesh_.lookupObject<turbulenceModel>
|
||||||
@ -178,7 +172,9 @@ bool Foam::functionObjects::yPlus::execute()
|
|||||||
turbulenceModel::propertiesName
|
turbulenceModel::propertiesName
|
||||||
);
|
);
|
||||||
|
|
||||||
calcYPlus(model, yPlus);
|
word name(type());
|
||||||
|
|
||||||
|
return store(name, calcYPlus(model));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -95,10 +95,9 @@ class yPlus
|
|||||||
virtual void writeFileHeader(const label i);
|
virtual void writeFileHeader(const label i);
|
||||||
|
|
||||||
//- Calculate y+
|
//- Calculate y+
|
||||||
void calcYPlus
|
tmp<volScalarField> calcYPlus
|
||||||
(
|
(
|
||||||
const turbulenceModel& turbModel,
|
const turbulenceModel& turbModel
|
||||||
volScalarField& yPlus
|
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Disallow default bitwise copy construct
|
//- Disallow default bitwise copy construct
|
||||||
|
|||||||
@ -349,14 +349,14 @@ bool Foam::KinematicParcel<ParcelType>::move
|
|||||||
|
|
||||||
p.age() += dt;
|
p.age() += dt;
|
||||||
|
|
||||||
if (p.onFace())
|
if (p.active() && p.onFace())
|
||||||
{
|
{
|
||||||
cloud.functions().postFace(p, ttd.keepParticle);
|
cloud.functions().postFace(p, ttd.keepParticle);
|
||||||
}
|
}
|
||||||
|
|
||||||
cloud.functions().postMove(p, dt, start, ttd.keepParticle);
|
cloud.functions().postMove(p, dt, start, ttd.keepParticle);
|
||||||
|
|
||||||
if (p.onFace() && ttd.keepParticle)
|
if (p.active() && p.onFace() && ttd.keepParticle)
|
||||||
{
|
{
|
||||||
p.hitFace(s, cloud, ttd);
|
p.hitFace(s, cloud, ttd);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -52,7 +52,7 @@ namespace joints
|
|||||||
|
|
||||||
void Foam::RBD::joints::composite::setLastJoint()
|
void Foam::RBD::joints::composite::setLastJoint()
|
||||||
{
|
{
|
||||||
//last().joint::operator=(*this);
|
last().joint::operator=(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -243,6 +243,9 @@ public:
|
|||||||
|
|
||||||
// Member Operators
|
// Member Operators
|
||||||
|
|
||||||
|
//- Assignment
|
||||||
|
inline void operator=(const joint& j);
|
||||||
|
|
||||||
//- Return the unit quaternion for this joint
|
//- Return the unit quaternion for this joint
|
||||||
// if it uses a quaternion representation for rotation
|
// if it uses a quaternion representation for rotation
|
||||||
inline quaternion unitQuaternion
|
inline quaternion unitQuaternion
|
||||||
|
|||||||
@ -64,6 +64,14 @@ inline const Foam::List<Foam::spatialVector>& Foam::RBD::joint::S() const
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
inline void Foam::RBD::joint::operator=(const joint& j)
|
||||||
|
{
|
||||||
|
S_ = j.S_;
|
||||||
|
index_ = j.index_;
|
||||||
|
qIndex_ = j.qIndex_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
inline Foam::quaternion Foam::RBD::joint::unitQuaternion
|
inline Foam::quaternion Foam::RBD::joint::unitQuaternion
|
||||||
(
|
(
|
||||||
const scalarField& q
|
const scalarField& q
|
||||||
|
|||||||
@ -124,6 +124,7 @@ void Foam::sampledSets::lineFace::calcSamples
|
|||||||
if (!sampleParticle.onBoundaryFace())
|
if (!sampleParticle.onBoundaryFace())
|
||||||
{
|
{
|
||||||
FatalErrorInFunction
|
FatalErrorInFunction
|
||||||
|
<< "Failed to associate with the starting boundary face"
|
||||||
<< exit(FatalError);
|
<< exit(FatalError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -422,21 +422,27 @@ public:
|
|||||||
//- Thermal diffusivity for temperature of mixture [J/m/s/K]
|
//- Thermal diffusivity for temperature of mixture [J/m/s/K]
|
||||||
virtual tmp<volScalarField> kappa() const = 0;
|
virtual tmp<volScalarField> kappa() const = 0;
|
||||||
|
|
||||||
//- Thermal diffusivity for temperature
|
//- Thermal diffusivity for temperature of mixture
|
||||||
// of mixture for patch [J/m/s/K]
|
// for patch [J/m/s/K]
|
||||||
virtual tmp<scalarField> kappa
|
virtual tmp<scalarField> kappa
|
||||||
(
|
(
|
||||||
const label patchi
|
const label patchi
|
||||||
) const = 0;
|
) const = 0;
|
||||||
|
|
||||||
//- Effective thermal diffusivity for temperature
|
//- Thermal diffusivity for energy of mixture [kg/m/s]
|
||||||
|
virtual tmp<volScalarField> alphahe() const = 0;
|
||||||
|
|
||||||
|
//- Thermal diffusivity for energy of mixture for patch [kg/m/s]
|
||||||
|
virtual tmp<scalarField> alphahe(const label patchi) const = 0;
|
||||||
|
|
||||||
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
// of mixture [J/m/s/K]
|
// of mixture [J/m/s/K]
|
||||||
virtual tmp<volScalarField> kappaEff
|
virtual tmp<volScalarField> kappaEff
|
||||||
(
|
(
|
||||||
const volScalarField&
|
const volScalarField&
|
||||||
) const = 0;
|
) const = 0;
|
||||||
|
|
||||||
//- Effective thermal diffusivity for temperature
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
// of mixture for patch [J/m/s/K]
|
// of mixture for patch [J/m/s/K]
|
||||||
virtual tmp<scalarField> kappaEff
|
virtual tmp<scalarField> kappaEff
|
||||||
(
|
(
|
||||||
@ -444,13 +450,14 @@ public:
|
|||||||
const label patchi
|
const label patchi
|
||||||
) const = 0;
|
) const = 0;
|
||||||
|
|
||||||
//- Effective thermal diffusivity of mixture [kg/m/s]
|
//- Effective thermal turbulent diffusivity of mixture [kg/m/s]
|
||||||
virtual tmp<volScalarField> alphaEff
|
virtual tmp<volScalarField> alphaEff
|
||||||
(
|
(
|
||||||
const volScalarField& alphat
|
const volScalarField& alphat
|
||||||
) const = 0;
|
) const = 0;
|
||||||
|
|
||||||
//- Effective thermal diffusivity of mixture for patch [kg/m/s]
|
//- Effective thermal turbulent diffusivity of mixture
|
||||||
|
// for patch [kg/m/s]
|
||||||
virtual tmp<scalarField> alphaEff
|
virtual tmp<scalarField> alphaEff
|
||||||
(
|
(
|
||||||
const scalarField& alphat,
|
const scalarField& alphat,
|
||||||
|
|||||||
@ -794,6 +794,31 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::kappa
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class BasicThermo, class MixtureType>
|
||||||
|
Foam::tmp<Foam::volScalarField>
|
||||||
|
Foam::heThermo<BasicThermo, MixtureType>::alphahe() const
|
||||||
|
{
|
||||||
|
tmp<Foam::volScalarField> alphaEff(this->CpByCpv()*this->alpha_);
|
||||||
|
alphaEff.ref().rename("alphahe");
|
||||||
|
return alphaEff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class BasicThermo, class MixtureType>
|
||||||
|
Foam::tmp<Foam::scalarField>
|
||||||
|
Foam::heThermo<BasicThermo, MixtureType>::alphahe(const label patchi) const
|
||||||
|
{
|
||||||
|
return
|
||||||
|
this->CpByCpv
|
||||||
|
(
|
||||||
|
this->p_.boundaryField()[patchi],
|
||||||
|
this->T_.boundaryField()[patchi],
|
||||||
|
patchi
|
||||||
|
)
|
||||||
|
*this->alpha_.boundaryField()[patchi];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class BasicThermo, class MixtureType>
|
template<class BasicThermo, class MixtureType>
|
||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::heThermo<BasicThermo, MixtureType>::kappaEff
|
Foam::heThermo<BasicThermo, MixtureType>::kappaEff
|
||||||
|
|||||||
@ -268,18 +268,27 @@ public:
|
|||||||
//- Thermal diffusivity for temperature of mixture [J/m/s/K]
|
//- Thermal diffusivity for temperature of mixture [J/m/s/K]
|
||||||
virtual tmp<volScalarField> kappa() const;
|
virtual tmp<volScalarField> kappa() const;
|
||||||
|
|
||||||
//- Thermal diffusivity for temperature
|
//- Thermal diffusivity for temperature of mixture
|
||||||
// of mixture for patch [J/m/s/K]
|
// for patch [J/m/s/K]
|
||||||
virtual tmp<scalarField> kappa
|
virtual tmp<scalarField> kappa
|
||||||
(
|
(
|
||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
//- Effective thermal diffusivity for temperature
|
//- Thermal diffusivity for energy of mixture [kg/m/s]
|
||||||
// of mixture [J/m/s/K]
|
virtual tmp<volScalarField> alphahe() const;
|
||||||
virtual tmp<volScalarField> kappaEff(const volScalarField&) const;
|
|
||||||
|
|
||||||
//- Effective thermal diffusivity for temperature
|
//- Thermal diffusivity for energy of mixture for patch [kg/m/s]
|
||||||
|
virtual tmp<scalarField> alphahe(const label patchi) const;
|
||||||
|
|
||||||
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
|
// of mixture [J/m/s/K]
|
||||||
|
virtual tmp<volScalarField> kappaEff
|
||||||
|
(
|
||||||
|
const volScalarField&
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Effective thermal turbulent diffusivity for temperature
|
||||||
// of mixture for patch [J/m/s/K]
|
// of mixture for patch [J/m/s/K]
|
||||||
virtual tmp<scalarField> kappaEff
|
virtual tmp<scalarField> kappaEff
|
||||||
(
|
(
|
||||||
@ -287,13 +296,14 @@ public:
|
|||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
//- Effective thermal diffusivity of mixture [kg/m/s]
|
//- Effective thermal turbulent diffusivity of mixture [kg/m/s]
|
||||||
virtual tmp<volScalarField> alphaEff
|
virtual tmp<volScalarField> alphaEff
|
||||||
(
|
(
|
||||||
const volScalarField& alphat
|
const volScalarField& alphat
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
//- Effective thermal diffusivity of mixture for patch [kg/m/s]
|
//- Effective thermal turbulent diffusivity of mixture
|
||||||
|
// for patch [kg/m/s]
|
||||||
virtual tmp<scalarField> alphaEff
|
virtual tmp<scalarField> alphaEff
|
||||||
(
|
(
|
||||||
const scalarField& alphat,
|
const scalarField& alphat,
|
||||||
|
|||||||
@ -67,7 +67,8 @@ greyDiffusiveRadiationMixedFvPatchScalarField
|
|||||||
(
|
(
|
||||||
p,
|
p,
|
||||||
ptf.emissivityMethod(),
|
ptf.emissivityMethod(),
|
||||||
ptf.emissivity_
|
ptf.emissivity_,
|
||||||
|
mapper
|
||||||
),
|
),
|
||||||
TName_(ptf.TName_)
|
TName_(ptf.TName_)
|
||||||
{}
|
{}
|
||||||
@ -143,6 +144,27 @@ greyDiffusiveRadiationMixedFvPatchScalarField
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
void Foam::radiation::greyDiffusiveRadiationMixedFvPatchScalarField::autoMap
|
||||||
|
(
|
||||||
|
const fvPatchFieldMapper& m
|
||||||
|
)
|
||||||
|
{
|
||||||
|
mixedFvPatchScalarField::autoMap(m);
|
||||||
|
radiationCoupledBase::autoMap(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::radiation::greyDiffusiveRadiationMixedFvPatchScalarField::rmap
|
||||||
|
(
|
||||||
|
const fvPatchScalarField& ptf,
|
||||||
|
const labelList& addr
|
||||||
|
)
|
||||||
|
{
|
||||||
|
mixedFvPatchScalarField::rmap(ptf, addr);
|
||||||
|
radiationCoupledBase::rmap(ptf, addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::radiation::greyDiffusiveRadiationMixedFvPatchScalarField::
|
void Foam::radiation::greyDiffusiveRadiationMixedFvPatchScalarField::
|
||||||
updateCoeffs()
|
updateCoeffs()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -171,6 +171,21 @@ public:
|
|||||||
return TName_;
|
return TName_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Mapping functions
|
||||||
|
|
||||||
|
//- Map (and resize as needed) from self given a mapping object
|
||||||
|
virtual void autoMap
|
||||||
|
(
|
||||||
|
const fvPatchFieldMapper&
|
||||||
|
);
|
||||||
|
|
||||||
|
//- Reverse map the given fvPatchField onto this fvPatchField
|
||||||
|
virtual void rmap
|
||||||
|
(
|
||||||
|
const fvPatchScalarField&,
|
||||||
|
const labelList&
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
// Evaluation functions
|
// Evaluation functions
|
||||||
|
|
||||||
|
|||||||
@ -58,9 +58,10 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
|
|||||||
(
|
(
|
||||||
patch(),
|
patch(),
|
||||||
ptf.emissivityMethod(),
|
ptf.emissivityMethod(),
|
||||||
ptf.emissivity_
|
ptf.emissivity_,
|
||||||
|
mapper
|
||||||
),
|
),
|
||||||
qro_(ptf.qro_)
|
qro_(ptf.qro_, mapper)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -128,6 +129,32 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
void Foam::radiation::greyDiffusiveViewFactorFixedValueFvPatchScalarField::
|
||||||
|
autoMap
|
||||||
|
(
|
||||||
|
const fvPatchFieldMapper& m
|
||||||
|
)
|
||||||
|
{
|
||||||
|
fixedValueFvPatchScalarField::autoMap(m);
|
||||||
|
radiationCoupledBase::autoMap(m);
|
||||||
|
qro_.autoMap(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::radiation::greyDiffusiveViewFactorFixedValueFvPatchScalarField::rmap
|
||||||
|
(
|
||||||
|
const fvPatchScalarField& ptf,
|
||||||
|
const labelList& addr
|
||||||
|
)
|
||||||
|
{
|
||||||
|
fixedValueFvPatchScalarField::rmap(ptf, addr);
|
||||||
|
radiationCoupledBase::rmap(ptf, addr);
|
||||||
|
const greyDiffusiveViewFactorFixedValueFvPatchScalarField& mrptf =
|
||||||
|
refCast<const greyDiffusiveViewFactorFixedValueFvPatchScalarField>(ptf);
|
||||||
|
|
||||||
|
qro_.rmap(mrptf.qro_, addr);
|
||||||
|
}
|
||||||
|
|
||||||
void Foam::radiation::greyDiffusiveViewFactorFixedValueFvPatchScalarField::
|
void Foam::radiation::greyDiffusiveViewFactorFixedValueFvPatchScalarField::
|
||||||
updateCoeffs()
|
updateCoeffs()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -168,6 +168,20 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//- Map (and resize as needed) from self given a mapping object
|
||||||
|
virtual void autoMap
|
||||||
|
(
|
||||||
|
const fvPatchFieldMapper&
|
||||||
|
);
|
||||||
|
|
||||||
|
//- Reverse map the given fvPatchField onto this fvPatchField
|
||||||
|
virtual void rmap
|
||||||
|
(
|
||||||
|
const fvPatchScalarField&,
|
||||||
|
const labelList&
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
// Evaluation functions
|
// Evaluation functions
|
||||||
|
|
||||||
//- Update the coefficients associated with the patch field
|
//- Update the coefficients associated with the patch field
|
||||||
|
|||||||
@ -68,7 +68,8 @@ wideBandDiffusiveRadiationMixedFvPatchScalarField
|
|||||||
(
|
(
|
||||||
p,
|
p,
|
||||||
ptf.emissivityMethod(),
|
ptf.emissivityMethod(),
|
||||||
ptf.emissivity_
|
ptf.emissivity_,
|
||||||
|
mapper
|
||||||
),
|
),
|
||||||
TName_(ptf.TName_)
|
TName_(ptf.TName_)
|
||||||
{}
|
{}
|
||||||
@ -147,6 +148,27 @@ wideBandDiffusiveRadiationMixedFvPatchScalarField
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
void Foam::radiation::wideBandDiffusiveRadiationMixedFvPatchScalarField::
|
||||||
|
autoMap
|
||||||
|
(
|
||||||
|
const fvPatchFieldMapper& m
|
||||||
|
)
|
||||||
|
{
|
||||||
|
mixedFvPatchScalarField::autoMap(m);
|
||||||
|
radiationCoupledBase::autoMap(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::radiation::wideBandDiffusiveRadiationMixedFvPatchScalarField::rmap
|
||||||
|
(
|
||||||
|
const fvPatchScalarField& ptf,
|
||||||
|
const labelList& addr
|
||||||
|
)
|
||||||
|
{
|
||||||
|
mixedFvPatchScalarField::rmap(ptf, addr);
|
||||||
|
radiationCoupledBase::rmap(ptf, addr);
|
||||||
|
}
|
||||||
|
|
||||||
void Foam::radiation::wideBandDiffusiveRadiationMixedFvPatchScalarField::
|
void Foam::radiation::wideBandDiffusiveRadiationMixedFvPatchScalarField::
|
||||||
updateCoeffs()
|
updateCoeffs()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -165,6 +165,20 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//- Map (and resize as needed) from self given a mapping object
|
||||||
|
virtual void autoMap
|
||||||
|
(
|
||||||
|
const fvPatchFieldMapper&
|
||||||
|
);
|
||||||
|
|
||||||
|
//- Reverse map the given fvPatchField onto this fvPatchField
|
||||||
|
virtual void rmap
|
||||||
|
(
|
||||||
|
const fvPatchScalarField&,
|
||||||
|
const labelList&
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
// Evaluation functions
|
// Evaluation functions
|
||||||
|
|
||||||
//- Update the coefficients associated with the patch field
|
//- Update the coefficients associated with the patch field
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
1.0
|
1.0
|
||||||
);
|
);
|
||||||
|
|
||||||
if (radiation->radiation())
|
if (!isType<radiation::noRadiation>(radiation()))
|
||||||
{
|
{
|
||||||
IOdictionary transportProperties
|
IOdictionary transportProperties
|
||||||
(
|
(
|
||||||
|
|||||||
@ -68,16 +68,20 @@ Foam::radiation::noRadiation::~noRadiation()
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
bool Foam::radiation::noRadiation::read()
|
void Foam::radiation::noRadiation::correct()
|
||||||
{
|
{}
|
||||||
return radiationModel::read();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Foam::radiation::noRadiation::calculate()
|
void Foam::radiation::noRadiation::calculate()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
bool Foam::radiation::noRadiation::read()
|
||||||
|
{
|
||||||
|
return radiationModel::read();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Foam::tmp<Foam::volScalarField> Foam::radiation::noRadiation::Rp() const
|
Foam::tmp<Foam::volScalarField> Foam::radiation::noRadiation::Rp() const
|
||||||
{
|
{
|
||||||
return tmp<volScalarField>
|
return tmp<volScalarField>
|
||||||
|
|||||||
@ -85,6 +85,9 @@ public:
|
|||||||
|
|
||||||
// Edit
|
// Edit
|
||||||
|
|
||||||
|
//- Main update/correction routine
|
||||||
|
void correct();
|
||||||
|
|
||||||
//- Solve radiation equation(s)
|
//- Solve radiation equation(s)
|
||||||
void calculate();
|
void calculate();
|
||||||
|
|
||||||
|
|||||||
@ -74,19 +74,16 @@ Foam::IOobject Foam::radiation::radiationModel::createIOobject
|
|||||||
|
|
||||||
void Foam::radiation::radiationModel::initialise()
|
void Foam::radiation::radiationModel::initialise()
|
||||||
{
|
{
|
||||||
if (radiation_)
|
solverFreq_ = max(1, lookupOrDefault<label>("solverFreq", 1));
|
||||||
{
|
|
||||||
solverFreq_ = max(1, lookupOrDefault<label>("solverFreq", 1));
|
|
||||||
|
|
||||||
absorptionEmission_.reset
|
absorptionEmission_.reset
|
||||||
(
|
(
|
||||||
absorptionEmissionModel::New(*this, mesh_).ptr()
|
absorptionEmissionModel::New(*this, mesh_).ptr()
|
||||||
);
|
);
|
||||||
|
|
||||||
scatter_.reset(scatterModel::New(*this, mesh_).ptr());
|
scatter_.reset(scatterModel::New(*this, mesh_).ptr());
|
||||||
|
|
||||||
soot_.reset(sootModel::New(*this, mesh_).ptr());
|
soot_.reset(sootModel::New(*this, mesh_).ptr());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -108,7 +105,6 @@ Foam::radiation::radiationModel::radiationModel(const volScalarField& T)
|
|||||||
mesh_(T.mesh()),
|
mesh_(T.mesh()),
|
||||||
time_(T.time()),
|
time_(T.time()),
|
||||||
T_(T),
|
T_(T),
|
||||||
radiation_(false),
|
|
||||||
coeffs_(dictionary::null),
|
coeffs_(dictionary::null),
|
||||||
solverFreq_(0),
|
solverFreq_(0),
|
||||||
firstIter_(true),
|
firstIter_(true),
|
||||||
@ -128,7 +124,6 @@ Foam::radiation::radiationModel::radiationModel
|
|||||||
mesh_(T.mesh()),
|
mesh_(T.mesh()),
|
||||||
time_(T.time()),
|
time_(T.time()),
|
||||||
T_(T),
|
T_(T),
|
||||||
radiation_(lookupOrDefault("radiation", true)),
|
|
||||||
coeffs_(subOrEmptyDict(type + "Coeffs")),
|
coeffs_(subOrEmptyDict(type + "Coeffs")),
|
||||||
solverFreq_(1),
|
solverFreq_(1),
|
||||||
firstIter_(true),
|
firstIter_(true),
|
||||||
@ -136,11 +131,6 @@ Foam::radiation::radiationModel::radiationModel
|
|||||||
scatter_(nullptr),
|
scatter_(nullptr),
|
||||||
soot_(nullptr)
|
soot_(nullptr)
|
||||||
{
|
{
|
||||||
if (readOpt() == IOobject::NO_READ)
|
|
||||||
{
|
|
||||||
radiation_ = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
initialise();
|
initialise();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,7 +157,6 @@ Foam::radiation::radiationModel::radiationModel
|
|||||||
mesh_(T.mesh()),
|
mesh_(T.mesh()),
|
||||||
time_(T.time()),
|
time_(T.time()),
|
||||||
T_(T),
|
T_(T),
|
||||||
radiation_(lookupOrDefault("radiation", true)),
|
|
||||||
coeffs_(subOrEmptyDict(type + "Coeffs")),
|
coeffs_(subOrEmptyDict(type + "Coeffs")),
|
||||||
solverFreq_(1),
|
solverFreq_(1),
|
||||||
firstIter_(true),
|
firstIter_(true),
|
||||||
@ -187,11 +176,25 @@ Foam::radiation::radiationModel::~radiationModel()
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
void Foam::radiation::radiationModel::correct()
|
||||||
|
{
|
||||||
|
if (firstIter_ || (time_.timeIndex() % solverFreq_ == 0))
|
||||||
|
{
|
||||||
|
calculate();
|
||||||
|
firstIter_ = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!soot_.empty())
|
||||||
|
{
|
||||||
|
soot_->correct();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Foam::radiation::radiationModel::read()
|
bool Foam::radiation::radiationModel::read()
|
||||||
{
|
{
|
||||||
if (regIOobject::read())
|
if (regIOobject::read())
|
||||||
{
|
{
|
||||||
lookup("radiation") >> radiation_;
|
|
||||||
coeffs_ = subOrEmptyDict(type() + "Coeffs");
|
coeffs_ = subOrEmptyDict(type() + "Coeffs");
|
||||||
|
|
||||||
solverFreq_ = lookupOrDefault<label>("solverFreq", 1);
|
solverFreq_ = lookupOrDefault<label>("solverFreq", 1);
|
||||||
@ -206,26 +209,6 @@ bool Foam::radiation::radiationModel::read()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::radiation::radiationModel::correct()
|
|
||||||
{
|
|
||||||
if (!radiation_)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (firstIter_ || (time_.timeIndex() % solverFreq_ == 0))
|
|
||||||
{
|
|
||||||
calculate();
|
|
||||||
firstIter_ = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soot_.empty())
|
|
||||||
{
|
|
||||||
soot_->correct();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Foam::tmp<Foam::fvScalarMatrix> Foam::radiation::radiationModel::Sh
|
Foam::tmp<Foam::fvScalarMatrix> Foam::radiation::radiationModel::Sh
|
||||||
(
|
(
|
||||||
const basicThermo& thermo,
|
const basicThermo& thermo,
|
||||||
|
|||||||
@ -86,9 +86,6 @@ protected:
|
|||||||
//- Reference to the temperature field
|
//- Reference to the temperature field
|
||||||
const volScalarField& T_;
|
const volScalarField& T_;
|
||||||
|
|
||||||
//- Radiation model on/off flag
|
|
||||||
Switch radiation_;
|
|
||||||
|
|
||||||
//- Radiation model dictionary
|
//- Radiation model dictionary
|
||||||
dictionary coeffs_;
|
dictionary coeffs_;
|
||||||
|
|
||||||
@ -211,12 +208,6 @@ public:
|
|||||||
|
|
||||||
// Access
|
// Access
|
||||||
|
|
||||||
//- Radiation model on/off flag
|
|
||||||
const Switch radiation() const
|
|
||||||
{
|
|
||||||
return radiation_;
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Source term component (for power of T^4)
|
//- Source term component (for power of T^4)
|
||||||
virtual tmp<volScalarField> Rp() const = 0;
|
virtual tmp<volScalarField> Rp() const = 0;
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ cd "${0%/*}" || exit 1 # Run from this directory
|
|||||||
|
|
||||||
removeRegionDirs () {
|
removeRegionDirs () {
|
||||||
# HACK to get regionDirs from materialProperties
|
# HACK to get regionDirs from materialProperties
|
||||||
_regionDirs="$(grep -E "^[a-Z]" constant/materialProperties | tail -n +2)"
|
_regionDirs="$(grep "^[a-zA-Z]" constant/materialProperties | tail -n +2)"
|
||||||
|
|
||||||
for _d in system constant
|
for _d in system constant
|
||||||
do
|
do
|
||||||
|
|||||||
@ -20,7 +20,7 @@ thermoType
|
|||||||
mixture pureMixture;
|
mixture pureMixture;
|
||||||
transport const;
|
transport const;
|
||||||
thermo hConst;
|
thermo hConst;
|
||||||
equationOfState perfectGas;
|
equationOfState perfectFluid;
|
||||||
specie specie;
|
specie specie;
|
||||||
energy sensibleEnthalpy;
|
energy sensibleEnthalpy;
|
||||||
}
|
}
|
||||||
@ -32,6 +32,11 @@ mixture
|
|||||||
nMoles 1;
|
nMoles 1;
|
||||||
molWeight 18.0; // [g/mol]
|
molWeight 18.0; // [g/mol]
|
||||||
}
|
}
|
||||||
|
equationOfState
|
||||||
|
{
|
||||||
|
R 3000; // [J/(kg K)]
|
||||||
|
rho0 1027; // [kg/m^3]
|
||||||
|
}
|
||||||
thermodynamics
|
thermodynamics
|
||||||
{
|
{
|
||||||
Cp 4181; // [J/(kg K)] at T = 293 K
|
Cp 4181; // [J/(kg K)] at T = 293 K
|
||||||
|
|||||||
@ -16,10 +16,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -14,9 +14,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -15,9 +15,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -15,9 +15,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -14,9 +14,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -16,9 +16,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -33,7 +33,7 @@ writeInterval 1e-2;
|
|||||||
|
|
||||||
purgeWrite 0;
|
purgeWrite 0;
|
||||||
|
|
||||||
writeFormat ascii;
|
writeFormat binary;
|
||||||
|
|
||||||
writePrecision 10;
|
writePrecision 10;
|
||||||
|
|
||||||
|
|||||||
@ -34,7 +34,8 @@ boundaryField
|
|||||||
|
|
||||||
wing
|
wing
|
||||||
{
|
{
|
||||||
type noSlip;
|
type movingWallVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "include/frontBackTopBottomPatches"
|
#include "include/frontBackTopBottomPatches"
|
||||||
|
|||||||
@ -33,7 +33,7 @@ writeInterval 100;
|
|||||||
|
|
||||||
purgeWrite 0;
|
purgeWrite 0;
|
||||||
|
|
||||||
writeFormat ascii;
|
writeFormat binary;
|
||||||
|
|
||||||
writePrecision 6;
|
writePrecision 6;
|
||||||
|
|
||||||
|
|||||||
@ -18,7 +18,7 @@ runApplication -s collapseFaces \
|
|||||||
|
|
||||||
runApplication checkMesh -allTopology -allGeometry -latestTime
|
runApplication checkMesh -allTopology -allGeometry -latestTime
|
||||||
|
|
||||||
latestTime=`foamListTimes -latestTime`
|
latestTime="$(foamListTimes -latestTime)"
|
||||||
|
|
||||||
# Move the mesh into polyMesh
|
# Move the mesh into polyMesh
|
||||||
rm -rf constant/polyMesh
|
rm -rf constant/polyMesh
|
||||||
|
|||||||
@ -12,6 +12,5 @@ zDir (0 0 1);
|
|||||||
flowDir (1 0 0);
|
flowDir (1 0 0);
|
||||||
z0 uniform 0.1;
|
z0 uniform 0.1;
|
||||||
zGround uniform 935.0;
|
zGround uniform 935.0;
|
||||||
value $internalField;
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -17,6 +17,6 @@ runParallel topoSet
|
|||||||
runParallel $(getApplication)
|
runParallel $(getApplication)
|
||||||
|
|
||||||
runApplication reconstructParMesh -constant
|
runApplication reconstructParMesh -constant
|
||||||
runApplication reconstructPar
|
runApplication reconstructPar -constant
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -15,8 +15,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -15,9 +15,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -15,10 +15,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -15,9 +15,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -15,8 +15,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -15,9 +15,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -15,9 +15,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -15,10 +15,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
solverFreq 10;
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -15,8 +15,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
radiation off;
|
|
||||||
|
|
||||||
radiationModel none;
|
radiationModel none;
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user