Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev

This commit is contained in:
Henry Weller
2018-06-14 20:12:00 +01:00
16 changed files with 153 additions and 80 deletions

View File

@ -121,13 +121,7 @@ forAll(fluidRegions, i)
)
);
dimensionedScalar ghRef
(
mag(gFluid[i].value()) > small
? gFluid[i]
& (cmptMag(gFluid[i].value())/mag(gFluid[i].value()))*hRefFluid[i]
: dimensionedScalar("ghRef", gFluid[i].dimensions()*dimLength, 0)
);
dimensionedScalar ghRef(- mag(gFluid[i])*hRefFluid[i]);
Info<< " Adding to ghFluid\n" << endl;
ghFluid.set

View File

@ -26,7 +26,7 @@ License
#include "twoPhaseMixtureThermo.H"
#include "gradientEnergyFvPatchScalarField.H"
#include "mixedEnergyFvPatchScalarField.H"
#include "collatedFileOperation.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -50,6 +50,12 @@ Foam::twoPhaseMixtureThermo::twoPhaseMixtureThermo
thermo1_(nullptr),
thermo2_(nullptr)
{
// Note: we're writing files to be read in immediately afterwards.
// Avoid any thread-writing problems.
float bufSz =
fileOperations::collatedFileOperation::maxThreadFileBufferSize;
fileOperations::collatedFileOperation::maxThreadFileBufferSize = 0;
{
volScalarField T1
(
@ -80,6 +86,10 @@ Foam::twoPhaseMixtureThermo::twoPhaseMixtureThermo
T2.write();
}
fileOperations::collatedFileOperation::maxThreadFileBufferSize =
bufSz;
thermo1_ = rhoThermo::New(U.mesh(), phase1Name());
thermo2_ = rhoThermo::New(U.mesh(), phase2Name());

View File

@ -24,7 +24,7 @@ License
\*---------------------------------------------------------------------------*/
#include "phasePair.H"
#include "surfaceTensionModel.H"
#include "phaseSystem.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
@ -165,15 +165,7 @@ Foam::tmp<Foam::volScalarField> Foam::phasePair::EoH2() const
Foam::tmp<Foam::volScalarField> Foam::phasePair::sigma() const
{
return
phase1().mesh().lookupObject<surfaceTensionModel>
(
IOobject::groupName
(
surfaceTensionModel::typeName,
phasePair::name()
)
).sigma();
return phase1().fluid().sigma(phasePair(phase1(), phase2()));
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -626,6 +626,15 @@ class vtkPVFoam
const wordHashSet&
);
//- Get the list of selected objects
IOobjectList getObjects
(
const wordHashSet& selected,
const fvMesh& mesh,
const fileName& instance,
const fileName& local = ""
);
//- Retrieve the current selections
static wordHashSet getSelected(vtkDataArraySelection*);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -23,37 +23,53 @@ License
\*---------------------------------------------------------------------------*/
#include "vtkPVFoam.H"
// OpenFOAM includes
#include "IOobjectList.H"
#include "vtkPVFoamReader.h"
// VTK includes
#include "vtkDataArraySelection.h"
#include "vtkPolyData.h"
#include "vtkUnstructuredGrid.h"
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
// OpenFOAM includes
#include "IOobjectList.H"
#include "vtkPVFoam.H"
#include "vtkPVFoamReader.h"
#include "vtkPVFoamVolFields.H"
#include "vtkPVFoamPointFields.H"
#include "vtkPVFoamLagrangianFields.H"
void Foam::vtkPVFoam::pruneObjectList
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::IOobjectList Foam::vtkPVFoam::getObjects
(
IOobjectList& objects,
const wordHashSet& selected
const wordHashSet& selected,
const fvMesh& mesh,
const fileName& instance,
const fileName& local
)
{
// hash all the selected field names
// If nothing is selected then return an empty list
if (selected.empty())
{
objects.clear();
return IOobjectList(0);
}
// only keep selected fields
// Create the list of objects at the instance
IOobjectList objects(mesh, instance, local);
// Add any objects from constant that are not already present
IOobjectList objectsConstant(mesh, dbPtr_().constant(), local);
forAllIter(IOobjectList, objectsConstant, iter)
{
if (!objects.found(iter.key()))
{
objects.add
(
*objectsConstant.HashPtrTable<IOobject>::remove(iter)
);
}
}
// Remove everything that is not selected
forAllIter(IOobjectList, objects, iter)
{
if (!selected.found(iter()->name()))
@ -61,6 +77,8 @@ void Foam::vtkPVFoam::pruneObjectList
objects.erase(iter);
}
}
return objects;
}
@ -83,8 +101,15 @@ void Foam::vtkPVFoam::convertVolFields
// Get objects (fields) for this time - only keep selected fields
// the region name is already in the mesh db
IOobjectList objects(mesh, dbPtr_().timeName());
pruneObjectList(objects, selectedFields);
IOobjectList objects
(
getObjects
(
selectedFields,
mesh,
dbPtr_().timeName()
)
);
if (objects.empty())
{
@ -174,8 +199,15 @@ void Foam::vtkPVFoam::convertPointFields
// Get objects (fields) for this time - only keep selected fields
// the region name is already in the mesh db
IOobjectList objects(mesh, dbPtr_().timeName());
pruneObjectList(objects, selectedFields);
IOobjectList objects
(
getObjects
(
selectedFields,
mesh,
dbPtr_().timeName()
)
);
if (objects.empty())
{
@ -267,11 +299,14 @@ void Foam::vtkPVFoam::convertLagrangianFields
// the region name is already in the mesh db
IOobjectList objects
(
mesh,
dbPtr_().timeName(),
cloud::prefix/cloudName
getObjects
(
selectedFields,
mesh,
dbPtr_().timeName(),
cloud::prefix/cloudName
)
);
pruneObjectList(objects, selectedFields);
if (objects.empty())
{