Beispiel #1
0
        protected override XElement TypedSerialize(VariableExport variableExport, SimModelSerializationContext serializationContext)
        {
            var speciesNode = base.TypedSerialize(variableExport, serializationContext);

            //Export only if NOT allowed (SimModel default for missing attribute is: ALLOWED)
            if (!variableExport.NegativeValuesAllowed)
            {
                speciesNode.AddAttribute(SimModelSchemaConstants.NegativeValuesAllowed, "0");
            }

            if (variableExport.RHSIds.Count == 0)
            {
                return(speciesNode);
            }

            var rhsListNode = speciesNode.AddElement(SerializerRepository.CreateElement(SimModelSchemaConstants.RhsFormulaList));

            foreach (var rhsId in variableExport.RHSIds)
            {
                var rhsNode = rhsListNode.AddElement(SerializerRepository.CreateElement(SimModelSchemaConstants.RhsFormula));
                rhsNode.AddAttribute(SimModelSchemaConstants.Id, rhsId.ConvertedTo <string>());
            }

            return(speciesNode);
        }
Beispiel #2
0
        protected override XElement TypedSerialize(T objectToSerialize, SimModelSerializationContext serializationContext)
        {
            var element = SerializerRepository.CreateElement(ElementName);

            element.SetValue(objectToSerialize.ConvertedTo <string>());
            return(element);
        }
Beispiel #3
0
        protected override XElement TypedSerialize(TQuantity quantityExport, SimModelSerializationContext serializationContext)
        {
            var quantityExportNode = base.TypedSerialize(quantityExport, serializationContext);

            if (quantityExport.Value == null)
            {
                quantityExportNode.AddAttribute(_formulaIdAttribute, quantityExport.FormulaId.ToString());
            }

            return(quantityExportNode);
        }
Beispiel #4
0
        protected override XElement TypedSerialize(ParameterExport parameterExport, SimModelSerializationContext serializationContext)
        {
            var parameterNode = base.TypedSerialize(parameterExport, serializationContext);

            //do not write default value for paramter.CanBeVaried which is almost always true

            if (!parameterExport.CanBeVaried)
            {
                parameterNode.AddAttribute(SimModelSchemaConstants.CanBeVaried, "0");
            }

            return(parameterNode);
        }
 protected override void Context()
 {
     sut      = new SimModelDoubleAttributeMapper();
     _context = new SimModelSerializationContext();
 }
Beispiel #6
0
        protected override XElement TypedSerialize(TableFormulaWithOffsetExport tableFormulaWithOffsetExport, SimModelSerializationContext serializationContext)
        {
            var formulaNode = base.TypedSerialize(tableFormulaWithOffsetExport, serializationContext);

            var tableObjectNode = SerializerRepository.CreateElement(SimModelSchemaConstants.TableObject);

            tableObjectNode.AddAttribute(SimModelSchemaConstants.Id, tableFormulaWithOffsetExport.TableObjectId.ConvertedTo <string>());
            formulaNode.Add(tableObjectNode);

            var offsetObjectNode = SerializerRepository.CreateElement(SimModelSchemaConstants.OffsetObject);

            offsetObjectNode.AddAttribute(SimModelSchemaConstants.Id, tableFormulaWithOffsetExport.OffsetObjectId.ConvertedTo <string>());
            formulaNode.Add(offsetObjectNode);

            return(formulaNode);
        }
Beispiel #7
0
        protected override XElement TypedSerialize(ExplicitFormulaExport explicitFormulaExport, SimModelSerializationContext serializationContext)
        {
            var formulaNode  = base.TypedSerialize(explicitFormulaExport, serializationContext);
            var equationNode = SerializerRepository.CreateElement(SimModelSchemaConstants.Equation);

            equationNode.Value = explicitFormulaExport.Equation;
            formulaNode.Add(equationNode);
            addReferenceNodeFor(formulaNode, explicitFormulaExport.ReferenceList, SimModelSchemaConstants.ReferenceList, SimModelSchemaConstants.Reference);

            return(formulaNode);
        }
Beispiel #8
0
        protected override XElement TypedSerialize(OutputIntervalExport objectToSerialize, SimModelSerializationContext serializationContext)
        {
            var element = base.TypedSerialize(objectToSerialize, serializationContext);

            element.AddAttribute("distribution", "Uniform");
            return(element);
        }
        protected override XElement TypedSerialize(TableFormulaWithXArgumentExport tableFormulaWithXArgumentExport, SimModelSerializationContext serializationContext)
        {
            var formulaNode = base.TypedSerialize(tableFormulaWithXArgumentExport, serializationContext);

            var tableObjectNode = SerializerRepository.CreateElement(SimModelSchemaConstants.TableObject);

            tableObjectNode.AddAttribute(SimModelSchemaConstants.Id, tableFormulaWithXArgumentExport.TableObjectId);
            formulaNode.Add(tableObjectNode);

            var xArgumentObject = SerializerRepository.CreateElement(SimModelSchemaConstants.XArgumentObject);

            xArgumentObject.AddAttribute(SimModelSchemaConstants.Id, tableFormulaWithXArgumentExport.XArgumentObjectId);
            formulaNode.Add(xArgumentObject);

            return(formulaNode);
        }
        protected override XElement TypedSerialize(SolverSettingsExport objectToSerialize, SimModelSerializationContext serializationContext)
        {
            var node = base.TypedSerialize(objectToSerialize, serializationContext);

            addAsElement(node, objectToSerialize, x => x.H0);
            addAsElement(node, objectToSerialize, x => x.HMax);
            addAsElement(node, objectToSerialize, x => x.HMin);
            addAsElement(node, objectToSerialize, x => x.AbsTol);
            addAsElement(node, objectToSerialize, x => x.MxStep);
            addAsElement(node, objectToSerialize, x => x.RelTol);
            addAsElement(node, objectToSerialize, x => x.UseJacobian);
            return(node);
        }