Search in sources :

Example 1 with Variable

use of com.opensimulationplatform.core.model.modeldescription.Variable in project osp-validator by open-simulation-platform.

the class ValidateModelDescriptionDataModel method main.

public static void main(String[] args) {
    ModelDescription modelDescription = new ModelDescription();
    Unit unit = new Unit();
    unit.setExponent(Unit.Exponent.KILOGRAM, 1);
    Variable v1 = new Variable();
    v1.setCausality(Variable.Causality.OUTPUT);
    v1.setType(Variable.Type.REAL);
    v1.setName("v1");
    v1.setUnit(unit);
    Variable v2 = new Variable();
    v2.setCausality(Variable.Causality.OUTPUT);
    v2.setType(Variable.Type.REAL);
    v2.setName("v2");
    v2.setUnit(unit);
    Variable v3 = new Variable();
    v3.setCausality(Variable.Causality.INPUT);
    v3.setType(Variable.Type.REAL);
    v3.setName("v3");
    v3.setUnit(unit);
    Variable v4 = new Variable();
    v4.setCausality(Variable.Causality.INPUT);
    v4.setType(Variable.Type.REAL);
    v4.setName("v4");
    v4.setUnit(unit);
    Force force = new Force();
    force.setName("force");
    force.setVariables(Arrays.asList(v1, v2));
    LinearVelocity linearVelocity = new LinearVelocity();
    linearVelocity.setName("linearVelocity");
    linearVelocity.setVariables(Arrays.asList(v3, v4));
    LinearMechanicalPort linearMechanicalPort = new LinearMechanicalPort();
    linearMechanicalPort.setName("linearMechanicalPort");
    linearMechanicalPort.setForce(force);
    linearMechanicalPort.setLinearVelocity(linearVelocity);
    modelDescription.getUnits().add(unit);
    modelDescription.getVariables().addAll(Arrays.asList(v1, v2, v3, v4));
    modelDescription.getForces().add(force);
    modelDescription.getLinearVelocities().add(linearVelocity);
    modelDescription.getLinearMechanicalPorts().add(linearMechanicalPort);
    ModelDescriptionValidator validator = new ModelDescriptionValidator();
    List<ValidationDiagnostic<Object>> diagnostics = validator.validate(modelDescription);
    for (ValidationDiagnostic<Object> diagnostic : diagnostics) {
        System.out.println("Message: " + diagnostic.getErrorMessage());
        System.out.println("Object: " + diagnostic.getValidatedObject());
    }
}
Also used : LinearVelocity(com.opensimulationplatform.core.model.modeldescription.variablegroup.linearvelocity.LinearVelocity) Variable(com.opensimulationplatform.core.model.modeldescription.Variable) Force(com.opensimulationplatform.core.model.modeldescription.variablegroup.force.Force) ModelDescriptionValidator(com.opensimulationplatform.core.validation.modeldescription.ModelDescriptionValidator) LinearMechanicalPort(com.opensimulationplatform.core.model.modeldescription.variablegroup.linearmechanicalport.LinearMechanicalPort) ValidationDiagnostic(com.opensimulationplatform.core.validation.ValidationDiagnostic) ModelDescription(com.opensimulationplatform.core.model.modeldescription.ModelDescription) Unit(com.opensimulationplatform.core.model.modeldescription.Unit)

Example 2 with Variable

use of com.opensimulationplatform.core.model.modeldescription.Variable in project osp-validator by open-simulation-platform.

the class OspOwlBuilder method variableExistsInConnection.

private boolean variableExistsInConnection(Variable variable) {
    Collection<VariableConnection> variableConnections = context.variableConnections.values();
    for (VariableConnection variableConnection : variableConnections) {
        Variable variableA = variableConnection.getVariableA();
        Variable variableB = variableConnection.getVariableB();
        if (variableA.equals(variable) || variableB.equals(variable)) {
            return true;
        }
    }
    return false;
}
Also used : Variable(com.opensimulationplatform.core.model.modeldescription.Variable) VariableConnection(com.opensimulationplatform.core.model.systemstructure.VariableConnection)

Example 3 with Variable

use of com.opensimulationplatform.core.model.modeldescription.Variable in project osp-validator by open-simulation-platform.

the class OspOwlBuilder method removeNakedVariablesFromOntology.

