NCAR / NCAR/MechanismConfiguration

Evaluate whether solvent_floor and min_halflife fields belong in the public API

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

Nobody has claimed this yet.

Dominant language
C++
Stars
1
Forks
3
Avg merge
9h 30m
Merged PRs (30d)
4

Description

Those two fields were added in aerosol.hpp to support the musica tutorials.

std::optional<double> solvent_floor_;
std::optional<double> min_halflife_;

At the moment, these two fields are not wired into the configuration system. There are no corresponding YAML keys, the configuration parser does not populate them, and validate.cpp does not include any validation logic for them.

Evaluate whether these fields belong in the public API. They may exist solely to support the current solver's numerical stability and may not make sense as user-configurable options.

Notes: Matt mentioned that they are used for condensed-phase reactions that depend on solution concentrations, preventing concentrations from becoming infinite if the solvent evaporates completely.

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 by reading the field declarations in aerosol.hpp, then trace the configuration parser and the validation path in validate.cpp. Determine whether solvent_floor_ and min_halflife_ are intended as user-configurable API fields or internal solver state; done means recording a clear decision and its implications for YAML configuration and validation.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend-api-design
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.