diff --git a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementThermo/solidDisplacementThermo.C b/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementThermo/solidDisplacementThermo.C index 7ff189c027..c5c40dd2ed 100644 --- a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementThermo/solidDisplacementThermo.C +++ b/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementThermo/solidDisplacementThermo.C @@ -557,6 +557,16 @@ Foam::tmp Foam::solidDisplacementThermo::Kappa } +Foam::tmp Foam::solidDisplacementThermo::KappaLocal +( + const label patchi +) const +{ + NotImplemented; + return tmp(nullptr); +} + + void Foam::solidDisplacementThermo::correct() {} diff --git a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementThermo/solidDisplacementThermo.H b/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementThermo/solidDisplacementThermo.H index f69b592e12..4c1fa8d195 100644 --- a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementThermo/solidDisplacementThermo.H +++ b/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementThermo/solidDisplacementThermo.H @@ -363,10 +363,11 @@ public: virtual tmp Kappa() const; //- Anisotropic thermal conductivity [W/m/K] - virtual tmp Kappa - ( - const label patchi - ) const; + virtual tmp Kappa(const label patchi) const; + + //- Anisotropic thermal conductivity for patch + // in the local coordinate system [W/m/K] + virtual tmp KappaLocal(const label patchi) const; //- Return the heat flux virtual tmp q() const; diff --git a/src/ThermophysicalTransportModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C b/src/ThermophysicalTransportModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C index 8f6722ba4e..16266d1a59 100644 --- a/src/ThermophysicalTransportModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C +++ b/src/ThermophysicalTransportModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C @@ -35,8 +35,7 @@ Foam::temperatureCoupledBase::temperatureCoupledBase const fvPatch& patch ) : - patch_(patch), - alphaAniName_(word::null) + patch_(patch) {} @@ -46,8 +45,7 @@ Foam::temperatureCoupledBase::temperatureCoupledBase const dictionary& dict ) : - patch_(patch), - alphaAniName_(dict.lookupOrDefault("alphaAni", word::null)) + patch_(patch) {} @@ -57,8 +55,7 @@ Foam::temperatureCoupledBase::temperatureCoupledBase const temperatureCoupledBase& base ) : - patch_(patch), - alphaAniName_(base.alphaAniName_) + patch_(patch) {} @@ -110,15 +107,9 @@ Foam::tmp Foam::temperatureCoupledBase::kappa const solidThermo& thermo = mesh.lookupObject(basicThermo::dictName); - if (alphaAniName_ != word::null) + if (!thermo.isotropic()) { - const symmTensorField& alphaAni = - patch_.lookupPatchField - ( - alphaAniName_ - ); - - const symmTensorField kappa(alphaAni*thermo.Cp(Tp, patchi)); + const symmTensorField kappa(thermo.KappaLocal(patchi)); const vectorField n(patch_.nf()); return n & kappa & n; @@ -140,12 +131,7 @@ Foam::tmp Foam::temperatureCoupledBase::kappa void Foam::temperatureCoupledBase::write(Ostream& os) const -{ - if (alphaAniName_ != word::null) - { - writeEntry(os, "alphaAni", alphaAniName_); - } -} +{} // ************************************************************************* // diff --git a/src/ThermophysicalTransportModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H b/src/ThermophysicalTransportModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H index 3923e88a19..c5c2c39a84 100644 --- a/src/ThermophysicalTransportModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H +++ b/src/ThermophysicalTransportModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H @@ -70,10 +70,6 @@ class temperatureCoupledBase //- Underlying patch const fvPatch& patch_; - //- Name of the optional anisotropic alpha for solid conductivity - // This field is read and used if available - const word alphaAniName_; - public: diff --git a/src/thermophysicalModels/solidThermo/solidThermo/heSolidThermo.C b/src/thermophysicalModels/solidThermo/solidThermo/heSolidThermo.C index 33e0edbae1..72dfe70bba 100644 --- a/src/thermophysicalModels/solidThermo/solidThermo/heSolidThermo.C +++ b/src/thermophysicalModels/solidThermo/solidThermo/heSolidThermo.C @@ -276,38 +276,51 @@ Foam::heSolidThermo::KappaLocal() const { const fvMesh& mesh = this->T_.mesh(); - tmp tKappaLocal; + const coordinateSystem coordinates + ( + coordinateSystem::New(mesh, this->properties()) + ); - if (!isotropic()) - { - coordinateSystem coordinates + const tmp tKappa(Kappa()); + + tmp tKappaLocal + ( + volSymmTensorField::New ( - coordinateSystem::New(mesh, this->properties()) - ); + "KappaLocal", + mesh, + dimensionedSymmTensor(tKappa().dimensions(), Zero), + zeroGradientFvPatchSymmTensorField::typeName + ) + ); + volSymmTensorField& KappaLocal = tKappaLocal.ref(); - const tmp tKappa(Kappa()); - - tKappaLocal = - ( - volSymmTensorField::New - ( - "KappaLocal", - mesh, - dimensionedSymmTensor(tKappa().dimensions(), Zero), - zeroGradientFvPatchSymmTensorField::typeName - ) - ); - volSymmTensorField& KappaLocal = tKappaLocal.ref(); - - KappaLocal.primitiveFieldRef() = - coordinates.R().transformVector(tKappa()); - KappaLocal.correctBoundaryConditions(); - } + KappaLocal.primitiveFieldRef() = + coordinates.R().transformVector(tKappa()); + KappaLocal.correctBoundaryConditions(); return tKappaLocal; } +template +Foam::tmp +Foam::heSolidThermo::KappaLocal +( + const label patchi +) const +{ + const fvMesh& mesh = this->T_.mesh(); + + const coordinateSystem coordinates + ( + coordinateSystem::New(mesh, this->properties()) + ); + + return coordinates.R().transformVector(Kappa(patchi)); +} + + template Foam::tmp Foam::heSolidThermo::q() const diff --git a/src/thermophysicalModels/solidThermo/solidThermo/heSolidThermo.H b/src/thermophysicalModels/solidThermo/solidThermo/heSolidThermo.H index 30497d4022..16d062612a 100644 --- a/src/thermophysicalModels/solidThermo/solidThermo/heSolidThermo.H +++ b/src/thermophysicalModels/solidThermo/solidThermo/heSolidThermo.H @@ -111,6 +111,10 @@ public: //- Anisotropic thermal conductivity [W/m/K] virtual tmp Kappa(const label patchi) const; + //- Anisotropic thermal conductivity for patch + // in the local coordinate system [W/m/K] + virtual tmp KappaLocal(const label patchi) const; + //- Return the heat flux virtual tmp q() const; diff --git a/src/thermophysicalModels/solidThermo/solidThermo/solidThermo.H b/src/thermophysicalModels/solidThermo/solidThermo/solidThermo.H index 4f9c73ff29..4e76d9b412 100644 --- a/src/thermophysicalModels/solidThermo/solidThermo/solidThermo.H +++ b/src/thermophysicalModels/solidThermo/solidThermo/solidThermo.H @@ -133,6 +133,10 @@ public: //- Anisotropic thermal conductivity for patch [W/m/K] virtual tmp Kappa(const label patchi) const = 0; + //- Anisotropic thermal conductivity for patch + // in the local coordinate system [W/m/K] + virtual tmp KappaLocal(const label patchi) const = 0; + //- Return the heat flux virtual tmp q() const = 0; @@ -207,6 +211,10 @@ public: //- Anisotropic thermal conductivity for patch [W/m/K] virtual tmp Kappa(const label patchi) const = 0; + //- Anisotropic thermal conductivity for patch + // in the local coordinate system [W/m/K] + virtual tmp KappaLocal(const label patchi) const = 0; + //- Return the heat flux virtual tmp q() const = 0;