51 const word& sourceName,
52 const word& modelType,
57 fa::faceSetOption(sourceName, modelType,
dict,
mesh),
58 TName_(
dict.getOrDefault<
word>(
"T",
"T")),
78 Foam::fa::contactHeatFluxSource::htc()
const 86 auto& htc = thtc.ref();
90 PtrList<scalarField> patchValues(coupling_.size());
94 const auto* tempCoupled = coupling_.get(patchi);
98 const fvPatch&
p = tempCoupled->patch();
104 tempCoupled->kappa(
p.patchInternalField(Tprimary_))
111 vsm().mapToSurface<scalar>(patchValues, htc.field());
113 if (contactRes_ != 0)
115 htc.field() += contactRes_;
136 <<
name() <<
": applying source to " 151 vsm().mapInternalToSurface<scalar>(Tprimary_, Twall.ref().field());
153 eqn += -
fam::Sp(htcw(), eqn.psi()) + htcw()*Twall;
155 curTimeIndex_ =
mesh().time().timeIndex();
165 coeffs_.readIfPresent(
"T", TName_);
169 if (
dict.readIfPresent(
"thicknessLayers", thicknessLayers_))
171 dict.readEntry(
"kappaLayers", kappaLayers_);
175 forAll(thicknessLayers_, iLayer)
177 contactRes_ += thicknessLayers_[iLayer]/kappaLayers_[iLayer];
180 if (thicknessLayers_.size())
182 contactRes_ = scalar(1)/contactRes_;
195 for (
const label patchi :
patches)
197 const fvPatch&
p = mesh_.boundary()[patchi];
202 new temperatureCoupling(
p,
dict)
List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
List of values generated by applying the access operation to each list item.
addToRunTimeSelectionTable(option, limitHeight, dictionary)
wordList fieldNames_
Field names to apply source to - populated by derived models.
const volSurfaceMapping vsm(aMesh)
void resize(const label len)
Adjust allocated size of list.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
const word & name() const noexcept
Return the object name.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Macros for easy insertion into run-time selection tables.
#define forAll(list, i)
Loop across all elements in list.
zeroField Sp(const Foam::zero, const GeometricField< Type, faPatchField, areaMesh > &)
A no-op source.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
A class for handling words, derived from Foam::string.
const dimensionSet dimTemperature(0, 0, 0, 1, 0, 0, 0)
defineTypeNameAndDebug(limitHeight, 0)
virtual bool read(const dictionary &dict)
Read source dictionary.
const word & name() const noexcept
Return const access to the source name.
#define DebugInfo
Report an information message using Foam::Info.
const dimensionSet dimPower
Calculate the finiteArea matrix for implicit and explicit sources.
const dimensionedScalar h
Planck constant.
void resetApplied()
Resize/reset applied flag list for all fieldNames_ entries.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Mesh data needed to do the Finite Volume discretisation.
const polyBoundaryMesh & patches
static tmp< DimensionedField< Type, GeoMesh > > New(const word &name, IOobjectOption::registerOption regOpt, const Mesh &mesh, const dimensionSet &dims, const Field< Type > &iField)
Return tmp field (NO_READ, NO_WRITE) from name, mesh, dimensions, copy of internal field...
A special matrix type and solver, designed for finite area solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
void subsetFilter(List< Type > &field) const
Zero all non-selected locations within field.
const GeometricField< Type, faPatchField, areaMesh > & psi() const
List< label > labelList
A List of labels.
A class for managing temporary objects.
const dimensionSet dimArea(sqr(dimLength))
static constexpr const zero Zero
Global zero (0)