41 const DimensionedField<vector, volMesh>& iF
44 fixedGradientFvPatchVectorField(p, iF),
45 traction_(p.size(),
Zero),
46 pressure_(p.size(), 0.0)
48 fvPatchVectorField::operator=(patchInternalField());
53 tractionDisplacementCorrectionFvPatchVectorField::
54 tractionDisplacementCorrectionFvPatchVectorField
56 const tractionDisplacementCorrectionFvPatchVectorField& tdpvf,
58 const DimensionedField<vector, volMesh>& iF,
59 const fvPatchFieldMapper& mapper
62 fixedGradientFvPatchVectorField(tdpvf, p, iF, mapper),
63 traction_(tdpvf.traction_, mapper),
64 pressure_(tdpvf.pressure_, mapper)
68 tractionDisplacementCorrectionFvPatchVectorField::
69 tractionDisplacementCorrectionFvPatchVectorField
72 const DimensionedField<vector, volMesh>& iF,
73 const dictionary& dict
76 fixedGradientFvPatchVectorField(p, iF),
77 traction_(
"traction", dict, p.size()),
78 pressure_(
"pressure", dict, p.size())
80 fvPatchVectorField::operator=(patchInternalField());
85 tractionDisplacementCorrectionFvPatchVectorField::
86 tractionDisplacementCorrectionFvPatchVectorField
88 const tractionDisplacementCorrectionFvPatchVectorField& tdpvf
91 fixedGradientFvPatchVectorField(tdpvf),
92 traction_(tdpvf.traction_),
93 pressure_(tdpvf.pressure_)
97 tractionDisplacementCorrectionFvPatchVectorField::
98 tractionDisplacementCorrectionFvPatchVectorField
100 const tractionDisplacementCorrectionFvPatchVectorField& tdpvf,
101 const DimensionedField<vector, volMesh>& iF
104 fixedGradientFvPatchVectorField(tdpvf, iF),
105 traction_(tdpvf.traction_),
106 pressure_(tdpvf.pressure_)
112 void tractionDisplacementCorrectionFvPatchVectorField::autoMap
114 const fvPatchFieldMapper& m
117 fixedGradientFvPatchVectorField::autoMap(m);
118 traction_.autoMap(m);
119 pressure_.autoMap(m);
124 void tractionDisplacementCorrectionFvPatchVectorField::rmap
130 fixedGradientFvPatchVectorField::rmap(ptf, addr);
132 const tractionDisplacementCorrectionFvPatchVectorField& dmptf =
133 refCast<const tractionDisplacementCorrectionFvPatchVectorField>(ptf);
135 traction_.rmap(dmptf.traction_, addr);
136 pressure_.rmap(dmptf.pressure_, addr);
141 void tractionDisplacementCorrectionFvPatchVectorField::updateCoeffs()
148 const dictionary& mechanicalProperties = db().lookupObject<IOdictionary>
150 "mechanicalProperties" 153 const fvPatchField<scalar>& rho =
156 const fvPatchField<scalar>& rhoE =
159 const fvPatchField<scalar>& nu =
166 Switch planeStress(mechanicalProperties.lookup(
"planeStress"));
170 lambda = nu*E/((1.0 +
nu)*(1.0 - nu));
175 const fvPatchField<symmTensor>& sigmaD =
178 const fvPatchField<tensor>& sigmaExp =
183 (traction_ + pressure_*
n)/rho - (
n & (sigmaD + sigmaExp))
186 fixedGradientFvPatchVectorField::updateCoeffs();
194 traction_.writeEntry(
"traction", os);
195 pressure_.writeEntry(
"pressure", os);
196 writeEntry(
"value", os);
205 tractionDisplacementCorrectionFvPatchVectorField
#define makePatchTypeField(PatchTypeField, typePatchTypeField)
GeometricField< symmTensor, fvPatchField, volMesh > volSymmTensorField
fvPatchField< vector > fvPatchVectorField
GeometricField< tensor, fvPatchField, volMesh > volTensorField
volVectorField vectorField(fieldObject, mesh)
Macros for easy insertion into run-time selection tables.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
SymmTensor< scalar > symmTensor
SymmTensor of scalars.
List< label > labelList
A List of labels.
volScalarField scalarField(fieldObject, mesh)
tractionDisplacementCorrectionFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &)
Construct from patch and internal field.
const dimensionedScalar mu
Atomic mass unit.
dimensionedScalar lambda(laminarTransport.lookup("lambda"))
Tensor< scalar > tensor
Tensor of scalars.