calculate static method

double calculate(
  1. String formula
)

Calculates molecular weight from a chemical formula.

Example:

double mw = MolecularWeight.calculate('H2O');
print(mw); // Approximately 18.015

Returns the molecular weight in atomic mass units (amu). Throws FormatException if formula contains unknown elements.

Implementation

static double calculate(String formula) {
  final Map<String, int> elementCounts = parseFormula(formula);
  double totalWeight = 0.0;

  for (final element in elementCounts.keys) {
    if (!_atomicWeights.containsKey(element)) {
      throw FormatException('Unknown element: $element');
    }

    final double atomicWeight = _atomicWeights[element]!;
    final int count = elementCounts[element]!;

    totalWeight += atomicWeight * count;
  }

  return totalWeight;
}