Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 47517f2ebb | |||
| fa12851880 | |||
| 76a8284120 | |||
| eb0ce5d792 | |||
| fa2ea1098a | |||
| a9f850781a | |||
| fdfb5b1825 | |||
| f92a7e7854 | |||
| e29811f5df | |||
| d93375f714 | |||
| 6b3f9c0b97 | |||
| 0d4d30aa29 | |||
| 039d77aae4 | |||
| bdc14dcd3d | |||
| 96e04780bf | |||
| 6257b17a4c |
17
bin/paraFoam
17
bin/paraFoam
@ -3,7 +3,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration | Website: https://openfoam.org
|
||||
# \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
# \\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -61,19 +61,10 @@ error() {
|
||||
}
|
||||
|
||||
pvExec () {
|
||||
paraview "$@" 2> /dev/null && return 0
|
||||
_opt=""
|
||||
[ "$ParaView_GL" = mesa ] && _opt="--mesa"
|
||||
|
||||
pvFallback
|
||||
paraview --mesa "$@"
|
||||
}
|
||||
|
||||
pvFallback () {
|
||||
cat <<EOF
|
||||
**********************************************************
|
||||
ParaView failed to open using available graphics hardware.
|
||||
Trying fallback to software rendering using MESA.
|
||||
**********************************************************
|
||||
EOF
|
||||
paraview $_opt "$@"
|
||||
}
|
||||
|
||||
noPVReader () {
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration | Website: https://openfoam.org
|
||||
# \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
# \\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -63,6 +63,8 @@ setenv ParaView_VERSION 5.4.0
|
||||
#setenv ParaView_VERSION 5.5.0
|
||||
setenv ParaView_MAJOR detect
|
||||
|
||||
#setenv ParaView_GL=system
|
||||
setenv ParaView_GL=mesa
|
||||
|
||||
# Evaluate command-line parameters for ParaView
|
||||
while ( $#argv > 0 )
|
||||
@ -127,6 +129,7 @@ if ( -r $ParaView_DIR || -r $paraviewInstDir ) then
|
||||
setenv PYTHONPATH ${paraviewPython}:$ParaView_LIB_DIR
|
||||
endif
|
||||
endif
|
||||
if ("$ParaView_GL" == mesa) alias paraview 'paraview --mesa'
|
||||
else
|
||||
unsetenv PV_PLUGIN_PATH
|
||||
endif
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration | Website: https://openfoam.org
|
||||
# \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
# \\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -69,6 +69,8 @@ export ParaView_VERSION=5.4.0
|
||||
#export ParaView_VERSION=5.5.0
|
||||
export ParaView_MAJOR=detect
|
||||
|
||||
#export ParaView_GL=system
|
||||
export ParaView_GL=mesa
|
||||
|
||||
# Evaluate command-line parameters for ParaView
|
||||
_foamParaviewEval()
|
||||
@ -144,6 +146,8 @@ then
|
||||
export PYTHONPATH=$paraviewPython:$ParaView_LIB_DIR
|
||||
fi
|
||||
fi
|
||||
|
||||
[ "$ParaView_GL" = mesa ] && alias paraview="paraview --mesa"
|
||||
else
|
||||
unset PV_PLUGIN_PATH
|
||||
fi
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration | Website: https://openfoam.org
|
||||
# \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
# \\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
@ -37,7 +37,7 @@
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
export SCOTCH_VERSION=scotch_6.0.3
|
||||
export SCOTCH_VERSION=scotch_6.0.6
|
||||
export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$SCOTCH_VERSION
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -45,7 +45,7 @@ Foam::data::data(const objectRegistry& obr)
|
||||
IOobject::NO_WRITE
|
||||
)
|
||||
),
|
||||
prevTimeIndex_(0)
|
||||
prevTimeIndex_(-1)
|
||||
{
|
||||
set("solverPerformance", dictionary());
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2015-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2015-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -40,10 +40,15 @@ void Foam::data::setSolverPerformance
|
||||
|
||||
List<SolverPerformance<Type>> perfs;
|
||||
|
||||
if (prevTimeIndex_ != this->time().timeIndex())
|
||||
const label timeIndex =
|
||||
this->time().subCycling()
|
||||
? this->time().prevTimeState().timeIndex()
|
||||
: this->time().timeIndex();
|
||||
|
||||
if (prevTimeIndex_ != timeIndex)
|
||||
{
|
||||
// Reset solver performance between iterations
|
||||
prevTimeIndex_ = this->time().timeIndex();
|
||||
prevTimeIndex_ = timeIndex;
|
||||
dict.clear();
|
||||
}
|
||||
else
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2012-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2012-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -29,6 +29,7 @@ License
|
||||
#include "stringIOList.H"
|
||||
#include "cellModeller.H"
|
||||
#include "vectorIOField.H"
|
||||
#include "stringOps.H"
|
||||
|
||||
/* * * * * * * * * * * * * * * Static Member Data * * * * * * * * * * * * * */
|
||||
|
||||
@ -907,6 +908,19 @@ void Foam::vtkUnstructuredReader::read(ISstream& inFile)
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (tag == "METADATA")
|
||||
{
|
||||
// Read rest of the line
|
||||
string line;
|
||||
inFile.getLine(line);
|
||||
|
||||
// Skip until an empty line is found
|
||||
inFile.getLine(line);
|
||||
while (!stringOps::trim(line).empty())
|
||||
{
|
||||
inFile.getLine(line);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalIOErrorInFunction(inFile)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2018-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -60,7 +60,6 @@ public:
|
||||
wordRe name;
|
||||
scalar absTol;
|
||||
scalar relTol;
|
||||
label solveIndex;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2018-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -96,7 +96,6 @@ bool Foam::singleRegionCorrectorConvergenceControl::readCorrResidualControls()
|
||||
rd.name = fName.c_str();
|
||||
rd.absTol = readScalar(fieldDict.lookup("tolerance"));
|
||||
rd.relTol = readScalar(fieldDict.lookup("relTol"));
|
||||
rd.solveIndex = 0;
|
||||
data.append(rd);
|
||||
}
|
||||
else
|
||||
@ -177,11 +176,11 @@ corrCriteriaSatisfied() const
|
||||
const dictionary& solverDict = mesh_.solverPerformanceDict();
|
||||
forAllConstIter(dictionary, solverDict, iter)
|
||||
{
|
||||
const word& variableName = iter().keyword();
|
||||
const word& fieldName = iter().keyword();
|
||||
const label fieldi =
|
||||
convergenceControl::residualControlIndex
|
||||
(
|
||||
variableName,
|
||||
fieldName,
|
||||
corrResidualControl_
|
||||
);
|
||||
if (fieldi != -1)
|
||||
@ -190,8 +189,8 @@ corrCriteriaSatisfied() const
|
||||
convergenceControl::getInitialResiduals
|
||||
(
|
||||
mesh_,
|
||||
variableName,
|
||||
corrResidualControl_[fieldi].solveIndex,
|
||||
fieldName,
|
||||
solveIndex_.found(fieldName) ? solveIndex_[fieldName] : 0,
|
||||
iter().stream(),
|
||||
firstResidual,
|
||||
residual
|
||||
@ -209,7 +208,7 @@ corrCriteriaSatisfied() const
|
||||
|
||||
if (control_.debug)
|
||||
{
|
||||
Info<< control_.algorithmSpace() << " " << variableName
|
||||
Info<< control_.algorithmSpace() << " " << fieldName
|
||||
<< ": tolerance " << residual << " ("
|
||||
<< corrResidualControl_[fieldi].absTol << ")"
|
||||
<< ", relTol " << relativeResidual << " ("
|
||||
@ -225,10 +224,7 @@ corrCriteriaSatisfied() const
|
||||
|
||||
void Foam::singleRegionCorrectorConvergenceControl::resetCorrSolveIndex()
|
||||
{
|
||||
forAll(corrResidualControl_, i)
|
||||
{
|
||||
corrResidualControl_[i].solveIndex = 0;
|
||||
}
|
||||
solveIndex_.clear();
|
||||
}
|
||||
|
||||
|
||||
@ -237,23 +233,14 @@ void Foam::singleRegionCorrectorConvergenceControl::updateCorrSolveIndex()
|
||||
const dictionary& solverDict = mesh_.solverPerformanceDict();
|
||||
forAllConstIter(dictionary, solverDict, iter)
|
||||
{
|
||||
const word& variableName = iter().keyword();
|
||||
const label fieldi =
|
||||
convergenceControl::residualControlIndex
|
||||
(
|
||||
variableName,
|
||||
corrResidualControl_
|
||||
);
|
||||
if (fieldi != -1)
|
||||
{
|
||||
getNSolves
|
||||
(
|
||||
mesh_,
|
||||
variableName,
|
||||
iter().stream(),
|
||||
corrResidualControl_[fieldi].solveIndex
|
||||
);
|
||||
}
|
||||
const word& fieldName = iter().keyword();
|
||||
getNSolves
|
||||
(
|
||||
mesh_,
|
||||
fieldName,
|
||||
iter().stream(),
|
||||
solveIndex_(fieldName)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2018-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -62,6 +62,11 @@ protected:
|
||||
//- List of residual data per field
|
||||
List<corrResidualData> corrResidualControl_;
|
||||
|
||||
//- The index of the solution at the start of the corrector loop, for
|
||||
// each field. If the field name is not in the table then the index is
|
||||
// assumed to be zero; i.e, the first solution.
|
||||
HashTable<label> solveIndex_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -131,13 +131,39 @@ void Foam::freestreamPressureFvPatchScalarField::updateCoeffs()
|
||||
UName_
|
||||
);
|
||||
|
||||
const Field<scalar> magUp(mag(Up));
|
||||
|
||||
const Field<vector>& nf = patch().nf();
|
||||
|
||||
Field<scalar>& vf = valueFraction();
|
||||
|
||||
if (supersonic_)
|
||||
{
|
||||
valueFraction() = 0.5 - 0.5*(Up & patch().nf())/mag(Up);
|
||||
forAll(vf, i)
|
||||
{
|
||||
if (magUp[i] > vSmall)
|
||||
{
|
||||
vf[i] = 0.5 - 0.5*(Up[i] & nf[i])/magUp[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
vf[i] = 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
valueFraction() = 0.5 + 0.5*(Up & patch().nf())/mag(Up);
|
||||
forAll(vf, i)
|
||||
{
|
||||
if (magUp[i] > vSmall)
|
||||
{
|
||||
vf[i] = 0.5 + 0.5*(Up[i] & nf[i])/magUp[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
vf[i] = 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mixedFvPatchField<scalar>::updateCoeffs();
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2018-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -107,8 +107,23 @@ void Foam::freestreamVelocityFvPatchVectorField::updateCoeffs()
|
||||
}
|
||||
|
||||
const Field<vector>& Up = *this;
|
||||
const Field<scalar> magUp(mag(Up));
|
||||
|
||||
valueFraction() = 0.5 - 0.5*(Up & patch().nf())/mag(Up);
|
||||
const Field<vector>& nf = patch().nf();
|
||||
|
||||
Field<scalar>& vf = valueFraction();
|
||||
|
||||
forAll(vf, i)
|
||||
{
|
||||
if (magUp[i] > vSmall)
|
||||
{
|
||||
vf[i] = 0.5 - 0.5*(Up[i] & nf[i])/magUp[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
vf[i] = 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
mixedFvPatchField<vector>::updateCoeffs();
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -65,7 +65,7 @@ swirlFlowRateInletVelocityFvPatchVectorField
|
||||
dict.lookupOrDefault
|
||||
(
|
||||
"origin",
|
||||
patch().size()
|
||||
returnReduce(patch().size(), sumOp<label>())
|
||||
? gSum(patch().Cf()*patch().magSf())/gSum(patch().magSf())
|
||||
: Zero
|
||||
)
|
||||
@ -75,7 +75,7 @@ swirlFlowRateInletVelocityFvPatchVectorField
|
||||
dict.lookupOrDefault
|
||||
(
|
||||
"axis",
|
||||
patch().size()
|
||||
returnReduce(patch().size(), sumOp<label>())
|
||||
? -gSum(patch().Sf())/gSum(patch().magSf())
|
||||
: Zero
|
||||
)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -564,6 +564,16 @@ public:
|
||||
trackingData& td
|
||||
);
|
||||
|
||||
//- As above, but does not change the master patch. Needed in order for
|
||||
// ACMI to be able to delegate a hit to the non-overlap patch.
|
||||
template<class TrackCloudType>
|
||||
void hitFaceNoChangeToMasterPatch
|
||||
(
|
||||
const vector& displacement,
|
||||
TrackCloudType& cloud,
|
||||
trackingData& td
|
||||
);
|
||||
|
||||
//- Convenience function. Cobines trackToFace and hitFace
|
||||
template<class TrackCloudType>
|
||||
void trackToAndHitFace
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -108,6 +108,33 @@ void Foam::particle::hitFace
|
||||
trackingData& td
|
||||
)
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info << "Particle " << origId() << nl << FUNCTION_NAME << nl << endl;
|
||||
}
|
||||
|
||||
if (onBoundaryFace())
|
||||
{
|
||||
changeToMasterPatch();
|
||||
}
|
||||
|
||||
hitFaceNoChangeToMasterPatch(direction, cloud, td);
|
||||
}
|
||||
|
||||
|
||||
template<class TrackCloudType>
|
||||
void Foam::particle::hitFaceNoChangeToMasterPatch
|
||||
(
|
||||
const vector& direction,
|
||||
TrackCloudType& cloud,
|
||||
trackingData& td
|
||||
)
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
Info << "Particle " << origId() << nl << FUNCTION_NAME << nl << endl;
|
||||
}
|
||||
|
||||
typename TrackCloudType::particleType& p =
|
||||
static_cast<typename TrackCloudType::particleType&>(*this);
|
||||
typename TrackCloudType::particleType::trackingData& ttd =
|
||||
@ -123,8 +150,6 @@ void Foam::particle::hitFace
|
||||
}
|
||||
else if (onBoundaryFace())
|
||||
{
|
||||
changeToMasterPatch();
|
||||
|
||||
if (!p.hitPatch(cloud, ttd))
|
||||
{
|
||||
const polyPatch& patch = mesh_.boundaryMesh()[p.patch()];
|
||||
@ -392,7 +417,7 @@ void Foam::particle::hitCyclicACMIPatch
|
||||
// Move to the face associated with the non-overlap patch and redo the
|
||||
// face interaction.
|
||||
tetFacei_ = facei_ = cpp.nonOverlapPatch().start() + localFacei;
|
||||
hitFace(direction, cloud, td);
|
||||
hitFaceNoChangeToMasterPatch(direction, cloud, td);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -56,9 +56,7 @@ void Foam::blockMesh::calcMergeInfo()
|
||||
}
|
||||
|
||||
// set unused to -1
|
||||
mergeList_.setSize(nPoints_);
|
||||
mergeList_ = -1;
|
||||
|
||||
mergeList_.setSize(nPoints_, -1);
|
||||
|
||||
const pointField& blockPoints = topology().points();
|
||||
const cellList& blockCells = topology().cells();
|
||||
@ -113,8 +111,11 @@ void Foam::blockMesh::calcMergeInfo()
|
||||
// Collated points detected by initially taking a constant factor of
|
||||
// the size of the block.
|
||||
|
||||
boundBox bb(blockCells[blockPlabel].points(blockFaces, blockPoints));
|
||||
const scalar mergeSqrDist = magSqr(10*small*bb.span());
|
||||
const boundBox bb
|
||||
(
|
||||
blockCells[blockPlabel].points(blockFaces, blockPoints)
|
||||
);
|
||||
const scalar mergeSqrDist = magSqr(50*small*bb.span());
|
||||
|
||||
// This is an N^2 algorithm
|
||||
|
||||
@ -548,35 +549,29 @@ void Foam::blockMesh::calcMergeInfo()
|
||||
}
|
||||
|
||||
|
||||
// Sort merge list to return new point label (in new shorter list)
|
||||
// given old point label
|
||||
label newPointLabel = 0;
|
||||
// Sort merge list and count number of unique points
|
||||
label nUniqPoints = 0;
|
||||
|
||||
forAll(mergeList_, pointLabel)
|
||||
forAll(mergeList_, pointi)
|
||||
{
|
||||
if (mergeList_[pointLabel] > pointLabel)
|
||||
if (mergeList_[pointi] > pointi)
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Merge list contains point index out of range"
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
if
|
||||
(
|
||||
mergeList_[pointLabel] == -1
|
||||
|| mergeList_[pointLabel] == pointLabel
|
||||
)
|
||||
if (mergeList_[pointi] == -1 || mergeList_[pointi] == pointi)
|
||||
{
|
||||
mergeList_[pointLabel] = newPointLabel;
|
||||
newPointLabel++;
|
||||
mergeList_[pointi] = nUniqPoints++;
|
||||
}
|
||||
else
|
||||
{
|
||||
mergeList_[pointLabel] = mergeList_[mergeList_[pointLabel]];
|
||||
mergeList_[pointi] = mergeList_[mergeList_[pointi]];
|
||||
}
|
||||
}
|
||||
|
||||
nPoints_ = newPointLabel;
|
||||
nPoints_ = nUniqPoints;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -56,6 +56,7 @@ SourceFiles
|
||||
#include "globalMeshData.H"
|
||||
#include "globalIndex.H"
|
||||
#include "uint.H"
|
||||
#include "PstreamGlobals.H"
|
||||
|
||||
#include "zoltan.h"
|
||||
#include <mpi.h>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -83,7 +83,7 @@ Foam::N2::N2()
|
||||
2873563218390.8,
|
||||
-165274505604341.0
|
||||
),
|
||||
mu_(32.165, 496.9, 3.9069, -1.08e-21, 10.0),
|
||||
mu_(-32.165, 496.9, 3.9069, -1.08e-21, 10.0),
|
||||
mug_(7.632e-07, 0.58823, 67.75, 0.0),
|
||||
kappa_(0.7259, -0.016728, 0.00016215, -5.7605e-07, 0.0, 0.0),
|
||||
kappag_(0.000351, 0.7652, 25.767, 0.0),
|
||||
|
||||
@ -33,7 +33,8 @@ EulerImplicitCoeffs
|
||||
odeCoeffs
|
||||
{
|
||||
solver seulex;
|
||||
eps 0.05;
|
||||
absTol 1e-8;
|
||||
relTol 1e-1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -17,6 +17,8 @@ reactions
|
||||
A 7e+06;
|
||||
beta 0;
|
||||
Ta 10063.8;
|
||||
Thigh 2500;
|
||||
Tlow 300;
|
||||
}
|
||||
hydrogenReaction
|
||||
{
|
||||
@ -25,6 +27,7 @@ reactions
|
||||
A 4.74342e+12;
|
||||
beta 0;
|
||||
Ta 10063.8;
|
||||
Thigh 2500;
|
||||
Tlow 300;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,40 +0,0 @@
|
||||
|
||||
36
|
||||
(
|
||||
1069
|
||||
1071
|
||||
1074
|
||||
1253
|
||||
1256
|
||||
1259
|
||||
1262
|
||||
1264
|
||||
1266
|
||||
1269
|
||||
1271
|
||||
1273
|
||||
1276
|
||||
1463
|
||||
1466
|
||||
1468
|
||||
1471
|
||||
1474
|
||||
1477
|
||||
1480
|
||||
1482
|
||||
1485
|
||||
1487
|
||||
1490
|
||||
1492
|
||||
1494
|
||||
1497
|
||||
1500
|
||||
1503
|
||||
1506
|
||||
1508
|
||||
1512
|
||||
1514
|
||||
1517
|
||||
1519
|
||||
1522
|
||||
)
|
||||
Reference in New Issue
Block a user