private void removeNakedVariablesFromOntology() {
    for (Map.Entry<OWLIndividual, Variable> entries : context.variables.entrySet()) {
        OWLIndividual variableIndividual = entries.getKey();
        Variable variable = entries.getValue();
        Optional<Map.Entry<OWLIndividual, Name>> nameOptional = context.names.entrySet().stream().filter(e -> e.getValue().equals(variable.getName())).findFirst();
        if (!variableExistsInVariableGroup(variable) && !variableExistsInConnection(variable)) {
            OWLEntityRemover remover = new OWLEntityRemover(context.owl.manager, Collections.singleton(context.owl.ontology));
            remover.visit((OWLNamedIndividual) variableIndividual);
            if (nameOptional.isPresent()) {
                OWLIndividual nameIndividual = nameOptional.get().getKey();
                remover.visit((OWLNamedIndividual) nameIndividual);
            }
            context.owl.manager.applyChanges(remover.getChanges());
            context.individuals.remove(variableIndividual);
            if (nameOptional.isPresent()) {
                OWLIndividual nameIndividual = nameOptional.get().getKey();
                context.individuals.remove(nameIndividual);
            }
        }
    }
}
Also used : Name(com.opensimulationplatform.core.model.modeldescription.Name) InferenceType(org.semanticweb.owlapi.reasoner.InferenceType) VariableGroup(com.opensimulationplatform.core.model.modeldescription.variablegroup.VariableGroup) VariableConnection(com.opensimulationplatform.core.model.systemstructure.VariableConnection) OWLIndividual(org.semanticweb.owlapi.model.OWLIndividual) java.util(java.util) OWLNamedIndividual(org.semanticweb.owlapi.model.OWLNamedIndividual) Variable(com.opensimulationplatform.core.model.modeldescription.Variable) OWLEntityRemover(org.semanticweb.owlapi.util.OWLEntityRemover) ValidationError(com.opensimulationplatform.gen.owl.model.OntologyClasses.ValidationError) OWLClass(org.semanticweb.owlapi.model.OWLClass) Variable(com.opensimulationplatform.core.model.modeldescription.Variable) OWLEntityRemover(org.semanticweb.owlapi.util.OWLEntityRemover) OWLIndividual(org.semanticweb.owlapi.model.OWLIndividual)

Example 4 with Variable

use of com.opensimulationplatform.core.model.modeldescription.Variable in project osp-validator by open-simulation-platform.

the class ValidateSystemStructureDataModel method getModelDescription.

private static ModelDescription getModelDescription(Variable.Causality causalityA, Variable.Causality causalityB) {
    ModelDescription modelDescription = new ModelDescription();
    Unit unit = new Unit();
    unit.setExponent(Unit.Exponent.KILOGRAM, 1);
    Variable v1 = new Variable();
    v1.setCausality(causalityA);
    v1.setType(Variable.Type.REAL);
    v1.setName("v1");
    v1.setUnit(unit);
    Variable v2 = new Variable();
    v2.setCausality(causalityA);
    v2.setType(Variable.Type.REAL);
    v2.setName("v2");
    v2.setUnit(unit);
    Variable v3 = new Variable();
    v3.setCausality(causalityB);
    v3.setType(Variable.Type.REAL);
    v3.setName("v3");
    v3.setUnit(unit);
    Variable v4 = new Variable();
    v4.setCausality(causalityB);
    v4.setType(Variable.Type.REAL);
    v4.setName("v4");
    v4.setUnit(unit);
    Variable v5 = new Variable();
    v5.setCausality(causalityA);
    v5.setType(Variable.Type.REAL);
    v5.setName("v5");
    v5.setUnit(unit);
    Force force = new Force();
    force.setName("force");
    force.setVariables(Arrays.asList(v1, v2));
    LinearVelocity linearVelocity = new LinearVelocity();
    linearVelocity.setName("linearVelocity");
    linearVelocity.setVariables(Arrays.asList(v3, v4));
    LinearMechanicalPort linearMechanicalPort = new LinearMechanicalPort();
    linearMechanicalPort.setName("linearMechanicalPort");
    linearMechanicalPort.setForce(force);
    linearMechanicalPort.setLinearVelocity(linearVelocity);
    modelDescription.getUnits().add(unit);
    modelDescription.getVariables().addAll(Arrays.asList(v1, v2, v3, v4, v5));
    modelDescription.getForces().add(force);
    modelDescription.getLinearVelocities().add(linearVelocity);
    modelDescription.getLinearMechanicalPorts().add(linearMechanicalPort);
    return modelDescription;
}
Also used : LinearVelocity(com.opensimulationplatform.core.model.modeldescription.variablegroup.linearvelocity.LinearVelocity) Variable(com.opensimulationplatform.core.model.modeldescription.Variable) Force(com.opensimulationplatform.core.model.modeldescription.variablegroup.force.Force) LinearMechanicalPort(com.opensimulationplatform.core.model.modeldescription.variablegroup.linearmechanicalport.LinearMechanicalPort) ModelDescription(com.opensimulationplatform.core.model.modeldescription.ModelDescription) Unit(com.opensimulationplatform.core.model.modeldescription.Unit)

