Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev

This commit is contained in:
mattijs
2012-06-26 17:50:36 +01:00
9 changed files with 85 additions and 122 deletions

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -118,7 +118,7 @@ public:
<
interfaceThetaProps,
multiphaseSystem::interfacePair,
multiphaseSystem::interfacePair::hash
multiphaseSystem::interfacePair::symmHash
> thetaPropsTable;

View File

@ -92,17 +92,22 @@ void Foam::multiphaseSystem::solveAlphas()
if (&phase2 == &phase1) continue;
surfaceScalarField phic
surfaceScalarField phir(phase1.phi() - phase2.phi());
scalarCoeffSymmTable::const_iterator cAlpha
(
(mag(phi_) + mag(phase1.phi() - phase2.phi()))/mesh_.magSf()
cAlphas_.find(interfacePair(phase1, phase2))
);
surfaceScalarField phir
(
(phase1.phi() - phase2.phi())
+ min(cAlpha(phase1, phase2)*phic, max(phic))
*nHatf(phase1, phase2)
);
if (cAlpha != cAlphas_.end())
{
surfaceScalarField phic
(
(mag(phi_) + mag(phase1.phi() - phase2.phi()))/mesh_.magSf()
);
phir += min(cAlpha()*phic, max(phic))*nHatf(phase1, phase2);
}
word phirScheme
(
@ -189,67 +194,6 @@ void Foam::multiphaseSystem::solveAlphas()
}
Foam::scalar Foam::multiphaseSystem::cAlpha
(
const phaseModel& phase1,
const phaseModel& phase2
) const
{
scalarCoeffTable::const_iterator cAlpha
(
cAlphas_.find(interfacePair(phase1, phase2))
);
if (cAlpha == cAlphas_.end())
{
FatalErrorIn
(
"multiphaseSystem::cAlpha"
"(const phaseModel& phase1, const phaseModel& phase2) const"
) << "Cannot find interface " << interfacePair(phase1, phase2)
<< " in list of cAlpha values"
<< exit(FatalError);
}
return cAlpha();
}
Foam::dimensionedScalar Foam::multiphaseSystem::Cvm
(
const phaseModel& phase1,
const phaseModel& phase2
) const
{
scalarCoeffTable::const_iterator Cvm
(
Cvms_.find(interfacePair(phase1, phase2))
);
if (Cvm != Cvms_.end())
{
return Cvm()*phase2.rho();
}
Cvm = Cvms_.find(interfacePair(phase2, phase1));
if (Cvm != Cvms_.end())
{
return Cvm()*phase1.rho();
}
FatalErrorIn
(
"multiphaseSystem::Cvm"
"(const phaseModel& phase1, const phaseModel& phase2) const"
) << "Cannot find interface " << interfacePair(phase1, phase2)
<< " in list of Cvm values"
<< exit(FatalError);
return Cvm()*phase2.rho();
}
Foam::tmp<Foam::surfaceVectorField> Foam::multiphaseSystem::nHatfv
(
const volScalarField& alpha1,
@ -545,7 +489,24 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseSystem::Cvm
if (&phase2 != &phase)
{
tCvm() += Cvm(phase, phase2)*phase2;
scalarCoeffTable::const_iterator Cvm
(
Cvms_.find(interfacePair(phase, phase2))
);
if (Cvm != Cvms_.end())
{
tCvm() += Cvm()*phase2.rho()*phase2;
}
else
{
Cvm = Cvms_.find(interfacePair(phase2, phase));
if (Cvm != Cvms_.end())
{
tCvm() += Cvm()*phase.rho()*phase2;
}
}
}
}
@ -584,11 +545,28 @@ Foam::tmp<Foam::volVectorField> Foam::multiphaseSystem::Svm
if (&phase2 != &phase)
{
tSvm() += Cvm(phase, phase2)*phase2*phase2.DDtU();
scalarCoeffTable::const_iterator Cvm
(
Cvms_.find(interfacePair(phase, phase2))
);
if (Cvm != Cvms_.end())
{
tSvm() += Cvm()*phase2.rho()*phase2*phase2.DDtU();
}
else
{
Cvm = Cvms_.find(interfacePair(phase2, phase));
if (Cvm != Cvms_.end())
{
tSvm() += Cvm()*phase.rho()*phase2*phase2.DDtU();
}
}
}
}
// Remove lift at fixed-flux boundaries
// Remove virtual mass at fixed-flux boundaries
forAll(phase.phi().boundaryField(), patchi)
{
if
@ -737,7 +715,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseSystem::surfaceTension
if (&phase2 != &phase1)
{
scalarCoeffTable::const_iterator sigma
scalarCoeffSymmTable::const_iterator sigma
(
sigmas_.find(interfacePair(phase1, phase2))
);

View File

@ -72,6 +72,21 @@ public:
{
public:
class symmHash
:
public Hash<interfacePair>
{
public:
symmHash()
{}
label operator()(const interfacePair& key) const
{
return word::hash()(key.first()) + word::hash()(key.second());
}
};
class hash
:
public Hash<interfacePair>
@ -83,7 +98,7 @@ public:
label operator()(const interfacePair& key) const
{
return word::hash()(key.first()) + word::hash()(key.second());
return word::hash()(key.first(), word::hash()(key.second()));
}
};
@ -130,10 +145,10 @@ public:
};
typedef HashPtrTable<dragModel, interfacePair, interfacePair::hash>
typedef HashPtrTable<dragModel, interfacePair, interfacePair::symmHash>
dragModelTable;
typedef HashPtrTable<volScalarField, interfacePair, interfacePair::hash>
typedef HashPtrTable<volScalarField, interfacePair, interfacePair::symmHash>
dragCoeffFields;
@ -168,17 +183,20 @@ private:
volScalarField alphas_;
typedef HashTable<scalar, interfacePair, interfacePair::symmHash>
scalarCoeffSymmTable;
typedef HashTable<scalar, interfacePair, interfacePair::hash>
scalarCoeffTable;
scalarCoeffTable sigmas_;
scalarCoeffSymmTable sigmas_;
dimensionSet dimSigma_;
scalarCoeffTable cAlphas_;
scalarCoeffSymmTable cAlphas_;
scalarCoeffTable Cvms_;
typedef HashTable<dictionary, interfacePair, interfacePair::hash>
typedef HashTable<dictionary, interfacePair, interfacePair::symmHash>
interfaceDictTable;
dragModelTable dragModels_;
@ -196,18 +214,6 @@ private:
void solveAlphas();
scalar cAlpha
(
const phaseModel& phase1,
const phaseModel& phase2
) const;
dimensionedScalar Cvm
(
const phaseModel& phase1,
const phaseModel& phase2
) const;
tmp<surfaceVectorField> nHatfv
(
const volScalarField& alpha1,

View File

@ -19,6 +19,7 @@ LINK_DIRECTORIES(
INCLUDE_DIRECTORIES(
$ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude
$ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude
$ENV{WM_PROJECT_DIR}/src/finiteVolume/lnInclude
${PROJECT_SOURCE_DIR}/../vtkPV3Foam
)

View File

@ -19,6 +19,7 @@ LINK_DIRECTORIES(
INCLUDE_DIRECTORIES(
$ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude
$ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude
$ENV{WM_PROJECT_DIR}/src/meshing/blockMesh/lnInclude
${PROJECT_SOURCE_DIR}/../vtkPV3blockMesh
)