;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Extensions to standard-units-and-dimensions ;; dimensions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (in-theory 'standard-units-and-dimensions) (define-instance area-dimension (physical-dimension) "The physical dimension of an area is defined as length dimension squared." :axiom-def (= area-dimension (expt length-dimension 2))) (define-instance pressure-dimension (physical-dimension) "the physical dimension of pressure is defined as force over area" :axiom-def (= pressure-dimension (* force-dimension (expt area-dimension -1)))) (define-instance therm^-1-dimension (physical-dimension) :axiom-def (= therm^-1-dimension (expt thermodynamic-temperature-dimension -1))) (define-instance work-dimension (physical-dimension) :axiom-def (= work-dimension (* force-dimension length-dimension))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Extensions to standard-units-and-dimensions ;; units ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (in-theory 'standard-units-and-dimensions) (define-instance megapascal (unit-of-measure) " 1 megapascal = 10^6 pascal " := (* pascal 1000000) :axiom-def (dimension megapascal pressure-dimension) ) (define-instance watt (unit-of-measure) "unit of measure for measuring physical work" := (* newton meter) :axiom-def (dimension watt work-dimension) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Extension to physical quantities by intervals ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (in-theory 'physical-quantities) (define-relation in-interval (?x ?low ?up) "holds if : (?x >= ?low) and (?x <= ?up) and if their dimensions are compatible" :iff-def (and (compatible-quantities ?x ?low) (compatible-quantities ?x ?up) (=< ?x ?up) (>= ?x ?low))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Mechanical Quantities ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-theory mechanical-quantities (standard-units-and-dimensions scalar-quantities vector-quantities) "This theory is used to represent mechanical quantities such as e-module, ... which are extensions to the quantities already defined in the physical-quantities ontology" ) (in-theory 'mechanical-quantities) (define-class e-module (?x) "e-module is a sub-class of vector-quantity of the dimension 3, containing scalar quantities of the physical dimension pressure" :def (and (vector-quantity ?x) (vector.dimension ?x 3) (= (dimension ?x) pressure-dimension) ) ) (define-instance e-module.basis (orthonormal-basis) "represents the unit-basis for the e-module class" :axiom-def (basis.dimension e-module.basis 3) ) (define-class tensile-strength (?x) "tensile-strength is a subclass of scalar-quantities associated with the physical pressure-dimension" :def (and (scalar-quantity ?x) (dimension ?x pressure-dimension) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Thermal Quantities ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-theory thermal-quantities (standard-units-and-dimensions scalar-quantities) "This theory is used to represent thermal quantities such as thermal-expansion, ... which are extensions to the quantities already defined in the physical-quantities ontology" ) (in-theory 'thermal-quantities) (define-class thermal-expansion (?x) :def (and (scalar-quantity ?x) (dimension ?x therm^-1-dimension)) ) (define-class thermal-conductivity (?x) :def (and (scalar-quantity ?x) (dimension ?x (* work-dimension (expt area-dimension -1) therm^-1-dimension))) )