The user interface program will provide the solver routine with the following: 5 numbers of type integer: ------------------------ -the total number of elements -the total number of equivalenced nodes -the number of entries in the fixed temperature boundary array -the number of entries in the heat flux boundary array -the number of entries in the heat generation boundary array 5 pointers to arrays of type double: ---------------------------------- -pointer to the elements array[0]. -pointer to the fixed array[0]. -pointer to the flux array[0]. -pointer to the gen array[0]. -pointer to the nodal temp array[0]. ======================================================================= ----------------------------------------- input to the solver code - elements array ----------------------------------------- each Elements array entry contains: int element_id, int node1_id, int node2_id, int type_of_element, double resistance_value type 0 = conduction type 1 = convection type 2 = radiation eg. 1 1 2 0 1.00000000000000E+0001 2 2 3 0 1.00000000000000E+0001 3 2 4 0 1.00000000000000E+0001 4 2 5 0 1.00000000000000E+0001 ------------------------------------------------------ input to the solver code - fixed, flux, and gen arrays ------------------------------------------------------ each of these arrays contain entries as: int node_id, int type_of_node, double user_supplied_temperature type 0 = fixed type 1 = flux type 2 = gen eg. 1 0 1.00000000000000E+0002 3 0 0.00000000000000E+0000 4 0 0.00000000000000E+0000 5 0 0.00000000000000E+0000 ------------------------------------------------------ output from the solver code - nodal temperature array ------------------------------------------------------ each entry contains: int node_id, double calculated_temperature eg. 1 1.000000e+002 2 2.500000e+001 3 0.000000e+000 4 0.000000e+000 5 0.000000e+000 ======================================================================= if you prefer the OpenGL typedefs, then: int = GLuint double = GLdouble