41 jump_(this->size(),
Zero),
42 jump0_(this->size(),
Zero),
59 jump_(ptf.jump_, mapper),
60 jump0_(ptf.jump0_, mapper),
61 minJump_(ptf.minJump_),
62 relaxFactor_(ptf.relaxFactor_),
63 timeIndex_(ptf.timeIndex_)
77 jump_(
p.size(),
Zero),
78 jump0_(
p.size(),
Zero),
80 relaxFactor_(
dict.getOrDefault<scalar>(
"relax", -1)),
83 if (this->cyclicPatch().owner())
87 jump_.
assign(
"jump",
dict,
p.size(), IOobjectOption::MUST_READ);
90 jump0_.assign(
"jump0",
dict,
p.size(), IOobjectOption::LAZY_READ);
95 if (!this->readValueEntry(
dict))
97 this->
evaluate(Pstream::commsTypes::buffered);
106 const fixedJumpFvPatchField<Type>& ptf
109 jumpCyclicFvPatchField<Type>(ptf),
112 minJump_(ptf.minJump_),
113 relaxFactor_(ptf.relaxFactor_),
114 timeIndex_(ptf.timeIndex_)
128 minJump_(ptf.minJump_),
129 relaxFactor_(ptf.relaxFactor_),
130 timeIndex_(ptf.timeIndex_)
139 if (this->cyclicPatch().owner())
141 jump_ =
max(jump, minJump_);
149 if (this->cyclicPatch().owner())
151 jump_ =
max(jump, minJump_);
159 if (this->cyclicPatch().owner())
165 return refCast<const fixedJumpFvPatchField<Type>>
167 this->neighbourPatchField()
176 if (this->cyclicPatch().owner())
182 return refCast<const fixedJumpFvPatchField<Type>>
184 this->neighbourPatchField()
200 if (!this->cyclicPatch().owner() || relaxFactor_ < 0)
205 jump_ =
lerp(jump0_, jump_, relaxFactor_);
207 if (timeIndex_ != this->db().time().
timeIndex())
211 timeIndex_ = this->db().time().timeIndex();
219 const fvPatchFieldMapper& m
222 jumpCyclicFvPatchField<Type>::autoMap(m);
237 const auto& fjptf = refCast<const fixedJumpFvPatchField<Type>>(ptf);
238 jump_.rmap(fjptf.jump_, addr);
239 jump0_.rmap(fjptf.jump0_, addr);
249 if (this->patchType().empty())
251 os.writeEntry(
"patchType", this->interfaceFieldType());
254 if (this->cyclicPatch().owner())
256 jump_.writeEntry(
"jump",
os);
258 if (relaxFactor_ > 0)
260 os.writeEntry(
"relax", relaxFactor_);
261 jump0_.writeEntry(
"jump0",
os);
267 os.writeEntry(
"minJump", minJump_);
270 fvPatchField<Type>::writeValueEntry(
os);
A list of keyword definitions, which are a keyword followed by a number of values (eg...
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
A traits class, which is primarily used for primitives and vector-space.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
void write(vtk::formatter &fmt, const Type &val, const label n=1)
Component-wise write of a value (N times)
Generic templated field type.
fixedJumpFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
A FieldMapper for finite-volume patch fields.
This boundary condition provides a base class for coupled-cyclic conditions with a specified 'jump' (...
string evaluate(label fieldWidth, const std::string &s, size_t pos=0, size_t len=std::string::npos)
String evaluation with specified (positive, non-zero) field width.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
virtual void write(Ostream &) const
Write.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
OBJstream os(runTime.globalPath()/outputName)
dimensioned< Type > lerp(const dimensioned< Type > &a, const dimensioned< Type > &b, const scalar t)
void assign(const entry &e, const label len)
Assign from a primitive dictionary entry with the following behaviour:
This boundary condition provides a jump condition, using the cyclic condition as a base...
virtual void rmap(const fvPatchField< Type > &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
virtual void relax()
Return the relaxed "jump" across the patch.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
virtual tmp< Field< Type > > jump() const
Return the "jump" across the patch.
virtual void setJump(const Field< Type > &jump)
Set the jump field.
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
virtual scalar relaxFactor() const
Return the under-relaxation factor.
A class for managing temporary objects.
virtual tmp< Field< Type > > jump0() const
Return the old time "jump" across the patch.
static constexpr const zero Zero
Global zero (0)