Remove código morto, eliminar console.log e deduplicate catálogo de parâmetros

- Remove solve.js (código morto que referenciava globais inexistentes)
- Remove console.log de PSO.run() e comentários de debug
- Exporta parameterCatalog, modelParameters e getParamDisplayInfo de search.js
- index.html passa a importar esses símbolos em vez de redefiní-los

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ltadeu6 2026-05-24 18:26:19 -03:00
parent 125a899b60
commit eed063f16c
No known key found for this signature in database
GPG key ID: FB9FDAB6B6F3418D
5 changed files with 89 additions and 165 deletions

View file

@ -253,7 +253,7 @@
</div>
<script type="module">
import { main } from "./src/search.js";
import { main, parameterCatalog, modelParameters, getParamDisplayInfo } from "./src/search.js";
const measurementUnits = {
time: "h",
@ -267,117 +267,6 @@
`cells (${measurementUnits.cells})`,
];
const parameterCatalog = {
K_S: {
latex: "K_S",
unitText: "g/L",
unitLatex: "\\mathrm{g\\,L^{-1}}",
overrides: {
contois: {
unitText: "g_S/g_X",
unitLatex: "\\frac{\\mathrm{g}_{S}}{\\mathrm{g}_{X}}",
},
},
},
mu_max: {
latex: "\\mu_{max}",
unitText: "h⁻¹",
unitLatex: "\\mathrm{h^{-1}}",
},
K_I: {
latex: "K_I",
unitText: "g/L",
unitLatex: "\\mathrm{g\\,L^{-1}}",
overrides: {
aiba: {
unitText: "L/g",
unitLatex: "\\mathrm{L\\,g^{-1}}",
},
},
},
m_S: {
latex: "m_S",
unitText: "g_S/(g_X·h)",
unitLatex: "\\frac{\\mathrm{g}_{S}}{\\mathrm{g}_{X}\\,\\mathrm{h}}",
},
Y_XS: {
latex: "Y_{XS}",
unitText: "g_X/g_S",
unitLatex: "\\frac{\\mathrm{g}_{X}}{\\mathrm{g}_{S}}",
},
T: {
latex: "T",
unitText: "h",
unitLatex: "\\mathrm{h}",
},
n: {
latex: "n",
unitText: null,
unitLatex: null,
},
};
const modelParameters = {
aiba: [
{ key: "K_S", bounds: [0.005, 2] },
{ key: "mu_max", bounds: [0.05, 0.9] },
{ key: "K_I", bounds: [0.01, 1] },
{ key: "m_S", bounds: [0.0015, 0.05] },
{ key: "Y_XS", bounds: [0.3, 0.7] },
],
andrews: [
{ key: "K_S", bounds: [0.005, 2] },
{ key: "mu_max", bounds: [0.05, 0.9] },
{ key: "K_I", bounds: [5, 150] },
{ key: "m_S", bounds: [0.0015, 0.05] },
{ key: "Y_XS", bounds: [0.3, 0.7] },
],
bergter: [
{ key: "K_S", bounds: [0.005, 2] },
{ key: "mu_max", bounds: [0.05, 0.9] },
{ key: "T", bounds: [5, 80] },
{ key: "m_S", bounds: [0.0015, 0.05] },
{ key: "Y_XS", bounds: [0.3, 0.7] },
],
contois: [
{ key: "K_S", bounds: [0.005, 2] },
{ key: "mu_max", bounds: [0.05, 0.9] },
{ key: "m_S", bounds: [0.0015, 0.05] },
{ key: "Y_XS", bounds: [0.3, 0.7] },
],
monod: [
{ key: "K_S", bounds: [0.005, 2] },
{ key: "mu_max", bounds: [0.05, 0.9] },
{ key: "m_S", bounds: [0.0015, 0.05] },
{ key: "Y_XS", bounds: [0.3, 0.7] },
],
moser: [
{ key: "K_S", bounds: [0.005, 2] },
{ key: "mu_max", bounds: [0.05, 0.9] },
{ key: "n", bounds: [0.8, 2.5] },
{ key: "m_S", bounds: [0.0015, 0.05] },
{ key: "Y_XS", bounds: [0.3, 0.7] },
],
tessier: [
{ key: "K_S", bounds: [0.005, 2] },
{ key: "mu_max", bounds: [0.2, 0.9] },
{ key: "m_S", bounds: [0.005, 0.05] },
{ key: "Y_XS", bounds: [0.3, 0.7] },
],
};
function getParamDisplayInfo(paramKey, modelKey) {
const baseInfo = parameterCatalog[paramKey];
if (!baseInfo) {
throw new Error(`Unknown parameter: ${paramKey}`);
}
const override = baseInfo.overrides?.[modelKey];
if (!override) {
return baseInfo;
}
return { ...baseInfo, ...override };
}
const demoData = [
dataHeader,
[0, 3.0, 0.05],

View file

@ -44,12 +44,7 @@ export class PSO {
run(c1, c2, w, iteration) {
for (let i = 0; i < iteration; i++) {
this.update(c1, c2, w);
// console.log(i, "/", iteration, "\t", this.err_best_g);
}
console.log(this.pos_best_g);
// console.log(this.err_best_g)
// console.table(this.pos)
}
update(c1, c2, w) {

View file

@ -13,7 +13,7 @@ import {
} from "./conhecidos.js";
import "https://cdn.plot.ly/plotly-2.29.1.min.js";
const parameterCatalog = {
export const parameterCatalog = {
K_S: {
latex: "K_S",
unitText: "g/L",
@ -63,7 +63,7 @@ const parameterCatalog = {
},
};
const modelParameters = {
export const modelParameters = {
aiba: [
{ key: "K_S", bounds: [0.005, 2] },
{ key: "mu_max", bounds: [0.05, 0.9] },
@ -112,7 +112,7 @@ const modelParameters = {
],
};
function getParamDisplayInfo(paramKey, modelKey) {
export function getParamDisplayInfo(paramKey, modelKey) {
const baseInfo = parameterCatalog[paramKey];
if (!baseInfo) {
throw new Error(`Unknown parameter: ${paramKey}`);

View file

@ -1,45 +0,0 @@
function solve(tf, Ks, mu_max, m_S, Y_XS, X0, S0) {
let res = 5000;
let timeArray = [];
for (let i = 0; i <= res; i++) {
timeArray[i] = (i * tf) / res;
}
let sol = RK4(model, timeArray, [X0, S0], [Ks, mu_max, m_S, Y_XS]);
let cels = [];
let subs = [];
for (let i = 0; i < sol.length; i++) {
cels[i] = sol[i][0];
subs[i] = sol[i][1];
}
TESTER = document.getElementById("tester");
Plotly.newPlot(
TESTER,
[
{
x: timeArray,
y: subs,
name: "Calculated substrate",
line: { color: "#4a90e2" },
},
{
x: timeArray,
y: cels,
name: "Calculated cells",
line: { color: "#50e3c2" },
},
],
{
margin: { t: 10, b: 30 },
paper_bgcolor: "#f0f4f8",
plot_bgcolor: "#f0f4f8",
legend: {
orientation: "h",
yanchor: "top",
y: -0.2,
font: { size: 10 },
},
},
);
}