Porting changes: Intel

This commit is contained in:
Hrvoje Jasak 2014-06-14 21:15:10 +01:00
parent b357f5e043
commit 5b17b7bf43
3 changed files with 81 additions and 71 deletions

View file

@ -57,66 +57,76 @@ dirichletNeumann::dirichletNeumann
const PrimitivePatch<face, List, pointField>& slaveFaceZonePatch
)
:
normalContactModel
(
name,
patch,
dict,
masterPatchID,
slavePatchID,
masterFaceZoneID,
slaveFaceZoneID,
masterFaceZonePatch,
slaveFaceZonePatch
),
normalContactModelDict_(dict.subDict(name+"NormalModelDict")),
mesh_(patch.boundaryMesh().mesh()),
slaveDisp_(mesh_.boundaryMesh()[slavePatchID].size(), vector::zero),
oldSlaveDispMag_(mesh_.boundaryMesh()[slavePatchID].size(), 0.0),
slavePressure_(mesh_.boundaryMesh()[slavePatchID].size(), vector::zero),
oldSlavePressure_(mesh_.boundaryMesh()[slavePatchID].size(), vector::zero),
touchFraction_(mesh_.boundaryMesh()[slavePatchID].size(), 0.0),
slaveValueFrac_(mesh_.boundaryMesh()[slavePatchID].size(), symmTensor::zero),
oldSlaveValueFrac_
(mesh_.boundaryMesh()[slavePatchID].size(), symmTensor::zero),
limitPenetration_(normalContactModelDict_.lookup("limitPenetration")),
penetrationLimit_
(readScalar(normalContactModelDict_.lookup("penetrationLimit"))),
limitPressure_(normalContactModelDict_.lookup("limitPressure")),
pressureLimit_(readScalar(normalContactModelDict_.lookup("pressureLimit"))),
settleContact_
(
normalContactModelDict_.found("settleContact") ?
normalContactModelDict_.lookup("settleContact") : false
),
settleIterationNumber_
(
settleContact_ ?
readInt(normalContactModelDict_.lookup("settleIterationNumber")) : GREAT
),
correctMissedVertices_
(
normalContactModelDict_.lookup("correctMissedVertices")
),
slavePointPointsPtr_(NULL),
contactGapTol_(readScalar(normalContactModelDict_.lookup("contactGapTol"))),
contactIterNum_(0),
relaxFactor_(readScalar(normalContactModelDict_.lookup("relaxationFactor"))),
distanceMethod_(normalContactModelDict_.lookup("distanceMethod")),
aitkenRelaxation_(normalContactModelDict_.lookup("aitkenRelaxation")),
curTimeIndex_(-1),
iCorr_(0),
aitkenRes0_(1.0),
aitkenTheta_(relaxFactor_),
aitkenDelta_(slaveDisp_.size(), vector::zero),
aitkenDeltaPrevIter_(slaveDisp_.size(), vector::zero),
slaveDispPrevIter_(slaveDisp_.size(), vector::zero),
oscillationCorr_(normalContactModelDict_.lookup("oscillationCorrection")),
smoothingSteps_(readInt(normalContactModelDict_.lookup("smoothingSteps"))),
infoFreq_(readInt(normalContactModelDict_.lookup("infoFrequency"))),
contactFilePtr_(NULL)
normalContactModel
(
name,
patch,
dict,
masterPatchID,
slavePatchID,
masterFaceZoneID,
slaveFaceZoneID,
masterFaceZonePatch,
slaveFaceZonePatch
),
normalContactModelDict_(dict.subDict(name+"NormalModelDict")),
mesh_(patch.boundaryMesh().mesh()),
slaveDisp_(mesh_.boundaryMesh()[slavePatchID].size(), vector::zero),
oldSlaveDispMag_(mesh_.boundaryMesh()[slavePatchID].size(), 0.0),
slavePressure_(mesh_.boundaryMesh()[slavePatchID].size(), vector::zero),
oldSlavePressure_(mesh_.boundaryMesh()[slavePatchID].size(), vector::zero),
touchFraction_(mesh_.boundaryMesh()[slavePatchID].size(), 0.0),
slaveValueFrac_(mesh_.boundaryMesh()[slavePatchID].size(), symmTensor::zero),
oldSlaveValueFrac_
(
mesh_.boundaryMesh()[slavePatchID].size(), symmTensor::zero
),
limitPenetration_(normalContactModelDict_.lookup("limitPenetration")),
penetrationLimit_
(
readScalar(normalContactModelDict_.lookup("penetrationLimit"))
),
limitPressure_(normalContactModelDict_.lookup("limitPressure")),
pressureLimit_(readScalar(normalContactModelDict_.lookup("pressureLimit"))),
settleContact_
(
normalContactModelDict_.lookupOrDefault<Switch>
(
"settleContact",
false
)
),
settleIterationNumber_
(
normalContactModelDict_.lookupOrDefault<label>
(
"settleIterationNumber",
1000
)
),
correctMissedVertices_
(
normalContactModelDict_.lookup("correctMissedVertices")
),
slavePointPointsPtr_(NULL),
contactGapTol_(readScalar(normalContactModelDict_.lookup("contactGapTol"))),
contactIterNum_(0),
relaxFactor_(readScalar(normalContactModelDict_.lookup("relaxationFactor"))),
distanceMethod_(normalContactModelDict_.lookup("distanceMethod")),
aitkenRelaxation_(normalContactModelDict_.lookup("aitkenRelaxation")),
curTimeIndex_(-1),
iCorr_(0),
aitkenRes0_(1.0),
aitkenTheta_(relaxFactor_),
aitkenDelta_(slaveDisp_.size(), vector::zero),
aitkenDeltaPrevIter_(slaveDisp_.size(), vector::zero),
slaveDispPrevIter_(slaveDisp_.size(), vector::zero),
oscillationCorr_(normalContactModelDict_.lookup("oscillationCorrection")),
smoothingSteps_(readInt(normalContactModelDict_.lookup("smoothingSteps"))),
infoFreq_(readInt(normalContactModelDict_.lookup("infoFrequency"))),
contactFilePtr_(NULL)
{
// master proc open contact info file
// master proc open contact info file
if (Pstream::master())
{
word masterName = mesh_.boundary()[masterPatchID].name();

View file

@ -116,7 +116,7 @@ class dirichletNeumann
// so we can turn off contact corrections after the specified
// number of corrections
Switch settleContact_;
int settleIterationNumber_;
label settleIterationNumber_;
// correct pointDistToInter misses
// pointPoints are needed

View file

@ -66,17 +66,17 @@ normalContactModel::normalContactModel
(patch.boundaryMesh().mesh().boundaryMesh()[slavePatchID].nPoints(), 0.0),
masterToSlaveInterpolatorPtr_
(
// new zoneToZoneInterpolation
new PatchToPatchInterpolation<
PrimitivePatch<
face, List, pointField
>, PrimitivePatch<face, List, pointField> >
(
masterFaceZonePatch,
slaveFaceZonePatch,
intersection::algorithmNames_.read(dict.lookup("projectionAlgo")),
intersection::directionNames_.read(dict.lookup("projectionDir"))
)
new PatchToPatchInterpolation
<
PrimitivePatch<face, List, pointField>,
PrimitivePatch<face, List, pointField>
>
(
masterFaceZonePatch,
slaveFaceZonePatch,
intersection::algorithmNames_.read(dict.lookup("projectionAlgo")),
intersection::directionNames_.read(dict.lookup("projectionDir"))
)
)
{}