Bugfix: fvMesh.C and sixDOFqODE.C. Minor changes to lduMatrix and lduAdressing.
This commit is contained in:
parent
8bc571ee46
commit
c0de9b1b1e
5 changed files with 57 additions and 1 deletions
|
@ -598,7 +598,7 @@ void Foam::sixDOFqODE::relaxAcceleration
|
||||||
const scalar maxRelFactor
|
const scalar maxRelFactor
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (minRelFactor - maxRelFactor < SMALL)
|
if (mag(minRelFactor - maxRelFactor) < SMALL)
|
||||||
{
|
{
|
||||||
// Fixed relaxation
|
// Fixed relaxation
|
||||||
relaxFactorT_ = minRelFactor;
|
relaxFactorT_ = minRelFactor;
|
||||||
|
|
|
@ -556,6 +556,12 @@ void Foam::fvMesh::updateMesh(const mapPolyMesh& mpm)
|
||||||
// This is a temporary solution
|
// This is a temporary solution
|
||||||
surfaceInterpolation::movePoints();
|
surfaceInterpolation::movePoints();
|
||||||
|
|
||||||
|
// Note: deltaCoeffs cannot be left on lazy evaluation on mesh motion
|
||||||
|
// because tangled comms will occur when they are accessed from
|
||||||
|
// individual boundary conditions
|
||||||
|
// HJ, VV and IG, 25/Oct/2016
|
||||||
|
deltaCoeffs();
|
||||||
|
|
||||||
// Function object update moved to polyMesh
|
// Function object update moved to polyMesh
|
||||||
// HJ, 29/Aug/2010
|
// HJ, 29/Aug/2010
|
||||||
}
|
}
|
||||||
|
@ -577,6 +583,12 @@ void Foam::fvMesh::syncUpdateMesh()
|
||||||
// This is a temporary solution
|
// This is a temporary solution
|
||||||
surfaceInterpolation::movePoints();
|
surfaceInterpolation::movePoints();
|
||||||
|
|
||||||
|
// Note: deltaCoeffs cannot be left on lazy evaluation on mesh motion
|
||||||
|
// because tangled comms will occur when they are accessed from
|
||||||
|
// individual boundary conditions
|
||||||
|
// HJ, VV and IG, 25/Oct/2016
|
||||||
|
deltaCoeffs();
|
||||||
|
|
||||||
// Function object update moved to polyMesh
|
// Function object update moved to polyMesh
|
||||||
// HJ, 29/Aug/2010
|
// HJ, 29/Aug/2010
|
||||||
}
|
}
|
||||||
|
@ -681,6 +693,12 @@ Foam::tmp<Foam::scalarField> Foam::fvMesh::movePoints(const pointField& p)
|
||||||
// Function object update moved to polyMesh
|
// Function object update moved to polyMesh
|
||||||
// HJ, 29/Aug/2010
|
// HJ, 29/Aug/2010
|
||||||
|
|
||||||
|
// Note: deltaCoeffs cannot be left on lazy evaluation on mesh motion
|
||||||
|
// because tangled comms will occur when they are accessed from
|
||||||
|
// individual boundary conditions
|
||||||
|
// HJ, VV and IG, 25/Oct/2016
|
||||||
|
deltaCoeffs();
|
||||||
|
|
||||||
return tsweptVols;
|
return tsweptVols;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -161,6 +161,15 @@ public:
|
||||||
const Pstream::commsTypes commsType,
|
const Pstream::commsTypes commsType,
|
||||||
const bool switchToLhs
|
const bool switchToLhs
|
||||||
) const = 0;
|
) const = 0;
|
||||||
|
|
||||||
|
//- Update the constraints
|
||||||
|
virtual void updateConstraints
|
||||||
|
(
|
||||||
|
const scalarField&,
|
||||||
|
scalarField&,
|
||||||
|
const label
|
||||||
|
) const
|
||||||
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -837,6 +837,15 @@ public:
|
||||||
const bool switchToLhs = false
|
const bool switchToLhs = false
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
|
//- Update the constraints operating on the solution and the source
|
||||||
|
// of the system
|
||||||
|
void updateInterfaceConstraints
|
||||||
|
(
|
||||||
|
const scalarField& xif,
|
||||||
|
scalarField& residual,
|
||||||
|
const lduInterfaceFieldPtrsList& interfaces
|
||||||
|
) const;
|
||||||
|
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
tmp<Field<Type> > H(const Field<Type>&) const;
|
tmp<Field<Type> > H(const Field<Type>&) const;
|
||||||
|
|
|
@ -226,4 +226,24 @@ void Foam::lduMatrix::updateMatrixInterfaces
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::lduMatrix::updateInterfaceConstraints
|
||||||
|
(
|
||||||
|
const scalarField& xif,
|
||||||
|
scalarField& residual,
|
||||||
|
const lduInterfaceFieldPtrsList& interfaces
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
label counter(0);
|
||||||
|
|
||||||
|
forAll (interfaces, interfaceI)
|
||||||
|
{
|
||||||
|
if (interfaces.set(interfaceI))
|
||||||
|
{
|
||||||
|
interfaces[interfaceI].updateConstraints(xif, residual, counter);
|
||||||
|
++counter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
Reference in a new issue