Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev
This commit is contained in:
commit
dd2b8a8200
@ -155,7 +155,9 @@ Foam::sixDoFRigidBodyMotion::sixDoFRigidBodyMotion()
|
|||||||
:
|
:
|
||||||
motionState_(),
|
motionState_(),
|
||||||
restraints_(),
|
restraints_(),
|
||||||
|
restraintNames_(),
|
||||||
constraints_(),
|
constraints_(),
|
||||||
|
constraintNames_(),
|
||||||
maxConstraintIterations_(0),
|
maxConstraintIterations_(0),
|
||||||
refCentreOfMass_(vector::zero),
|
refCentreOfMass_(vector::zero),
|
||||||
momentOfInertia_(diagTensor::one*VSMALL),
|
momentOfInertia_(diagTensor::one*VSMALL),
|
||||||
@ -188,7 +190,9 @@ Foam::sixDoFRigidBodyMotion::sixDoFRigidBodyMotion
|
|||||||
tau
|
tau
|
||||||
),
|
),
|
||||||
restraints_(),
|
restraints_(),
|
||||||
|
restraintNames_(),
|
||||||
constraints_(),
|
constraints_(),
|
||||||
|
constraintNames_(),
|
||||||
maxConstraintIterations_(0),
|
maxConstraintIterations_(0),
|
||||||
refCentreOfMass_(refCentreOfMass),
|
refCentreOfMass_(refCentreOfMass),
|
||||||
momentOfInertia_(momentOfInertia),
|
momentOfInertia_(momentOfInertia),
|
||||||
@ -201,7 +205,9 @@ Foam::sixDoFRigidBodyMotion::sixDoFRigidBodyMotion(const dictionary& dict)
|
|||||||
:
|
:
|
||||||
motionState_(dict),
|
motionState_(dict),
|
||||||
restraints_(),
|
restraints_(),
|
||||||
|
restraintNames_(),
|
||||||
constraints_(),
|
constraints_(),
|
||||||
|
constraintNames_(),
|
||||||
maxConstraintIterations_(0),
|
maxConstraintIterations_(0),
|
||||||
refCentreOfMass_(dict.lookupOrDefault("refCentreOfMass", centreOfMass())),
|
refCentreOfMass_(dict.lookupOrDefault("refCentreOfMass", centreOfMass())),
|
||||||
momentOfInertia_(dict.lookup("momentOfInertia")),
|
momentOfInertia_(dict.lookup("momentOfInertia")),
|
||||||
@ -221,7 +227,9 @@ Foam::sixDoFRigidBodyMotion::sixDoFRigidBodyMotion
|
|||||||
:
|
:
|
||||||
motionState_(sDoFRBM.motionState()),
|
motionState_(sDoFRBM.motionState()),
|
||||||
restraints_(sDoFRBM.restraints()),
|
restraints_(sDoFRBM.restraints()),
|
||||||
|
restraintNames_(sDoFRBM.restraintNames()),
|
||||||
constraints_(sDoFRBM.constraints()),
|
constraints_(sDoFRBM.constraints()),
|
||||||
|
constraintNames_(sDoFRBM.constraintNames()),
|
||||||
maxConstraintIterations_(sDoFRBM.maxConstraintIterations()),
|
maxConstraintIterations_(sDoFRBM.maxConstraintIterations()),
|
||||||
refCentreOfMass_(sDoFRBM.refCentreOfMass()),
|
refCentreOfMass_(sDoFRBM.refCentreOfMass()),
|
||||||
momentOfInertia_(sDoFRBM.momentOfInertia()),
|
momentOfInertia_(sDoFRBM.momentOfInertia()),
|
||||||
@ -251,23 +259,29 @@ void Foam::sixDoFRigidBodyMotion::addRestraints
|
|||||||
|
|
||||||
restraints_.setSize(restraintDict.size());
|
restraints_.setSize(restraintDict.size());
|
||||||
|
|
||||||
|
restraintNames_.setSize(restraintDict.size());
|
||||||
|
|
||||||
forAllConstIter(IDLList<entry>, restraintDict, iter)
|
forAllConstIter(IDLList<entry>, restraintDict, iter)
|
||||||
{
|
{
|
||||||
if (iter().isDict())
|
if (iter().isDict())
|
||||||
{
|
{
|
||||||
Info<< "Adding restraint: " << iter().keyword() << endl;
|
// Info<< "Adding restraint: " << iter().keyword() << endl;
|
||||||
|
|
||||||
restraints_.set
|
restraints_.set
|
||||||
(
|
(
|
||||||
i,
|
i,
|
||||||
sixDoFRigidBodyMotionRestraint::New(iter().dict())
|
sixDoFRigidBodyMotionRestraint::New(iter().dict())
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
i++;
|
restraintNames_[i] = iter().keyword();
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
restraints_.setSize(i);
|
restraints_.setSize(i);
|
||||||
|
|
||||||
|
restraintNames_.setSize(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -285,25 +299,33 @@ void Foam::sixDoFRigidBodyMotion::addConstraints
|
|||||||
|
|
||||||
constraints_.setSize(constraintDict.size());
|
constraints_.setSize(constraintDict.size());
|
||||||
|
|
||||||
|
constraintNames_.setSize(constraintDict.size());
|
||||||
|
|
||||||
forAllConstIter(IDLList<entry>, constraintDict, iter)
|
forAllConstIter(IDLList<entry>, constraintDict, iter)
|
||||||
{
|
{
|
||||||
if (iter().isDict())
|
if (iter().isDict())
|
||||||
{
|
{
|
||||||
Info<< "Adding constraint: " << iter().keyword() << endl;
|
// Info<< "Adding constraint: " << iter().keyword() << endl;
|
||||||
|
|
||||||
constraints_.set
|
constraints_.set
|
||||||
(
|
(
|
||||||
i++,
|
i,
|
||||||
sixDoFRigidBodyMotionConstraint::New(iter().dict())
|
sixDoFRigidBodyMotionConstraint::New(iter().dict())
|
||||||
);
|
);
|
||||||
|
|
||||||
|
constraintNames_[i] = iter().keyword();
|
||||||
|
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
constraints_.setSize(i);
|
constraints_.setSize(i);
|
||||||
|
|
||||||
if (constraints_.size())
|
constraintNames_.setSize(i);
|
||||||
|
|
||||||
|
if (!constraints_.empty())
|
||||||
{
|
{
|
||||||
maxConstraintIters_ = readLabel
|
maxConstraintIterations_ = readLabel
|
||||||
(
|
(
|
||||||
constraintDict.lookup("maxIterations")
|
constraintDict.lookup("maxIterations")
|
||||||
);
|
);
|
||||||
|
@ -91,9 +91,15 @@ class sixDoFRigidBodyMotion
|
|||||||
//- Restraints on the motion
|
//- Restraints on the motion
|
||||||
PtrList<sixDoFRigidBodyMotionRestraint> restraints_;
|
PtrList<sixDoFRigidBodyMotionRestraint> restraints_;
|
||||||
|
|
||||||
|
//- Names of the restraints
|
||||||
|
wordList restraintNames_;
|
||||||
|
|
||||||
//- Constaints on the motion
|
//- Constaints on the motion
|
||||||
PtrList<sixDoFRigidBodyMotionConstraint> constraints_;
|
PtrList<sixDoFRigidBodyMotionConstraint> constraints_;
|
||||||
|
|
||||||
|
//- Names of the constraints
|
||||||
|
wordList constraintNames_;
|
||||||
|
|
||||||
//- Maximum number of iterations allowed to attempt to obey
|
//- Maximum number of iterations allowed to attempt to obey
|
||||||
// constraints
|
// constraints
|
||||||
label maxConstraintIterations_;
|
label maxConstraintIterations_;
|
||||||
@ -146,10 +152,16 @@ class sixDoFRigidBodyMotion
|
|||||||
inline const PtrList<sixDoFRigidBodyMotionRestraint>&
|
inline const PtrList<sixDoFRigidBodyMotionRestraint>&
|
||||||
restraints() const;
|
restraints() const;
|
||||||
|
|
||||||
|
//- Return access to the restraintNames
|
||||||
|
inline const wordList& restraintNames() const;
|
||||||
|
|
||||||
//- Return access to the constraints
|
//- Return access to the constraints
|
||||||
inline const PtrList<sixDoFRigidBodyMotionConstraint>&
|
inline const PtrList<sixDoFRigidBodyMotionConstraint>&
|
||||||
constraints() const;
|
constraints() const;
|
||||||
|
|
||||||
|
//- Return access to the constraintNames
|
||||||
|
inline const wordList& constraintNames() const;
|
||||||
|
|
||||||
//- Return access to the maximum allowed number of
|
//- Return access to the maximum allowed number of
|
||||||
// constraint iterations
|
// constraint iterations
|
||||||
inline label maxConstraintIterations() const;
|
inline label maxConstraintIterations() const;
|
||||||
|
@ -34,8 +34,8 @@ Foam::sixDoFRigidBodyMotionConstraint::New(const dictionary& sDoFRBMCDict)
|
|||||||
word sixDoFRigidBodyMotionConstraintTypeName =
|
word sixDoFRigidBodyMotionConstraintTypeName =
|
||||||
sDoFRBMCDict.lookup("sixDoFRigidBodyMotionConstraint");
|
sDoFRBMCDict.lookup("sixDoFRigidBodyMotionConstraint");
|
||||||
|
|
||||||
Info<< "Selecting sixDoFRigidBodyMotionConstraint function "
|
// Info<< "Selecting sixDoFRigidBodyMotionConstraint function "
|
||||||
<< sixDoFRigidBodyMotionConstraintTypeName << endl;
|
// << sixDoFRigidBodyMotionConstraintTypeName << endl;
|
||||||
|
|
||||||
dictionaryConstructorTable::iterator cstrIter =
|
dictionaryConstructorTable::iterator cstrIter =
|
||||||
dictionaryConstructorTablePtr_->find
|
dictionaryConstructorTablePtr_->find
|
||||||
|
@ -107,6 +107,12 @@ Foam::sixDoFRigidBodyMotion::restraints() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inline const Foam::wordList& Foam::sixDoFRigidBodyMotion::restraintNames() const
|
||||||
|
{
|
||||||
|
return restraintNames_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
inline const Foam::PtrList<Foam::sixDoFRigidBodyMotionConstraint>&
|
inline const Foam::PtrList<Foam::sixDoFRigidBodyMotionConstraint>&
|
||||||
Foam::sixDoFRigidBodyMotion::constraints() const
|
Foam::sixDoFRigidBodyMotion::constraints() const
|
||||||
{
|
{
|
||||||
@ -114,6 +120,13 @@ Foam::sixDoFRigidBodyMotion::constraints() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inline const Foam::wordList&
|
||||||
|
Foam::sixDoFRigidBodyMotion::constraintNames() const
|
||||||
|
{
|
||||||
|
return constraintNames_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
inline Foam::label Foam::sixDoFRigidBodyMotion::maxConstraintIterations() const
|
inline Foam::label Foam::sixDoFRigidBodyMotion::maxConstraintIterations() const
|
||||||
{
|
{
|
||||||
return maxConstraintIterations_;
|
return maxConstraintIterations_;
|
||||||
|
@ -69,7 +69,7 @@ void Foam::sixDoFRigidBodyMotion::write(Ostream& os) const
|
|||||||
{
|
{
|
||||||
dictionary constraintsDict;
|
dictionary constraintsDict;
|
||||||
|
|
||||||
constraintsDict.add("maxIterations", maxConstraintIters_);
|
constraintsDict.add("maxIterations", maxConstraintIterations_);
|
||||||
|
|
||||||
forAll(constraints_, rI)
|
forAll(constraints_, rI)
|
||||||
{
|
{
|
||||||
|
@ -34,8 +34,8 @@ Foam::sixDoFRigidBodyMotionRestraint::New(const dictionary& sDoFRBMRDict)
|
|||||||
word sixDoFRigidBodyMotionRestraintTypeName =
|
word sixDoFRigidBodyMotionRestraintTypeName =
|
||||||
sDoFRBMRDict.lookup("sixDoFRigidBodyMotionRestraint");
|
sDoFRBMRDict.lookup("sixDoFRigidBodyMotionRestraint");
|
||||||
|
|
||||||
Info<< "Selecting sixDoFRigidBodyMotionRestraint function "
|
// Info<< "Selecting sixDoFRigidBodyMotionRestraint function "
|
||||||
<< sixDoFRigidBodyMotionRestraintTypeName << endl;
|
// << sixDoFRigidBodyMotionRestraintTypeName << endl;
|
||||||
|
|
||||||
dictionaryConstructorTable::iterator cstrIter =
|
dictionaryConstructorTable::iterator cstrIter =
|
||||||
dictionaryConstructorTablePtr_->find
|
dictionaryConstructorTablePtr_->find
|
||||||
|
Loading…
Reference in New Issue
Block a user