Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
d0cc8729
Commit
d0cc8729
authored
May 20, 2011
by
mattijs
Browse files
Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev
parents
39d597f3
d88d92ed
Changes
30
Hide whitespace changes
Inline
Side-by-side
src/finiteVolume/Make/files
View file @
d0cc8729
...
...
@@ -204,8 +204,8 @@ $(interpolation)/interpolationCellPoint/makeInterpolationCellPoint.C
$(interpolation)/interpolationCellPointFace/makeInterpolationCellPointFace.C
$(interpolation)/interpolationCellPointWallModified/cellPointWeightWallModified/cellPointWeightWallModified.C
$(interpolation)/interpolationCellPointWallModified/makeInterpolationCellPointWallModified.C
$(interpolation)/interpolationPoint/pointMVCWeight.C
$(interpolation)/interpolationPoint/makeInterpolationPoint.C
$(interpolation)/interpolationPoint
MVC
/pointMVCWeight.C
$(interpolation)/interpolationPoint
MVC
/makeInterpolationPoint
MVC
.C
volPointInterpolation = interpolation/volPointInterpolation
$(volPointInterpolation)/volPointInterpolation.C
...
...
src/finiteVolume/interpolation/interpolation/interpolationPoint/interpolationPoint.C
→
src/finiteVolume/interpolation/interpolation/interpolationPoint
MVC
/interpolationPoint
MVC
.C
View file @
d0cc8729
...
...
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 200
4
-201
0
OpenCFD Ltd.
\\ / A nd | Copyright (C) 20
1
0-201
1
OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
...
...
@@ -23,13 +23,13 @@ License
\*---------------------------------------------------------------------------*/
#include
"interpolationPoint.H"
#include
"interpolationPoint
MVC
.H"
#include
"volPointInterpolation.H"
// * * * * * * * * * * * * * * * * Constructor * * * * * * * * * * * * * * * //
template
<
class
Type
>
Foam
::
interpolationPoint
<
Type
>::
interpolationPoint
Foam
::
interpolationPoint
MVC
<
Type
>::
interpolationPoint
MVC
(
const
GeometricField
<
Type
,
fvPatchField
,
volMesh
>&
psi
)
...
...
src/finiteVolume/interpolation/interpolation/interpolationPoint/interpolationPoint.H
→
src/finiteVolume/interpolation/interpolation/interpolationPoint
MVC
/interpolationPoint
MVC
.H
View file @
d0cc8729
...
...
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 200
4
-201
0
OpenCFD Ltd.
\\ / A nd | Copyright (C) 20
1
0-201
1
OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
...
...
@@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::interpolationPoint
Foam::interpolationPoint
MVC
Description
Given cell centre values interpolates to vertices and uses these to
...
...
@@ -30,8 +30,8 @@ Description
\*---------------------------------------------------------------------------*/
#ifndef interpolationPoint_H
#define interpolationPoint_H
#ifndef interpolationPoint
MVC
_H
#define interpolationPoint
MVC
_H
#include
"interpolation.H"
#include
"pointMVCWeight.H"
...
...
@@ -42,11 +42,11 @@ namespace Foam
{
/*---------------------------------------------------------------------------*\
Class interpolationPoint Declaration
Class interpolationPoint
MVC
Declaration
\*---------------------------------------------------------------------------*/
template
<
class
Type
>
class
interpolationPoint
class
interpolationPoint
MVC
:
public
interpolation
<
Type
>
{
...
...
@@ -57,16 +57,17 @@ protected:
//- Interpolated volfield
const
GeometricField
<
Type
,
pointPatchField
,
pointMesh
>
psip_
;
public:
//- Runtime type information
TypeName
(
"point"
);
TypeName
(
"point
MVC
"
);
// Constructors
//- Construct from components
interpolationPoint
interpolationPoint
MVC
(
const
GeometricField
<
Type
,
fvPatchField
,
volMesh
>&
psi
);
...
...
@@ -93,12 +94,12 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include
"interpolationPointI.H"
#include
"interpolationPoint
MVC
I.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository
# include "interpolationPoint.C"
# include "interpolationPoint
MVC
.C"
#endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
...
...
src/finiteVolume/interpolation/interpolation/interpolationPoint/interpolationPointI.H
→
src/finiteVolume/interpolation/interpolation/interpolationPoint
MVC
/interpolationPoint
MVC
I.H
View file @
d0cc8729
...
...
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 200
4
-201
0
OpenCFD Ltd.
\\ / A nd | Copyright (C) 20
1
0-201
1
OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
...
...
@@ -26,7 +26,7 @@ License
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template
<
class
Type
>
inline
Type
Foam
::
interpolationPoint
<
Type
>::
interpolate
inline
Type
Foam
::
interpolationPoint
MVC
<
Type
>::
interpolate
(
const
pointMVCWeight
&
cpw
)
const
...
...
@@ -36,7 +36,7 @@ inline Type Foam::interpolationPoint<Type>::interpolate
template
<
class
Type
>
inline
Type
Foam
::
interpolationPoint
<
Type
>::
interpolate
inline
Type
Foam
::
interpolationPoint
MVC
<
Type
>::
interpolate
(
const
vector
&
position
,
const
label
cellI
,
...
...
src/finiteVolume/interpolation/interpolation/interpolationPoint/makeInterpolationPoint.C
→
src/finiteVolume/interpolation/interpolation/interpolationPoint
MVC
/makeInterpolationPoint
MVC
.C
View file @
d0cc8729
...
...
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 200
4
-201
0
OpenCFD Ltd.
\\ / A nd | Copyright (C) 20
1
0-201
1
OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
...
...
@@ -23,13 +23,13 @@ License
\*---------------------------------------------------------------------------*/
#include
"interpolationPoint.H"
#include
"interpolationPoint
MVC
.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
{
makeInterpolation
(
interpolationPoint
);
makeInterpolation
(
interpolationPoint
MVC
);
}
// ************************************************************************* //
src/finiteVolume/interpolation/interpolation/interpolationPoint/pointMVCWeight.C
→
src/finiteVolume/interpolation/interpolation/interpolationPoint
MVC
/pointMVCWeight.C
View file @
d0cc8729
...
...
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 200
4
-201
0
OpenCFD Ltd.
\\ / A nd | Copyright (C) 20
1
0-201
1
OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
...
...
@@ -56,7 +56,7 @@ void Foam::pointMVCWeight::calcWeights
forAll
(
f
,
j
)
{
label
jPlus1
=
f
.
fcIndex
(
j
);
scalar
l
=
mag
(
u
[
j
]
-
u
[
jPlus1
]);
scalar
l
=
mag
(
u
[
j
]
-
u
[
jPlus1
]);
theta
[
j
]
=
2
.
0
*
Foam
::
asin
(
l
/
2
.
0
);
}
...
...
@@ -68,7 +68,7 @@ void Foam::pointMVCWeight::calcWeights
weights
[
pid
]
=
1
.
0
/
dist
[
pid
]
*
(
Foam
::
tan
(
theta
[
jMin1
]
/
2
.
0
)
+
Foam
::
tan
(
theta
[
j
]
/
2
.
0
));
*
(
Foam
::
tan
(
theta
[
jMin1
]
/
2
.
0
)
+
Foam
::
tan
(
theta
[
j
]
/
2
.
0
));
sumWeight
+=
weights
[
pid
];
}
...
...
@@ -132,11 +132,10 @@ void Foam::pointMVCWeight::calcWeights
//Pout<< " uj:" << u[j] << " ujPlus1:" << u[jPlus1]
// << " temp:" << temp << endl;
scalar
l
=
mag
(
u
[
j
]
-
u
[
jPlus1
]);
scalar
l
=
min
(
mag
(
u
[
j
]
-
u
[
jPlus1
])
,
2
.
0
)
;
scalar
angle
=
2
.
0
*
Foam
::
asin
(
l
/
2
.
0
);
//Pout<< " j:" << j << " l:" << l
// << " angle:" << angle << endl;
//Pout<< " j:" << j << " l:" << l << " angle:" << angle << endl;
v
+=
0
.
5
*
angle
*
temp
;
}
...
...
@@ -145,14 +144,14 @@ void Foam::pointMVCWeight::calcWeights
v
/=
vNorm
;
// Make sure v points towards the polygon
//if (((v&u[0]) < 0) != (mesh.faceOwner()[faceI] != cellIndex_))
//{
// FatalErrorIn("pointMVCWeight::calcWeights(..)")
// << "v:" << v << " u[0]:" << u[0]
// << exit(FatalError);
//}
if
((
v
&
u
[
0
])
<
0
)
//if (((v&u[0]) < 0) != (mesh.faceOwner()[faceI] != cellIndex_))
//{
// FatalErrorIn("pointMVCWeight::calcWeights(..)")
// << "v:" << v << " u[0]:" << u[0]
// << exit(FatalError);
//}
if
((
v
&
u
[
0
])
<
0
)
{
v
=
-
v
;
}
...
...
@@ -165,22 +164,22 @@ void Foam::pointMVCWeight::calcWeights
label
jPlus1
=
f
.
fcIndex
(
j
);
//Pout<< " uj:" << u[j] << " ujPlus1:" << u[jPlus1] << endl;
vector
n0
=
u
[
j
]
^
v
;
vector
n0
=
u
[
j
]
^
v
;
n0
/=
mag
(
n0
);
vector
n1
=
u
[
jPlus1
]
^
v
;
vector
n1
=
u
[
jPlus1
]
^
v
;
n1
/=
mag
(
n1
);
scalar
l
=
mag
(
n0
-
n1
);
scalar
l
=
min
(
mag
(
n0
-
n1
),
2
.
0
);
//Pout<< " l:" << l << endl;
alpha
(
j
)
=
2
.
0
*
Foam
::
asin
(
l
/
2
.
0
);
vector
temp
=
n0
^
n1
;
vector
temp
=
n0
^
n1
;
if
((
temp
&
v
)
<
0
.
0
)
{
alpha
[
j
]
=
-
alpha
[
j
];
}
l
=
mag
(
u
[
j
]
-
v
);
l
=
min
(
mag
(
u
[
j
]
-
v
),
2
.
0
);
//Pout<< " l:" << l << endl;
theta
(
j
)
=
2
.
0
*
Foam
::
asin
(
l
/
2
.
0
);
}
...
...
@@ -211,7 +210,7 @@ void Foam::pointMVCWeight::calcWeights
sum
+=
1
.
0
/
Foam
::
tan
(
theta
[
j
])
*
(
Foam
::
tan
(
alpha
[
j
]
/
2
.
0
)
+
Foam
::
tan
(
alpha
[
jMin1
]
/
2
.
0
));
*
(
Foam
::
tan
(
alpha
[
j
]
/
2
.
0
)
+
Foam
::
tan
(
alpha
[
jMin1
]
/
2
.
0
));
}
// The special case when x lies on the polygon, handle it using 2D mvc.
...
...
@@ -234,7 +233,7 @@ void Foam::pointMVCWeight::calcWeights
/
sum
/
dist
[
pid
]
/
Foam
::
sin
(
theta
[
j
])
*
(
Foam
::
tan
(
alpha
[
j
]
/
2
.
0
)
+
Foam
::
tan
(
alpha
[
jMin1
]
/
2
.
0
));
*
(
Foam
::
tan
(
alpha
[
j
]
/
2
.
0
)
+
Foam
::
tan
(
alpha
[
jMin1
]
/
2
.
0
));
}
}
...
...
src/finiteVolume/interpolation/interpolation/interpolationPoint/pointMVCWeight.H
→
src/finiteVolume/interpolation/interpolation/interpolationPoint
MVC
/pointMVCWeight.H
View file @
d0cc8729
...
...
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 200
4
-201
0
OpenCFD Ltd.
\\ / A nd | Copyright (C) 20
1
0-201
1
OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
...
...
src/finiteVolume/interpolation/interpolation/interpolationPoint/pointMVCWeightI.H
→
src/finiteVolume/interpolation/interpolation/interpolationPoint
MVC
/pointMVCWeightI.H
View file @
d0cc8729
...
...
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 200
4
-201
0
OpenCFD Ltd.
\\ / A nd | Copyright (C) 20
1
0-201
1
OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
...
...
src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C
View file @
d0cc8729
...
...
@@ -89,12 +89,12 @@ Foam::CloudFunctionObjectList<CloudType>::CloudFunctionObjectList
template
<
class
CloudType
>
Foam
::
CloudFunctionObjectList
<
CloudType
>::
CloudFunctionObjectList
(
const
CloudFunctionObjectList
&
ppm
const
CloudFunctionObjectList
&
cfol
)
:
PtrList
<
CloudFunctionObject
<
CloudType
>
>
(
ppm
),
owner_
(
ppm
.
owner_
),
dict_
(
ppm
.
dict_
)
PtrList
<
CloudFunctionObject
<
CloudType
>
>
(
cfol
),
owner_
(
cfol
.
owner_
),
dict_
(
cfol
.
dict_
)
{}
...
...
src/meshTools/indexedOctree/treeDataPrimitivePatch.C
View file @
d0cc8729
...
...
@@ -307,7 +307,7 @@ getVolumeType
forAll
(
eFaces
,
i
)
{
edgeNormal
+=
patch_
.
faceNormal
()[
eFaces
[
i
]];
edgeNormal
+=
patch_
.
faceNormal
s
()[
eFaces
[
i
]];
}
if
(
debug
&
2
)
...
...
src/regionModels/surfaceFilmModels/Make/files
View file @
d0cc8729
...
...
@@ -10,6 +10,13 @@ thermoSingleLayer/thermoSingleLayer.C
submodels/subModelBase.C
KINEMATICMODELS=submodels/kinematic
$(KINEMATICMODELS)/force/force/force.C
$(KINEMATICMODELS)/force/force/forceNew.C
$(KINEMATICMODELS)/force/forceList/forceList.C
$(KINEMATICMODELS)/force/contactAngleForce/contactAngleForce.C
$(KINEMATICMODELS)/force/surfaceShearForce/surfaceShearForce.C
$(KINEMATICMODELS)/force/thermocapillaryForce/thermocapillaryForce.C
$(KINEMATICMODELS)/injectionModel/injectionModel/injectionModel.C
$(KINEMATICMODELS)/injectionModel/injectionModel/injectionModelNew.C
$(KINEMATICMODELS)/injectionModel/injectionModelList/injectionModelList.C
...
...
src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C
View file @
d0cc8729
...
...
@@ -34,6 +34,10 @@ License
#include
"directMappedWallPolyPatch.H"
#include
"mapDistribute.H"
#include
"cachedRandom.H"
#include
"normal.H"
#include
"mathematicalConstants.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
...
...
@@ -61,8 +65,6 @@ bool kinematicSingleLayer::read()
solution
.
lookup
(
"nCorr"
)
>>
nCorr_
;
solution
.
lookup
(
"nNonOrthCorr"
)
>>
nNonOrthCorr_
;
coeffs_
.
lookup
(
"Cf"
)
>>
Cf_
;
return
true
;
}
else
...
...
@@ -76,9 +78,10 @@ void kinematicSingleLayer::correctThermoFields()
{
if
(
thermoModel_
==
tmConstant
)
{
rho_
==
dimensionedScalar
(
coeffs_
.
lookup
(
"rho0"
));
mu_
==
dimensionedScalar
(
coeffs_
.
lookup
(
"mu0"
));
sigma_
==
dimensionedScalar
(
coeffs_
.
lookup
(
"sigma0"
));
const
dictionary
&
constDict
(
coeffs_
.
subDict
(
"constantThermoCoeffs"
));
rho_
==
dimensionedScalar
(
constDict
.
lookup
(
"rho0"
));
mu_
==
dimensionedScalar
(
constDict
.
lookup
(
"mu0"
));
sigma_
==
dimensionedScalar
(
constDict
.
lookup
(
"sigma0"
));
}
else
{
...
...
@@ -273,25 +276,6 @@ void kinematicSingleLayer::updateSurfaceVelocities()
}
tmp
<
fvVectorMatrix
>
kinematicSingleLayer
::
tau
(
volVectorField
&
U
)
const
{
// Calculate shear stress
volScalarField
Cs
(
"Cs"
,
rho_
*
Cf_
*
mag
(
Us_
-
U
));
volScalarField
Cw
(
"Cw"
,
mu_
/
(
0
.
3333
*
(
delta_
+
dimensionedScalar
(
"SMALL"
,
dimLength
,
SMALL
)))
);
Cw
.
min
(
1.0e+06
);
return
(
-
fvm
::
Sp
(
Cs
,
U
)
+
Cs
*
Us_
// surface contribution
-
fvm
::
Sp
(
Cw
,
U
)
+
Cw
*
Uw_
// wall contribution
);
}
tmp
<
Foam
::
fvVectorMatrix
>
kinematicSingleLayer
::
solveMomentum
(
const
volScalarField
&
pu
,
...
...
@@ -312,9 +296,8 @@ tmp<Foam::fvVectorMatrix> kinematicSingleLayer::solveMomentum
+
fvm
::
div
(
phi_
,
U_
)
==
-
USp_
+
tau
(
U_
)
+
fvc
::
grad
(
sigma_
)
-
fvm
::
SuSp
(
rhoSp_
,
U_
)
+
forces_
.
correct
(
U_
)
);
fvVectorMatrix
&
UEqn
=
tUEqn
();
...
...
@@ -459,8 +442,6 @@ kinematicSingleLayer::kinematicSingleLayer
cumulativeContErr_
(
0
.
0
),
Cf_
(
readScalar
(
coeffs
().
lookup
(
"Cf"
))),
rho_
(
IOobject
...
...
@@ -773,6 +754,8 @@ kinematicSingleLayer::kinematicSingleLayer
injection_
(
*
this
,
coeffs_
),
forces_
(
*
this
,
coeffs_
),
addedMassTotal_
(
0
.
0
)
{
if
(
readFields
)
...
...
src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.H
View file @
d0cc8729
...
...
@@ -42,6 +42,7 @@ SourceFiles
#include
"fvMatrices.H"
#include
"injectionModelList.H"
#include
"forceList.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
...
...
@@ -93,12 +94,6 @@ protected:
scalar
cumulativeContErr_
;
// Model parameters
//- Skin frition coefficient for film/primary region interface
scalar
Cf_
;
// Thermo properties
// Fields
...
...
@@ -199,6 +194,9 @@ protected:
//- Cloud injection
injectionModelList
injection_
;
//- List of film forces
forceList
forces_
;
// Checks
...
...
@@ -238,9 +236,6 @@ protected:
//- Update film surface velocities
virtual
void
updateSurfaceVelocities
();
//- Return the stress term for the momentum equation
virtual
tmp
<
fvVectorMatrix
>
tau
(
volVectorField
&
dU
)
const
;
//- Constrain a film region master/slave boundaries of a field to a
// given value
template
<
class
Type
>
...
...
@@ -314,12 +309,6 @@ public:
inline
label
nNonOrthCorr
()
const
;
// Model parameters
//- Return the skin friction coefficient
inline
scalar
Cf
()
const
;
// Thermo properties
//- Return const access to the dynamic viscosity / [Pa.s]
...
...
src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayerI.H
View file @
d0cc8729
...
...
@@ -61,12 +61,6 @@ inline label kinematicSingleLayer::nNonOrthCorr() const
}
inline
scalar
kinematicSingleLayer
::
Cf
()
const
{
return
Cf_
;
}
inline
const
volScalarField
&
kinematicSingleLayer
::
mu
()
const
{
return
mu_
;
...
...
src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForce/contactAngleForce.C
0 → 100644
View file @
d0cc8729
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include
"contactAngleForce.H"
#include
"addToRunTimeSelectionTable.H"
#include
"fvcGrad.H"
#include
"unitConversion.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
{
namespace
regionModels
{
namespace
surfaceFilmModels
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug
(
contactAngleForce
,
0
);
addToRunTimeSelectionTable
(
force
,
contactAngleForce
,
dictionary
);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
contactAngleForce
::
contactAngleForce
(
const
surfaceFilmModel
&
owner
,
const
dictionary
&
dict
)
:
force
(
typeName
,
owner
,
dict
),
deltaWet_
(
readScalar
(
coeffs_
.
lookup
(
"deltaWet"
))),
Ccf_
(
readScalar
(
coeffs_
.
lookup
(
"Ccf"
))),
rndGen_
(
label
(
0
),
-
1
),
distribution_
(
distributionModels
::
distributionModel
::
New
(
coeffs_
.
subDict
(
"contactAngleDistribution"
),
rndGen_
)
)
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
contactAngleForce
::~
contactAngleForce
()
{}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
tmp
<
fvVectorMatrix
>
contactAngleForce
::
correct
(
volVectorField
&
U
)
{
tmp
<
volVectorField
>
tForce
(
new
volVectorField
(
IOobject
(
"contactForce"
,
owner_
.
time
().
timeName
(),
owner_
.
regionMesh
(),
IOobject
::
NO_READ
,
IOobject
::
NO_WRITE
),
owner_
.
regionMesh
(),
dimensionedVector
(
"zero"
,
dimForce
/
dimArea
,
vector
::
zero
)
)
);
vectorField
&
force
=
tForce
().
internalField
();
const
labelUList
&
own
=
owner_
.
regionMesh
().
owner
();
const
labelUList
&
nbr
=
owner_
.
regionMesh
().
neighbour
();