Breakup

Header file: <libs/superdrops/collisions/breakup.hpp> [source]

template<NFragments NFrags>
struct DoBreakup

Public Functions

inline explicit DoBreakup(const NFrags nfrags)
size_t operator()(Superdrop &drop1, Superdrop &drop2, const double prob, const double phi_coll, const double phi_out) const

Operator used as an adaptor such that DoBreakup satisfies the PairEnactX concept and so can be used as the EnactCollision function-like object in the DoCollisions struct.

This operator calls functions to enact the collision-breakup of two super-droplets.

NOTE: phi_out is not used since outcome of collision is already pre-determined to be breakup.

Parameters:
  • drop1 – First superdroplet.

  • drop2 – Second superdroplet.

  • prob – Probability of collision.

  • phi_coll – Random number in the range [0.0, 1.0] for collision.

  • phi_out – Random number in the range [0.0, 1.0] for outcome of collision (not used).

Returns:

Resulting total number of null (xi=0) superdroplets from collision (i.e. 0, 1 or 2)

size_t breakup_superdroplet_pair(Superdrop &drop1, Superdrop &drop2) const

enact collisional-breakup of droplets by changing multiplicity, radius and solute mass of each superdroplet in a pair.

Note implicit assumption that gamma factor = 1.

Returns:

Resulting total number of null (xi=0) superdroplets from collision (i.e. 0, 1 or 2)

Private Functions

unsigned int breakup_gamma(const double prob, const double phi) const
void twin_superdroplet_breakup(Superdrop &drop1, Superdrop &drop2) const
void different_superdroplet_breakup(Superdrop &drop1, Superdrop &drop2) const

Private Members

NFrags nfrags
template<PairProbability Probability, NFragments NFrags>
inline MicrophysicalProcess auto CollBu(const unsigned int interval, const std::function<double(unsigned int)> int2realtime, const Probability collbuprob, const NFrags nfrags)
template<PairProbability Probability, NFragments NFrags>
inline MicrophysicalProcess auto CollBu(const unsigned int interval, const std::function<double(unsigned int)> int2realtime, const Probability collbuprob, const NFrags nfrags, const uint64_t seed)