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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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