The Coagulation constructor accepts "liq" and "liquid" for liquid aerosols (I assume they are supposed to be the same because the error message only report on liquid, soot or ice). However coagulation coefficients "beta" are only computed for the "liq" case and not the "liquid" case.
|
if ( strcmp( phase, "liq" ) == 0 ) |
|
buildBeta( bin_Centers_1 ); |
|
else { |
|
for ( unsigned int iBin_1 = 0; iBin_1 < bin_Centers_1.size(); iBin_1++ ) { |
|
beta.push_back( Vector_1D( bin_Centers_1.size() ) ); |
|
for ( unsigned int iBin_2 = 0; iBin_2 < bin_Centers_2.size(); iBin_2++ ) { |
|
/* Assuming an aggregation efficiency of 1 */ |
|
beta[iBin_1][iBin_2] = Kernel[iBin_1][iBin_2]; |
|
} |
|
} |
|
} |
Currently the EPM in Integrate.cpp passes "liquid" to the constructor so we do not use this buildBeta function. I don't think this is intentional but I am out of my depth here, I don't know what impact this would have.
We should also just use an enum class for the flags instead of string comparisons.
@marcoslogrono @sdeastham
The
Coagulationconstructor accepts"liq"and"liquid"for liquid aerosols (I assume they are supposed to be the same because the error message only report on liquid, soot or ice). However coagulation coefficients "beta" are only computed for the"liq"case and not the"liquid"case.APCEMM/Code.v05-00/src/AIM/Coagulation.cpp
Lines 97 to 107 in adf714b
Currently the EPM in
Integrate.cpppasses"liquid"to the constructor so we do not use thisbuildBetafunction. I don't think this is intentional but I am out of my depth here, I don't know what impact this would have.We should also just use an
enum classfor the flags instead of string comparisons.@marcoslogrono @sdeastham