Adding check for density < VSMALL to avoid FPE.

Modifying nanoNozzle tutorial to shorten the run and increase the density.
This commit is contained in:
graham
2009-07-07 10:50:37 +01:00
parent e478718282
commit 9fb1dac1cc
3 changed files with 27 additions and 8 deletions

View File

@ -507,7 +507,7 @@ void Foam::moleculeCloud::initialiseMolecules
else else
{ {
const dictionary& zoneDict = const dictionary& zoneDict =
mdInitialiseDict.subDict(zone.name()); mdInitialiseDict.subDict(zone.name());
const scalar temperature const scalar temperature
( (
@ -530,7 +530,7 @@ void Foam::moleculeCloud::initialiseMolecules
{ {
FatalErrorIn("Foam::moleculeCloud::initialiseMolecules") FatalErrorIn("Foam::moleculeCloud::initialiseMolecules")
<< "latticeIds and latticePositions must be the same " << "latticeIds and latticePositions must be the same "
<< " size." << nl << " size." << nl
<< abort(FatalError); << abort(FatalError);
} }
@ -548,6 +548,15 @@ void Foam::moleculeCloud::initialiseMolecules
zoneDict.lookup("numberDensity") zoneDict.lookup("numberDensity")
); );
if (numberDensity < VSMALL)
{
WarningIn("moleculeCloud::initialiseMolecules")
<< "numberDensity too small, not filling zone "
<< zone.name() << endl;
continue;
}
latticeCellScale = pow latticeCellScale = pow
( (
latticeIds.size()/(det(latticeCellShape)*numberDensity), latticeIds.size()/(det(latticeCellShape)*numberDensity),
@ -572,9 +581,19 @@ void Foam::moleculeCloud::initialiseMolecules
zoneDict.lookup("massDensity") zoneDict.lookup("massDensity")
); );
if (massDensity < VSMALL)
{
WarningIn("moleculeCloud::initialiseMolecules")
<< "massDensity too small, not filling zone "
<< zone.name() << endl;
continue;
}
latticeCellScale = pow latticeCellScale = pow
( (
unitCellMass /(det(latticeCellShape)*massDensity), unitCellMass/(det(latticeCellShape)*massDensity),
(1.0/3.0) (1.0/3.0)
); );
} }
@ -906,7 +925,7 @@ void Foam::moleculeCloud::initialiseMolecules
) )
{ {
WarningIn("Foam::moleculeCloud::initialiseMolecules()") WarningIn("Foam::moleculeCloud::initialiseMolecules()")
<< "A whole layer of unit cells was placed " << "A whole layer of unit cells was placed "
<< "outside the bounds of the mesh, but no " << "outside the bounds of the mesh, but no "
<< "molecules have been placed in zone '" << "molecules have been placed in zone '"
<< zone.name() << zone.name()

View File

@ -20,7 +20,7 @@ startTime 0;
stopAt endTime; stopAt endTime;
endTime 1e-10; endTime 5e-12;
deltaT 1e-15; deltaT 1e-15;

View File

@ -27,7 +27,7 @@ FoamFile
sectionA sectionA
{ {
massDensity 980; massDensity 1004;
temperature 298; temperature 298;
bulkVelocity (0.0 0.0 0.0); bulkVelocity (0.0 0.0 0.0);
latticeIds latticeIds
@ -46,7 +46,7 @@ sectionA
sectionB sectionB
{ {
massDensity 980; massDensity 1004;
temperature 298; temperature 298;
bulkVelocity (0.0 0.0 0.0); bulkVelocity (0.0 0.0 0.0);
latticeIds latticeIds
@ -65,7 +65,7 @@ sectionB
sectionC sectionC
{ {
massDensity 980; massDensity 1004;
temperature 298; temperature 298;
bulkVelocity (0.0 0.0 0.0); bulkVelocity (0.0 0.0 0.0);
latticeIds latticeIds