newmen/versatile-diamond

View on GitHub
engine/hand-generations/src/names.h

Summary

Maintainability
Test Coverage
#ifndef NAMES_H
#define NAMES_H

#include <tools/common.h>

enum : ushort
{
    BASE_SPECS_NUM = 6,
    SPECIFIC_SPECS_NUM = 25,

    UBIQUITOUS_REACTIONS_NUM = 4,
    TYPICAL_REACTIONS_NUM = 30,
    LATERAL_REACTIONS_NUM = 4,

    ALL_SPEC_REACTIONS_NUM = TYPICAL_REACTIONS_NUM + LATERAL_REACTIONS_NUM
};

enum BaseSpecNames : ushort
{
    BRIDGE,
    DIMER,
    METHYL_ON_BRIDGE,
    METHYL_ON_DIMER,
    TWO_BRIDGES,
    BRIDGE_WITH_DIMER
};

static_assert(BRIDGE_WITH_DIMER + 1 == BASE_SPECS_NUM,
              "Incorrect number of base species");

enum SpecificSpecNames : ushort
{
    BRIDGE_CTsi = BASE_SPECS_NUM,
    BRIDGE_CRi,
    BRIDGE_CRh,
    BRIDGE_CRs,
    BRIDGE_CRs_CTi_CLi,
    DIMER_CRi_CLi,
    DIMER_CRs,
    DIMER_CRs_CLi,
    METHYL_ON_DIMER_CMiu,
    METHYL_ON_DIMER_CMsiu,
    METHYL_ON_DIMER_CMssiu,
    METHYL_ON_DIMER_CLs_CMhiu,
    METHYL_ON_BRIDGE_CBi_CMiu,
    METHYL_ON_BRIDGE_CBi_CMsiu,
    METHYL_ON_BRIDGE_CBi_CMssiu,
    METHYL_ON_BRIDGE_CBs_CMsiu,
    METHYL_ON_111_CMiu,
    METHYL_ON_111_CMsiu,
    METHYL_ON_111_CMssiu,
    HIGH_BRIDGE,
    HIGH_BRIDGE_CMs,
    TWO_BRIDGES_CTRi_CBRs,
    BRIDGE_WITH_DIMER_CDLi,
    BRIDGE_WITH_DIMER_CBTi_CBRs_CDLi,
    CROSS_BRIDGE_ON_BRIDGES
};

static_assert(CROSS_BRIDGE_ON_BRIDGES + 1 == SPECIFIC_SPECS_NUM + BASE_SPECS_NUM,
              "Incorrect number of specific species");

enum TypicalReactionNames : ushort
{
    DIMER_FORMATION,
    DIMER_FORMATION_NEAR_BRIDGE,
    DIMER_DROP,
    DIMER_DROP_NEAR_BRIDGE,
    ADS_METHYL_TO_DIMER,
    ADS_METHYL_TO_111,
    METHYL_ON_DIMER_HYDROGEN_MIGRATION,
    METHYL_TO_HIGH_BRIDGE,
    FORM_TWO_BOND,
    HIGH_BRIDGE_STAND_TO_ONE_BRIDGE,
    DES_METHYL_FROM_BRIDGE,
    DES_METHYL_FROM_111,
    DES_METHYL_FROM_DIMER,
    NEXT_LEVEL_BRIDGE_TO_HIGH_BRIDGE,
    HIGH_BRIDGE_STAND_TO_TWO_BRIDGES,
    TWO_BRIDGES_TO_HIGH_BRIDGE,
    BRIDGE_WITH_DIMER_TO_HIGH_BRIDGE_AND_DIMER,
    HIGH_BRIDGE_STAND_TO_DIMER,
    HIGH_BRIDGE_TO_METHYL,
    MIGRATION_DOWN_AT_DIMER,
    MIGRATION_DOWN_IN_GAP,
    MIGRATION_DOWN_AT_DIMER_FROM_111,
    MIGRATION_DOWN_IN_GAP_FROM_111,
    MIGRATION_DOWN_AT_DIMER_FROM_HIGH_BRIDGE,
    MIGRATION_DOWN_IN_GAP_FROM_HIGH_BRIDGE,
    MIGRATION_DOWN_AT_DIMER_FROM_DIMER,
    MIGRATION_DOWN_IN_GAP_FROM_DIMER,
    ABS_HYDROGEN_FROM_GAP,
    MIGRATION_THROUGH_DIMERS_ROW,
    SIERPINSKI_DROP
};

static_assert(SIERPINSKI_DROP + 1 == TYPICAL_REACTIONS_NUM,
              "Incorrect number of typical reactions");

enum LateralReactionNames : ushort
{
    DIMER_FORMATION_AT_END = TYPICAL_REACTIONS_NUM,
    DIMER_FORMATION_IN_MIDDLE,
    DIMER_DROP_AT_END,
    DIMER_DROP_IN_MIDDLE
};

static_assert(DIMER_DROP_IN_MIDDLE + 1 == ALL_SPEC_REACTIONS_NUM,
              "Incorrect number of lateral reactions");

enum UbiquitousReactionNames : ushort
{
    SURFACE_ACTIVATION = ALL_SPEC_REACTIONS_NUM,
    SURFACE_DEACTIVATION,
    METHYL_ON_DIMER_ACTIVATION,
    METHYL_ON_DIMER_DEACTIVATION
};

static_assert(METHYL_ON_DIMER_DEACTIVATION + 1 == ALL_SPEC_REACTIONS_NUM + UBIQUITOUS_REACTIONS_NUM,
              "Incorrect number of ubiquitous reactions");

#endif // NAMES_H