Material properties generally depend on some state variables which describes the current thermodynamical state of the material.

# A first example: uranium dioxide Young modulus

A possible implementation of the Young modulus of uranium dioxide is:

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27  @Parser MaterialLaw; // treating a material property @Material UO2; // material name @Law YoungModulus_Martin1989; // name of the material property @Author T. Helfer; // author name @Date 04/04/2014; // implentation date @Description // detailled description { The elastic constants of polycrystalline UO2 and (U, Pu) mixed oxides: a review and recommendations Martin, DG High Temperatures. High Pressures, 1989 } @Output E; // output of the material property E.setGlossaryName("YoungModulus"); @Input T,f; // inputs of the material property T.setGlossaryName("Temperature"); f.setGlossaryName("Porosity"); @PhysicalBounds T in [0:*[; // Temperature is positive @PhysicalBounds f in [0:1.]; // Porosity is positive and lower than one @Bounds T in [273.15:2610.15]; // Validity range @Function // implementation body { E = 2.2693e11*(1.-2.5*f)*(1-6.786e-05*T-4.23e-08*T*T); }

The code computing the Young modulus, introduced by the @Function keyword on line 24, is reasonably closed to the mathematical expression of the material property: $E(T,f)=2.2693\,10^{11}\,(1-2.5\,f)\,(1-6.786\,10^{-5}\,T-4.23\,10^{-8}\,T^{2})$