mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of ssh://noisy/home/noisy3/OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -86,18 +86,25 @@ void Foam::Time::adjustDeltaT()
|
||||
(outputTimeIndex_ + 1)*writeInterval_ - (value() - startTime_)
|
||||
);
|
||||
|
||||
label nStepsToNextWrite = label(timeToNextWrite/deltaT_ - SMALL) + 1;
|
||||
scalar newDeltaT = timeToNextWrite/nStepsToNextWrite;
|
||||
scalar nSteps = timeToNextWrite/deltaT_ - SMALL;
|
||||
|
||||
// Control the increase of the time step to within a factor of 2
|
||||
// and the decrease within a factor of 5.
|
||||
if (newDeltaT >= deltaT_)
|
||||
// For tiny deltaT the label can overflow!
|
||||
if (nSteps < labelMax)
|
||||
{
|
||||
deltaT_ = min(newDeltaT, 2.0*deltaT_);
|
||||
}
|
||||
else
|
||||
{
|
||||
deltaT_ = max(newDeltaT, 0.2*deltaT_);
|
||||
label nStepsToNextWrite = label(nSteps) + 1;
|
||||
|
||||
scalar newDeltaT = timeToNextWrite/nStepsToNextWrite;
|
||||
|
||||
// Control the increase of the time step to within a factor of 2
|
||||
// and the decrease within a factor of 5.
|
||||
if (newDeltaT >= deltaT_)
|
||||
{
|
||||
deltaT_ = min(newDeltaT, 2.0*deltaT_);
|
||||
}
|
||||
else
|
||||
{
|
||||
deltaT_ = max(newDeltaT, 0.2*deltaT_);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -30,9 +30,24 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
defineTypeNameAndDebug(Foam::coupledPolyPatch, 0);
|
||||
namespace Foam
|
||||
{
|
||||
defineTypeNameAndDebug(coupledPolyPatch, 0);
|
||||
|
||||
Foam::scalar Foam::coupledPolyPatch::matchTol = 1E-3;
|
||||
scalar coupledPolyPatch::matchTol = 1E-3;
|
||||
|
||||
template<>
|
||||
const char* NamedEnum<coupledPolyPatch::transformType, 4>::names[] =
|
||||
{
|
||||
"unknown",
|
||||
"rotational",
|
||||
"translational",
|
||||
"noOrdering"
|
||||
};
|
||||
|
||||
const NamedEnum<coupledPolyPatch::transformType, 4>
|
||||
coupledPolyPatch::transformTypeNames;
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * //
|
||||
@ -204,12 +219,14 @@ void Foam::coupledPolyPatch::calcTransformTensors
|
||||
const vectorField& nf,
|
||||
const vectorField& nr,
|
||||
const scalarField& smallDist,
|
||||
const scalar absTol
|
||||
const scalar absTol,
|
||||
const transformType transform
|
||||
) const
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Pout<< "coupledPolyPatch::calcTransformTensors : " << name() << endl
|
||||
<< " transform:" << transformTypeNames[transform] << nl
|
||||
<< " (half)size:" << Cf.size() << nl
|
||||
<< " absTol:" << absTol << nl
|
||||
<< " smallDist min:" << min(smallDist) << nl
|
||||
@ -242,9 +259,16 @@ void Foam::coupledPolyPatch::calcTransformTensors
|
||||
Pout<< " error:" << error << endl;
|
||||
}
|
||||
|
||||
if (sum(mag(nf & nr)) < Cf.size()-error)
|
||||
if
|
||||
(
|
||||
transform == ROTATIONAL
|
||||
|| (
|
||||
transform != TRANSLATIONAL
|
||||
&& (sum(mag(nf & nr)) < Cf.size()-error)
|
||||
)
|
||||
)
|
||||
{
|
||||
// Rotation, no separation
|
||||
// Type is rotation or unknown and normals not aligned
|
||||
|
||||
// Assume per-face differing transformation, correct later
|
||||
|
||||
@ -284,7 +308,7 @@ void Foam::coupledPolyPatch::calcTransformTensors
|
||||
}
|
||||
else
|
||||
{
|
||||
// No rotation, possible separation
|
||||
// Translational or (unknown and normals aligned)
|
||||
|
||||
forwardT_.setSize(0);
|
||||
reverseT_.setSize(0);
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -53,6 +53,20 @@ class coupledPolyPatch
|
||||
:
|
||||
public polyPatch
|
||||
{
|
||||
public:
|
||||
|
||||
enum transformType
|
||||
{
|
||||
UNKNOWN, // unspecified; automatic ordering
|
||||
ROTATIONAL, // rotation along coordinate axis
|
||||
TRANSLATIONAL, // translation
|
||||
NOORDERING // unspecified, no automatic ordering
|
||||
};
|
||||
static const NamedEnum<transformType, 4> transformTypeNames;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- offset (distance) vector from one side of the couple to the other
|
||||
@ -82,6 +96,8 @@ protected:
|
||||
//- Calculate the transformation tensors
|
||||
// smallDist : matching distance per face
|
||||
// absTol : absolute error in normal
|
||||
// if transformType = unknown it first tries rotational, then
|
||||
// translational transform
|
||||
void calcTransformTensors
|
||||
(
|
||||
const vectorField& Cf,
|
||||
@ -89,7 +105,8 @@ protected:
|
||||
const vectorField& nf,
|
||||
const vectorField& nr,
|
||||
const scalarField& smallDist,
|
||||
const scalar absTol = matchTol
|
||||
const scalar absTol = matchTol,
|
||||
const transformType = UNKNOWN
|
||||
) const;
|
||||
|
||||
//- Initialise the calculation of the patch geometry
|
||||
|
||||
@ -44,24 +44,8 @@ namespace Foam
|
||||
|
||||
addToRunTimeSelectionTable(polyPatch, cyclicPolyPatch, word);
|
||||
addToRunTimeSelectionTable(polyPatch, cyclicPolyPatch, dictionary);
|
||||
|
||||
template<>
|
||||
const char* Foam::NamedEnum
|
||||
<
|
||||
Foam::cyclicPolyPatch::transformType,
|
||||
4
|
||||
>::names[] =
|
||||
{
|
||||
"unknown",
|
||||
"rotational",
|
||||
"translational",
|
||||
"noOrdering"
|
||||
};
|
||||
}
|
||||
|
||||
const Foam::NamedEnum<Foam::cyclicPolyPatch::transformType, 4>
|
||||
Foam::cyclicPolyPatch::transformTypeNames;
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -271,7 +255,9 @@ void Foam::cyclicPolyPatch::calcTransforms
|
||||
static_cast<const pointField&>(half1Ctrs),
|
||||
half0Normals,
|
||||
half1Normals,
|
||||
half0Tols
|
||||
half0Tols,
|
||||
matchTol,
|
||||
transform_
|
||||
);
|
||||
|
||||
if (transform_ == ROTATIONAL && !parallel() && forwardT().size() > 1)
|
||||
|
||||
@ -64,20 +64,6 @@ class cyclicPolyPatch
|
||||
:
|
||||
public coupledPolyPatch
|
||||
{
|
||||
public:
|
||||
|
||||
enum transformType
|
||||
{
|
||||
UNKNOWN, // unspecified; automatic ordering
|
||||
ROTATIONAL, // rotation along coordinate axis
|
||||
TRANSLATIONAL, // translation
|
||||
NOORDERING // unspecified, no automatic ordering
|
||||
};
|
||||
static const NamedEnum<transformType, 4> transformTypeNames;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Private data
|
||||
|
||||
//- Name of other half
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -709,16 +709,17 @@ Foam::directMappedPatchBase::directMappedPatchBase
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalErrorIn
|
||||
FatalIOErrorIn
|
||||
(
|
||||
"directMappedPatchBase::directMappedPatchBase\n"
|
||||
"(\n"
|
||||
" const polyPatch& pp,\n"
|
||||
" const dictionary& dict\n"
|
||||
")\n"
|
||||
")\n",
|
||||
dict
|
||||
) << "Please supply the offsetMode as one of "
|
||||
<< NamedEnum<offsetMode, 3>::words()
|
||||
<< exit(FatalError);
|
||||
<< exit(FatalIOError);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -81,17 +81,18 @@ Foam::radiationCoupledBase::radiationCoupledBase
|
||||
{
|
||||
if (!isA<directMappedPatchBase>(patch_.patch()))
|
||||
{
|
||||
FatalErrorIn
|
||||
FatalIOErrorIn
|
||||
(
|
||||
"radiationCoupledBase::radiationCoupledBase\n"
|
||||
"(\n"
|
||||
" const fvPatch& p,\n"
|
||||
" const dictionary& dict\n"
|
||||
")\n"
|
||||
")\n",
|
||||
dict
|
||||
) << "\n patch type '" << patch_.type()
|
||||
<< "' not type '" << directMappedPatchBase::typeName << "'"
|
||||
<< "\n for patch " << patch_.name()
|
||||
<< exit(FatalError);
|
||||
<< exit(FatalIOError);
|
||||
}
|
||||
|
||||
emissivity_ = scalarField(patch_.size(), 0.0);
|
||||
@ -102,16 +103,17 @@ Foam::radiationCoupledBase::radiationCoupledBase
|
||||
{
|
||||
if(!dict.found("emissivity"))
|
||||
{
|
||||
FatalErrorIn
|
||||
FatalIOErrorIn
|
||||
(
|
||||
"radiationCoupledBase::radiationCoupledBase\n"
|
||||
"(\n"
|
||||
" const fvPatch& p,\n"
|
||||
" const dictionary& dict\n"
|
||||
")\n"
|
||||
")\n",
|
||||
dict
|
||||
) << "\n emissivity key does not exist for patch "
|
||||
<< patch_.name()
|
||||
<< exit(FatalError);
|
||||
<< exit(FatalIOError);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user