List of commits:
Subject Hash Author Date (UTC)
Updated Grimes Kernel f608acb3b6da226f28f41de412f6af9f55dc1f42 Anurag M 2018-08-16 13:35:57
Minor changes to Grimes kernel, still not functional cc44c1e64b44719780ae6b0f3445055854f7cf99 Anurag M 2018-08-16 08:12:02
Updated code to be compatible with OpenFOAM6, integrated latest commits from OpenQBMM-dev a6cab1ad0759989cf0d8b3d5a3dafa7e25fdde82 Anurag M 2018-08-15 17:29:12
update coalescence buoyancyInducedSI, small speedup ce96614597feb467bc73ff4b3d8d3b622c2942f2 Cyrille Bonamy 2018-05-17 22:38:21
Updated test cases to work with OF5.0 a94165663b5086612bd57bed9915bb0b13c616ae Anurag.Misra 2018-04-27 11:57:40
Moved ifPorous back to time directory due to problems with case decomposition, changed write settings instead d7c92de5c17607f86b7fe614ac49964762826e84 Anurag M 2018-04-27 09:29:51
moved location of ifPorous to constant directory to avoid problems with restarting case 7765cfdc95e2733af395f004754f21d4310fb249 Anurag M 2018-04-27 08:17:50
Added lower bound for the efficiency term in buoyancyInduced kernel 37484d897975e1c3ecb20462a68bd0cd09925f9e Anurag M 2018-04-26 13:16:23
moved lookup of fields to constructor for efficiency, added spatially inhomogeneous buoyancyInduced kernel 7a444cf89c257318fabfee2618a45a96231eebcc Anurag M 2018-04-24 17:14:42
included constant coalescence kernel for testing... 21d0518c24475f61f326fbf4942345ac7bd8106b Anurag M 2018-04-23 17:56:36
modified case batchSettlerFine 9e6d0df52ab1b47d72c44f79cbf2b9f3fe9d051f Anurag M 2018-04-23 14:43:20
cleaned directory structure, fixed conflicting references to other libraries 97b6c823c552d5c690a78677cf1fbbfd9258388b Anurag M 2018-04-23 14:31:37
Implemented latest changes from OpenQBMM code 309b00b557e56d25057cf1a8cd5b30b80b32aada Anurag Misra 2018-04-05 07:17:32
updated batchSettlerFine case d475795ed3fe338ac7a8732e41ffc4e57d61c4ff Anurag Misra 2018-02-12 17:49:22
included latest QBMM updates, renamed diameterModel and alphaContactAngle entries to avoid conflict with OpenFOAM defaults d3d8fbc70cd9754d8552ae9adf930a5723e94d1c Anurag Misra 2018-02-12 17:24:17
updated test case 845e8a7326d6e5132cc6903390233b60f44a6616 Anurag Misra 2018-01-31 16:17:55
suppressed debug message, modified case for test run beecf9d98ab64fc5d5eb00e8f061a02370c9e814 Anurag Misra 2018-01-31 16:06:31
Added coalescence kernel to solver, switched on coalescence in case dictionary, cleaned up case batchSettlerFine 33502e69ba649befc30d1206f00f53ab3ae53b6d Anurag Misra 2018-01-31 14:44:39
Suppressed coalescence due to conflict, switched on dummy aggregation model in test case to test code stability e38a0560ffb1c6e68d7dc410f03a152689477078 Anurag Misra 2018-01-30 09:13:31
first commit to update code to OpenFOAM50, no coalescence kernels included 9d70a283abb4e26983a8d9711d76d22c251fbd4c Anurag Misra 2018-01-23 10:50:12
Commit f608acb3b6da226f28f41de412f6af9f55dc1f42 - Updated Grimes Kernel
Author: Anurag M
Author date (UTC): 2018-08-16 13:35
Committer name: Anurag M
Committer date (UTC): 2018-08-16 13:35
Parent(s): cc44c1e64b44719780ae6b0f3445055854f7cf99
Signing key:
Tree: bfea7e6b35e4d0e2fe8b71cb5c347e8a9bf37f53
File Lines added Lines deleted
multiphaseEulerPbeFoam/quadratureMethods/populationBalanceModels/Make/options 1 1
multiphaseEulerPbeFoam/quadratureMethods/populationBalanceModels/populationBalanceSubModels/aggregationKernels/Grimes/Grimes.C 33 129
multiphaseEulerPbeFoam/quadratureMethods/populationBalanceModels/populationBalanceSubModels/aggregationKernels/Grimes/Grimes.H 39 13
File multiphaseEulerPbeFoam/quadratureMethods/populationBalanceModels/Make/options changed (mode: 100644) (index 3c0bec7..d0f9d54)
... ... EXE_INC = \
20 20 -I../quadratureApproximations/lnInclude \ -I../quadratureApproximations/lnInclude \
21 21 -I../momentAdvection/lnInclude \ -I../momentAdvection/lnInclude \
22 22 -I../PDFTransportModels/lnInclude \ -I../PDFTransportModels/lnInclude \
23 -I../mixingModels/lnInclude
23 -I../mixingModels/lnInclude
24 24
25 25 LIB_LIBS = \ LIB_LIBS = \
26 26 -lincompressibleTransportModels \ -lincompressibleTransportModels \
File multiphaseEulerPbeFoam/quadratureMethods/populationBalanceModels/populationBalanceSubModels/aggregationKernels/Grimes/Grimes.C changed (mode: 100644) (index 0a54164..e94fee1)
... ... Foam::populationBalanceSubModels::aggregationKernels::Grimes
56 56 ) )
57 57 : :
58 58 aggregationKernel(dict, mesh), aggregationKernel(dict, mesh),
59 Ucrit_(dict.lookup("Ucrit")),
60 59 thisPhaseName_(dict.lookup("thisPhaseName")), thisPhaseName_(dict.lookup("thisPhaseName")),
61 60 contPhaseName_(dict.lookup("contPhaseName")), contPhaseName_(dict.lookup("contPhaseName")),
62 thisPhaseDict_
63 (
64 transportProperties.subDict
65 (
66 IOobject::groupName(thisPhaseName_)
67 )
68 ),
69 contPhaseDict_
70 (
71 transportProperties.subDict
72 (
73 IOobject::groupName(contPhaseName_)
74 )
75 ),
76 Udisp_
77 (
78 mesh_.lookupObject<volVectorField>
79 (
80 IOobject::groupName("U", thisPhaseName_)
81 )
82 ),
83 Ucont_
84 (
85 mesh_.lookupObject<volVectorField>
86 (
87 IOobject::groupName("U", contPhaseName_)
88 )
89 ),
90 moment2_
61 //thisPhase_(thisPhaseName_, phaseDict_, mesh),
62 thisPhaseDict_(mesh_.lookupObject<IOdictionary>("transportProperties").subDict(thisPhaseName_)),
63 contPhaseDict_(mesh_.lookupObject<IOdictionary>("transportProperties").subDict(contPhaseName_)),
64 Kcr_(dict.lookupOrDefault<scalar>("Kcr", 1.0)),
65 Ksv_(dict.lookupOrDefault<scalar>("Ksv", 5.0)),
66 Kce_(dict.lookupOrDefault<scalar>("Kce", 0.5)),
67 kB_(dict.lookupOrDefault<scalar>("kB", 1.3806503e-23)),
68 B_(dict.lookupOrDefault<scalar>("B", 1.65e-31)),
69 //T_(mesh_.lookupObject<volScalarField>(IOobject::groupName("T", thisPhaseName_))),
70 T_(356.15),
71 rhoC_(readScalar(contPhaseDict_.lookup("rho"))),
72 rhoD_(readScalar(thisPhaseDict_.lookup("rho"))),
73 g_(9.81),
74 alphaD_
91 75 ( (
92 76 mesh_.lookupObject<volScalarField> mesh_.lookupObject<volScalarField>
93 77 ( (
94 IOobject::groupName("moment.2.populationBalance", thisPhaseName_)
78 IOobject::groupName("alpha", thisPhaseName_)
95 79 ) )
96 80 ), ),
97 moment3_
98 (
99 mesh_.lookupObject<volScalarField>
100 (
101 IOobject::groupName("moment.3.populationBalance", thisPhaseName_)
102 )
103 )
81 nuC_(readScalar(contPhaseDict_.lookup("nu"))),
82 gamma_(readScalar(thisPhaseDict_.lookup("gamma")))
104 83 {} {}
105 84
106 85
 
