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