Example 5 with Variable

use of com.opensimulationplatform.core.model.modeldescription.Variable in project osp-validator by open-simulation-platform.

the class SystemStructureUtil method getParentVariableGroupConnection.

public static Optional<VariableGroupConnection> getParentVariableGroupConnection(SystemStructure systemStructure, VariableConnection variableConnection) {
    for (VariableGroupConnection variableGroupConnection : systemStructure.getVariableGroupConnections()) {
        List<Variable> variablesA = variableGroupConnection.getVariableGroupA().getVariables();
        List<Variable> variablesB = variableGroupConnection.getVariableGroupB().getVariables();
        Variable vcVarA = variableConnection.getVariableA();
        Variable vcVarB = variableConnection.getVariableB();
        for (int i = 0; i < variablesA.size(); i++) {
            Variable vgcVarA = variablesA.get(i);
            Variable vgcVarB = variablesB.get(i);
            if (vcVarA.equals(vgcVarA) && vcVarB.equals(vgcVarB)) {
                return Optional.of(variableGroupConnection);
            }
        }
    }
    return Optional.empty();
}
Also used : Variable(com.opensimulationplatform.core.model.modeldescription.Variable) VariableGroupConnection(com.opensimulationplatform.core.model.systemstructure.VariableGroupConnection)

Aggregations

Variable (com.opensimulationplatform.core.model.modeldescription.Variable)237 Test (org.junit.Test)185 ValidationDiagnostic (com.opensimulationplatform.core.validation.ValidationDiagnostic)183 Unit (com.opensimulationplatform.core.model.modeldescription.Unit)145 ModelDescription (com.opensimulationplatform.core.model.modeldescription.ModelDescription)61 Force (com.opensimulationplatform.core.model.modeldescription.variablegroup.force.Force)34 LinearVelocity (com.opensimulationplatform.core.model.modeldescription.variablegroup.linearvelocity.LinearVelocity)27 Simulator (com.opensimulationplatform.core.model.systemstructure.Simulator)23 Pressure (com.opensimulationplatform.core.model.modeldescription.variablegroup.pressure.Pressure)18 Torque (com.opensimulationplatform.core.model.modeldescription.variablegroup.torque.Torque)18 Voltage (com.opensimulationplatform.core.model.modeldescription.variablegroup.voltage.Voltage)18 VariableType (com.opensimulationplatform.modeldescription.xml.model.VariableType)17 VariableConnection (com.opensimulationplatform.core.model.systemstructure.VariableConnection)16 AngularDisplacement (com.opensimulationplatform.core.model.modeldescription.variablegroup.angulardisplacement.AngularDisplacement)14 AngularVelocity (com.opensimulationplatform.core.model.modeldescription.variablegroup.angularvelocity.AngularVelocity)14 Charge (com.opensimulationplatform.core.model.modeldescription.variablegroup.charge.Charge)14 Current (com.opensimulationplatform.core.model.modeldescription.variablegroup.current.Current)14 LinearDisplacement (com.opensimulationplatform.core.model.modeldescription.variablegroup.lineardisplacement.LinearDisplacement)14 LinearMechanicalPort (com.opensimulationplatform.core.model.modeldescription.variablegroup.linearmechanicalport.LinearMechanicalPort)14 Volume (com.opensimulationplatform.core.model.modeldescription.variablegroup.volume.Volume)14