Hello everyone!!,
I am currently working on developing a topology optimization for heat conduction and generating the following input file for each element to extract the element conductivity matrix:
*Node
1, 0.00000000E+00, 1.00000000E+00, 0.00000000E+00
2, 0.00000000E+00, 0.00000000E+00, 0.00000000E+00
3, 1.00000000E+00, 0.00000000E+00, 0.00000000E+00
4, 1.00000000E+00, 1.00000000E+00, 0.00000000E+00
*Element, Type=CPS4, Elset=Single_element
1, 1, 2, 3, 4
*MATERIAL, Name=MAT
*ELASTIC
1.0, 0.3
*DENSITY
1.0
*CONDUCTIVITY
1.0
*SPECIFIC HEAT
1.0
*SOLID SECTION, ELSET=Single_element, Material=MAT
1.0
*STEP, Inc=100
*HEAT TRANSFER, STEADY STATE
1, 1, 1E-05, 1E+30
*EL PRINT, Elset=Single_element
EVOL
*END STEP
*STEP
*HEAT TRANSFER,SOLVER=MATRIXSTORAGE,STORAGE=YES
*END STEP
The benchmark element conductivity matrix for a 1x1 square domain is:
Conductivity_matrix = np.array([[2/3 , -1/6, -1/3, -1/6],
[-1/6, 2/3, -1/6, -1/3],
[-1/3, -1/6, 2/3, -1/6],
[-1/6, -1/3, -1/6, 2/3]])
However, when running the above input file, the resulting conductivity matrix is:
Conductivity_matrix = np.array([[0.77777778, -0.11111111, -0.30555556, -0.11111111],
[-0.11111111, 0.77777778, -0.11111111, -0.30555556],
[-0.30555556, -0.11111111, 0.77777778, -0.11111111],
[-0.11111111, -0.30555556, -0.11111111, 0.77777778]])
This result doesn’t match the benchmark. If the specific heat is set to zero, the conductivity matrix aligns closely with the benchmark.
Could someone explain how the specific heat parameter affects the conductivity matrix? Is there a way to obtain the correct conductivity matrix without setting specific heat to zero?
Thanks in advance!!
Anoop