... ... Foam::populationBalanceSubModels::aggregationKernels::Grimes::Ka
122 101 const label environment const label environment
123 102 ) const ) const
124 103 { {
125 //Info << "Printing objectRegistry Names abscissa1.mesh(): " << abscissa1.mesh().objectRegistry::names() << endl;
126
127 Info << "Printing objectRegistry Names mesh(): " << mesh_.objectRegistry::names() << endl;
128 Info << "Printing dictionary transportProperties: " << mesh_.lookupObject<IOdictionary>("transportProperties") << endl;
104 //- Evaluate volumes of colliding droplets
105 scalar v1_(Foam::constant::mathematical::pi*pow(abscissa1,3.0)/6.0);
106 scalar v2_(Foam::constant::mathematical::pi*pow(abscissa2,3.0)/6.0);
129 107
130 //Info << "Printing volVectorField U: " << mesh_.lookupObject<volVectorField>("U")[celli] << endl;
131 //Info << "Printing volVectorField U_: " << U_ << endl;
132
133 // dimensionedScalar smallAbs("smallAbs", pow3(abscissa1.dimensions())/dimTime, SMALL);
134
135 //- Read velocity of the associated phase (NOT NECESSARY : velocity of the associated phase is now U_
136 //- Read velocity of the continuous phase
137
138 //- Evaluate relative velocity
139 dimensionedScalar Uslip_
140 (
141 "Uslip_",
142 dimensionSet(0, 1, -1, 0, 0),
143 mag(Udisp_[celli] - Ucont_[celli])
144 );
145
146 // Read sauter diameter
147 //dimensionedScalar diaMin_("diaMin_", dimensionSet(0, 1, 0, 0, 0), 1.0e-06);
148 //dimensionedScalar diaMax_("diaMax_", dimensionSet(0, 1, 0, 0, 0), 1.0e-01);
149 //dimensionedScalar smallMoment2("smallMoment2", dimensionSet(0, -1, 0, 0, 0), 1.0e-06);
150
151 scalar diaMin_(1.0e-06);
152 scalar diaMax_(1.0e-01);
153 scalar smallMoment2(1.0e-06);
154
155 dimensionedScalar dSauter_
156 (
157 "dSauter_",
158 dimensionSet(0, 1, 0, 0, 0),
159 min
160 (
161 max
162 (
163 moment3_[celli]/max(moment2_[celli], smallMoment2), diaMin_
164 ),
165 diaMax_
166 )
167 );
168
169 scalar v1_ = Foam::constant::mathematical::pi*pow(abscissa1,3.0)/6.0;
170 scalar v2_ = Foam::constant::mathematical::pi*pow(abscissa2,3.0)/6.0;
171
172 const double kB = 1.3806503e-23;
173
174 scalar eta_c(0.000607);
175
176 scalar rho_d = 732.0;
177 scalar rho_c = 966.0;
178
179 scalar g = 9.81;
180 scalar gamma = 0.000978;
181
182 scalar B = 1.65e-31;
183 scalar T = 356.15;
184
185 scalar k_cr = 5.0; /* Empirical fitting parameter coalescence rate */
186 scalar k_sv = 5.0; /* Empirical fitting parameter hindered sedimentation function */
187 scalar k_ce = 0.5; /* Empirical fitting parameter binary coalescence efficiency */
188
189 //- Evaluate volumes of the colliding droplets
190
191 108 //- Evaluate useful expressions //- Evaluate useful expressions
192 /*
193 109 scalar vSum_ = pow(v1_,1.0/3.0) + pow(v2_,1.0/3.0); scalar vSum_ = pow(v1_,1.0/3.0) + pow(v2_,1.0/3.0);
194 110 scalar vProduct_ = pow(v1_,1.0/3.0)*pow(v2_,1.0/3.0); scalar vProduct_ = pow(v1_,1.0/3.0)*pow(v2_,1.0/3.0);
195 scalar vDiff_ = fabs(pow(v1_,2.0/3.0) - pow(v2_,2.0/3.0));
196
197 scalar alpha_d = 0.5;
111 scalar vDiff_ = std::fabs(pow(v1_,2.0/3.0) - pow(v2_,2.0/3.0));
198 112
199 scalar Pe = pow(3.0/(4.0*Foam::constant::mathematical::pi),1.0/3.0)
200 *((rho_d-rho_c)*g)/(kB*T)
201 *pow(1-alpha_d,k_sv)
113 //- Evaluate Peclet number of the dispersed phase
114 scalar Pe_ = pow(3.0/(4.0*Foam::constant::mathematical::pi),1.0/3.0)
115 *(std::fabs(rhoD_-rhoC_)*g_)/(kB_*T_)
116 *pow(1 - alphaD_[celli],Ksv_)
202 117 *vProduct_*vDiff_; *vProduct_*vDiff_;
203
118
204 119 scalar t_bc = 1.046 scalar t_bc = 1.046
205 120 *pow(3.0/(4.0*Foam::constant::mathematical::pi),3.0/2.0) *pow(3.0/(4.0*Foam::constant::mathematical::pi),3.0/2.0)
206 *(eta_c*(rho_d-rho_c)*g)/(pow(gamma,3.0/2.0)
207 *pow(B,0.5))
121 *(nuC_*rhoC_*std::fabs(rhoD_-rhoC_)*g_)/(pow(gamma_,3.0/2.0)*pow(B_,1.0/2.0))
208 122 *pow(vProduct_/vSum_,9.0/2.0); *pow(vProduct_/vSum_,9.0/2.0);
209 */
210 //- Evaluate relative velocity of different drops
211 scalar Urelative_
212 (
213 mag(Uslip_.value()*(abscissa2-abscissa1)/dSauter_.value())
214 );
215
123
216 124 //if (std::fabs(Urelative_ - 0.00025) > SMALL) //if (std::fabs(Urelative_ - 0.00025) > SMALL)
217 125 // Urelative_ = 0.00025; // Urelative_ = 0.00025;
218 126
219 //- Evaluate efficiency term
220 scalar lambda_(Foam::exp(-(Urelative_/Ucrit_.value())));
221 lambda_ = max(lambda_, 1e-10);
222
223 return Ca_.value();
224 // *k_cr*(kB*T/(6.*eta_c))
225 // *pow(vSum_,2.)/vProduct_
226 // *(1.0+Pe+(4.496*pow(Pe,1.0/3.0)))
227 // *exp(-t_bc/(k_ce));
127 return Ca_.value()
128 *Kcr_*(kB_*T_/(6.0*nuC_*rhoC_))
129 *pow(vSum_,2.0)/vProduct_
130 *(1.0 + Pe_ + (4.496*pow(Pe_,1.0/3.0)))
131 *exp(-t_bc/Kce_);
228 132 } }
229 133
230 134 // ************************************************************************* // // ************************************************************************* //
File multiphaseEulerPbeFoam/quadratureMethods/populationBalanceModels/populationBalanceSubModels/aggregationKernels/Grimes/Grimes.H changed (mode: 100644) (index f18bdba..d2e68c1)
... ... SourceFiles
50 50 #include "fundamentalConstants.H" #include "fundamentalConstants.H"
51 51 #include "addToRunTimeSelectionTable.H" #include "addToRunTimeSelectionTable.H"
52 52
53
54 53 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
55 54
56 55 namespace Foam namespace Foam
 
... ... private:
72 71
73 72 // Private data // Private data
74 73
75 //- This phase name
74 //- Dispersed phase name
76 75 word thisPhaseName_; word thisPhaseName_;
77 76
78 77 //- Continuous phase name //- Continuous phase name
79 78 word contPhaseName_; word contPhaseName_;
80 79
81 //- This Phase dictionary
80 //phaseModel thisPhase_;
81
82 //- Dispersed Phase dictionary
82 83 dictionary thisPhaseDict_; dictionary thisPhaseDict_;
83 84
84 85 //- Continuous Phase dictionary //- Continuous Phase dictionary
85 86 dictionary contPhaseDict_; dictionary contPhaseDict_;
86
87 //- Velocity field of the phase
88 const volVectorField& Udisp_;
89
90 //- Velocity field of the continuous phase
91 const volVectorField& Ucont_;
92 87
93 //- Second moment of the distribution
94 const volScalarField& moment2_;
88 //- Scaling parameter for droplet collision
89 scalar Kcr_;
90
91 //- Scaling parameter for hindered sedimentation
92 scalar Ksv_;
93
94 //- Scaling parameter for binary coalescence efficiency
95 scalar Kce_;
96
97 //- Boltzmann constant
98 const scalar kB_;
99
100 //- Intermolecular coefficient at the phase interface [N.m^2], retarded Hamaker constant estimated from Grimes
101 scalar B_;
102
103 //- Temperature of continuous phase
104 //volScalarField T_;
105 scalar T_;
106
107 //- Density of the continuous phase
108 scalar rhoC_;
109
110 //- Density of the dispersed phase
111 scalar rhoD_;
112
113 //- Gravitational acceleration
114 scalar g_;
115
116 //- Volume fraction of the dispersed phase
117 volScalarField alphaD_;
118
119 //- Kinematic viscosity of the continuous phase
120 scalar nuC_;
95 121
96 //- Third moment of the distribution
97 const volScalarField& moment3_;
122 //- Surface tension of the phase pair
123 scalar gamma_;
98 124
99 125
100 126 public: public:
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/velagala/MultiPhaseQBMM

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/velagala/MultiPhaseQBMM

Clone this repository using git:
git clone git://git.rocketgit.com/user/velagala/MultiPhaseQBMM

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main