39tractionDisplacementFvPatchVectorField::
40tractionDisplacementFvPatchVectorField
43 const DimensionedField<vector, volMesh>& iF
46 fixedGradientFvPatchVectorField(
p, iF),
47 traction_(
p.size(),
Zero),
48 pressure_(
p.size(),
Zero)
50 fvPatchVectorField::operator=(patchInternalField());
55tractionDisplacementFvPatchVectorField::
56tractionDisplacementFvPatchVectorField
58 const tractionDisplacementFvPatchVectorField& tdpvf,
60 const DimensionedField<vector, volMesh>& iF,
61 const fvPatchFieldMapper& mapper
64 fixedGradientFvPatchVectorField(tdpvf,
p, iF, mapper),
65 traction_(tdpvf.traction_, mapper),
66 pressure_(tdpvf.pressure_, mapper)
70tractionDisplacementFvPatchVectorField::
71tractionDisplacementFvPatchVectorField
74 const DimensionedField<vector, volMesh>& iF,
75 const dictionary&
dict
78 fixedGradientFvPatchVectorField(
p, iF),
79 traction_(
"traction",
dict,
p.size()),
80 pressure_(
"pressure",
dict,
p.size())
82 fvPatchVectorField::operator=(patchInternalField());
87tractionDisplacementFvPatchVectorField::
88tractionDisplacementFvPatchVectorField
90 const tractionDisplacementFvPatchVectorField& tdpvf
93 fixedGradientFvPatchVectorField(tdpvf),
94 traction_(tdpvf.traction_),
95 pressure_(tdpvf.pressure_)
99tractionDisplacementFvPatchVectorField::
100tractionDisplacementFvPatchVectorField
102 const tractionDisplacementFvPatchVectorField& tdpvf,
103 const DimensionedField<vector, volMesh>& iF
106 fixedGradientFvPatchVectorField(tdpvf, iF),
107 traction_(tdpvf.traction_),
108 pressure_(tdpvf.pressure_)
114void tractionDisplacementFvPatchVectorField::autoMap
116 const fvPatchFieldMapper& m
120 traction_.autoMap(m);
121 pressure_.autoMap(m);
125void tractionDisplacementFvPatchVectorField::rmap
127 const fvPatchVectorField& ptf,
128 const labelList& addr
133 const tractionDisplacementFvPatchVectorField& dmptf =
134 refCast<const tractionDisplacementFvPatchVectorField>(ptf);
136 traction_.rmap(dmptf.traction_, addr);
137 pressure_.rmap(dmptf.pressure_, addr);
141void tractionDisplacementFvPatchVectorField::updateCoeffs()
148 const dictionary& mechanicalProperties =
149 db().lookupObject<IOdictionary>(
"mechanicalProperties");
151 const dictionary& thermalProperties =
152 db().lookupObject<IOdictionary>(
"thermalProperties");
155 const fvPatchField<scalar>&
rho =
158 const fvPatchField<scalar>&
rhoE =
161 const fvPatchField<scalar>&
nu =
169 if (mechanicalProperties.get<
bool>(
"planeStress"))
172 threeK = E/(1.0 -
nu);
179 const fvPatchField<symmTensor>& sigmaD =
184 (traction_ - pressure_*
n)/
rho
185 + twoMuLambda*fvPatchField<vector>::snGrad() - (
n & sigmaD)
188 if (thermalProperties.get<
bool>(
"thermalStress"))
190 const fvPatchField<scalar>& threeKalpha=
193 const fvPatchField<scalar>&
T =
196 gradient() +=
n*threeKalpha*
T/twoMuLambda;
203void tractionDisplacementFvPatchVectorField::write(Ostream&
os)
const
205 fvPatchVectorField::write(
os);
206 traction_.writeEntry(
"traction",
os);
207 pressure_.writeEntry(
"pressure",
os);
208 writeEntry(
"value",
os);
217 tractionDisplacementFvPatchVectorField
Macros for easy insertion into run-time selection tables.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
void rmap(const atmBoundaryLayer &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
const volScalarField & mu
OBJstream os(runTime.globalPath()/outputName)
#define makePatchTypeField(PatchTypeField, typePatchTypeField)
const std::string patch
OpenFOAM patch number as a std::string.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
SymmTensor< scalar > symmTensor
SymmTensor of scalars, i.e. SymmTensor<scalar>.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Field< vector > vectorField
Specialisation of Field<T> for vector.
GeometricField< symmTensor, fvPatchField, volMesh > volSymmTensorField
static constexpr const zero Zero
Global zero (0)
dimensionedScalar lambda("lambda", dimTime/sqr(dimLength), laminarTransport)