Skip to content

EPM: Inconsistent treatment of "liq" and "liquid" flag for coagulation #114

Description

@lrobion

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions