;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 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)))
)