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

View file

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

View file

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