ReactionMechanismGenerator / ReactionMechanismGenerator/T3

Compute high-P limit rate coefficients used for ILS in a PDep network

Open
#81 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Type: Feature
Dominant language
Python
Stars
14
Forks
7
Avg merge
22h 36m
Merged PRs (30d)
22

Description

Add the following to determine_reactions_based_on_sa() in main:

        # Get the top X entries from the SA.
        for observable_label, sa_list in sa_dict_max.items():
            sa_list_sorted = sorted(sa_list, key=lambda item: item['max_sa'], reverse=True)
            for i in range(min(self.t3['sensitivity']['top_SA_reactions'], len(sa_list_sorted))):
                reaction = get_reaction_by_index(sa_list_sorted[i]['parameter'] - 1, self.rmg_reactions)
                if self.reaction_requires_refinement(reaction=reaction):
                    num = f'{i+1}{get_ordinal_indicator(i+1)} ' if i else ''
                    reason = f'(i {self.iteration}) the {num}most sensitive reaction for {observable_label}'
                    key = self.add_reaction(reaction=reaction, reasons=reason)
                    if key is not None:
                        reaction_keys.append(key)
                if reaction.kinetics.is_pressure_dependent() \
                        and reaction not in [rxn_tup[0] for rxn_tup in pdep_rxns_to_explore] \
                        and self.t3['sensitivity']['pdep_SA_threshold'] is not None:
                    pdep_rxns_to_explore.append((reaction, i, observable_label))

        # write determine_reactions_from_pdep_network()
        # get all low barrier rxns from a network, compute them if not from library
        # Todo: make sure rate coefficients are perturbed in Arkane PDep SA, consider these rxns here
        reaction_keys.extend(self.determine_reactions_from_pdep_network(pdep_rxns_to_explore=pdep_rxns_to_explore))

And implement the determine_reactions_from_pdep_network() function.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the determine_reactions_based_on_sa() entry point in main and inspect the surrounding reaction_helpers, including reaction_requires_refinement() and add_reaction(). Implement determine_reactions_from_pdep_network() so it handles the pressure-dependent reactions collected there and returns reaction keys; done means the new function is integrated at that call site.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.