;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Materials ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-theory materials (mechanical-quantities thermal-quantities) ) (in-theory 'materials) ;;; Class Material (define-class material (?mat) "A material has the properties E-module and tensile-strength" :def (and (defined (material.e-module ?mat)) (defined (material.tensile-strength ?mat)) (defined (material.thermal-conductivity ?mat)) (defined (material.thermal-expansion ?mat)) )) (define-function material.e-module (?mat) :-> ?emod "e-module is a vector-quantity of dimension 3 with the pressure-dimension" :def (and (material ?mat) (e-module ?emod) ) ) (define-function material.tensile-strength (?mat) :-> ?x "tensile-strength is a scalar-quantity associated with the pressure dimension" :def (and (material ?mat) (tensile-strength ?x) ) ) (define-function material.thermal-conductivity (?mat) :-> ?x "thermal-conductivity is a scalar-quantity associated with the dimension (work/(area*temperature))" :def (and (material ?mat) (thermal-conductivity ?x) ) ) (define-function material.thermal-expansion (?mat) :-> ?x "tensile-strength is a scalar-quantity associated with the therm^-1-dimension" :def (and (material ?mat) (thermal-expansion ?x) ) ) ;;; Class Metal ;;; subclass of Material (define-class metal (?met) "A metal is a subclass of material. The material.e-module value of metal consists of three equally valued components, i.e. it is an isotropic material. They must be bounded by 1600MPa and 415300 MPa " :def (and (material ?met) (= (vector-component (material.e-module ?met) 1 e-module.basis) (vector-component (material.e-module ?met) 2 e-module.basis)) (= (vector-component (material.e-module ?met) 1 e-module.basis) (vector-component (material.e-module ?met) 3 e-module.basis)) (in-interval (vector-component (material.e-module ?met) 1 e-module.basis) (* 1600 megapascal) (* 415300 megapascal))) ) ;;; Class Non-Metal ;;; subclass of Material (define-class non-metal (?nmet) :def (and (material ?nmet) (not (metal ?nmet))) )