VentPy currently ships two regulatory frameworks — Peru (DS 024-2016-EM) and Chile
(DS 132) — and the architecture was built so a third can be added without touching
the solver: RegulatoryConfig::for_standard() dispatches on an enum, and every
threshold lives in the config rather than scattered through the calculations.
Colombia is the natural next one. Underground mining there operates under
Decreto 1886 de 2015 (Reglamento de Seguridad en Labores Mineras Subterráneas).
That reference is the starting point, not a settled fact — part of this issue is
confirming it is the right instrument and whether any later resolution supersedes it.
Where the change goes
| file |
what to add |
include/ventpy/normativa.hpp |
new RegulatoryStandard enum value + a colombia() config, wired into for_standard() |
include/ventpy/limites_gases.hpp |
the gas exposure limits for the new standard |
bindings/bindings.cpp |
expose the enum value to Python |
python/ventpy/cli.py |
add "colombia" to the _NORMAS map |
| tests |
one case per threshold, citing the article it comes from |
What is actually needed
The code shape is the easy half. What this really needs is somebody who works under
that regulation and can supply, with the article cited for each number:
- air volume per person underground
- air per brake horsepower for diesel equipment
- minimum and maximum air velocity by working type
- gas exposure limits (CO, CO₂, NO₂, H₂S, CH₄) and O₂ minimum
- re-entry time after blasting
VentPy's rule is that every threshold is traceable to the article it comes from —
that is what the traceability matrix in the docs is for. A pull request with numbers
but no citations cannot be merged, so the citations are the substance of the work.
If you work in Colombian underground mining and want to help, comment here even if
you do not write C++ — supplying the sourced table is the part that is hard to
outsource, and the implementation can be handled from there.
VentPy currently ships two regulatory frameworks — Peru (DS 024-2016-EM) and Chile
(DS 132) — and the architecture was built so a third can be added without touching
the solver:
RegulatoryConfig::for_standard()dispatches on an enum, and everythreshold lives in the config rather than scattered through the calculations.
Colombia is the natural next one. Underground mining there operates under
Decreto 1886 de 2015 (Reglamento de Seguridad en Labores Mineras Subterráneas).
That reference is the starting point, not a settled fact — part of this issue is
confirming it is the right instrument and whether any later resolution supersedes it.
Where the change goes
include/ventpy/normativa.hppRegulatoryStandardenum value + acolombia()config, wired intofor_standard()include/ventpy/limites_gases.hppbindings/bindings.cpppython/ventpy/cli.py"colombia"to the_NORMASmapWhat is actually needed
The code shape is the easy half. What this really needs is somebody who works under
that regulation and can supply, with the article cited for each number:
VentPy's rule is that every threshold is traceable to the article it comes from —
that is what the traceability matrix in the docs is for. A pull request with numbers
but no citations cannot be merged, so the citations are the substance of the work.
If you work in Colombian underground mining and want to help, comment here even if
you do not write C++ — supplying the sourced table is the part that is hard to
outsource, and the implementation can be handled from there.