From e35b244e78cca7af2b81df6c65b3772b70ededc3 Mon Sep 17 00:00:00 2001 From: jcschaff Date: Tue, 24 Sep 2024 03:42:32 -0400 Subject: [PATCH] roll back math generation abort if units don't match, too agressive --- .../vcell/mapping/AbstractMathMapping.java | 57 ++++++------------- 1 file changed, 17 insertions(+), 40 deletions(-) diff --git a/vcell-core/src/main/java/cbit/vcell/mapping/AbstractMathMapping.java b/vcell-core/src/main/java/cbit/vcell/mapping/AbstractMathMapping.java index 7ed22aabe1..0c40980c5e 100644 --- a/vcell-core/src/main/java/cbit/vcell/mapping/AbstractMathMapping.java +++ b/vcell-core/src/main/java/cbit/vcell/mapping/AbstractMathMapping.java @@ -1,18 +1,6 @@ package cbit.vcell.mapping; -import java.beans.PropertyVetoException; -import java.util.*; -import java.util.stream.Collectors; - import cbit.vcell.biomodel.ModelUnitConverter; -import cbit.vcell.math.*; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.vcell.util.*; -import org.vcell.util.Issue.IssueCategory; -import org.vcell.util.Issue.IssueSource; -import org.vcell.util.IssueContext.ContextType; - import cbit.vcell.client.constants.GuiConstants; import cbit.vcell.geometry.CompartmentSubVolume; import cbit.vcell.geometry.GeometryClass; @@ -26,43 +14,32 @@ import cbit.vcell.mapping.potential.MembraneElectricalDevice; import cbit.vcell.mapping.potential.PotentialMapping; import cbit.vcell.mapping.spatial.SpatialObject.QuantityComponent; +import cbit.vcell.math.*; import cbit.vcell.math.Variable.Domain; import cbit.vcell.matrix.MatrixException; import cbit.vcell.matrix.RationalExp; -import cbit.vcell.model.BioNameScope; -import cbit.vcell.model.ExpressionContainer; -import cbit.vcell.model.Kinetics; +import cbit.vcell.model.*; import cbit.vcell.model.Kinetics.KineticsParameter; -import cbit.vcell.model.Membrane; import cbit.vcell.model.Membrane.MembraneVoltage; -import cbit.vcell.model.Model; import cbit.vcell.model.Model.ModelFunction; import cbit.vcell.model.Model.ModelParameter; -import cbit.vcell.model.ModelException; -import cbit.vcell.model.ModelProcess; -import cbit.vcell.model.ModelQuantity; -import cbit.vcell.model.Parameter; -import cbit.vcell.model.ProxyParameter; -import cbit.vcell.model.RbmObservable; -import cbit.vcell.model.ReactionRule; -import cbit.vcell.model.ReactionStep; -import cbit.vcell.model.SpeciesContext; -import cbit.vcell.model.Structure; import cbit.vcell.model.Structure.StructureSize; import cbit.vcell.parser.ASTFuncNode.FunctionType; -import cbit.vcell.parser.Expression; +import cbit.vcell.parser.*; import cbit.vcell.parser.Expression.FunctionFilter; -import cbit.vcell.parser.ExpressionBindingException; -import cbit.vcell.parser.ExpressionException; -import cbit.vcell.parser.FunctionInvocation; -import cbit.vcell.parser.NameScope; -import cbit.vcell.parser.ScopedSymbolTable; -import cbit.vcell.parser.SymbolTableEntry; -import cbit.vcell.parser.VCUnitEvaluator; import cbit.vcell.solver.Simulation; import cbit.vcell.units.VCUnitDefinition; import cbit.vcell.units.VCUnitException; -import ucar.units_vcell.UnitException; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.vcell.util.*; +import org.vcell.util.Issue.IssueCategory; +import org.vcell.util.Issue.IssueSource; +import org.vcell.util.IssueContext.ContextType; + +import java.beans.PropertyVetoException; +import java.util.*; +import java.util.stream.Collectors; public abstract class AbstractMathMapping implements ScopedSymbolTable, UnitFactorProvider, IssueSource, MathMapping { @@ -1761,12 +1738,12 @@ final ProbabilityParameter addProbabilityParameter(String name, Expression expre VCUnitEvaluator unitEvaluator = new VCUnitEvaluator(simContext.getModel().getUnitSystem()); VCUnitDefinition expUnit = unitEvaluator.getUnitDefinition(expression); if (unitDefinition != null && !unitDefinition.equals(expUnit)){ - logger.error("expected unit=" + unitDefinition.getSymbol() + ", found=" + expUnit.getSymbol()); - throw new VCUnitException("expected unit=" + unitDefinition.getSymbol() + ", found=" + expUnit.getSymbol()); + logger.warn("expected unit=" + unitDefinition.getSymbol() + ", found=" + expUnit.getSymbol()); +// throw new VCUnitException("expected unit=" + unitDefinition.getSymbol() + ", found=" + expUnit.getSymbol()); } } catch (ExpressionException e){ - logger.error("error evaluating units for expression '" + expression + ": " + e.getMessage(), e); - throw new VCUnitException("error evaluating units for expression '" + expression + ": " + e.getMessage()); + logger.warn("error evaluating units for expression '" + expression + ": " + e.getMessage(), e); +// throw new VCUnitException("error evaluating units for expression '" + expression + ": " + e.getMessage()); } MathMappingParameter previousParameter = getMathMappingParameter(name); if(previousParameter != null){