22 December 2020 1 8K Report

I modified the Autodyn user subroutine mdeos_user_1.f90, wrote a custom ideal state equation, and injected energy through a custom energy deposition subroutineSUBROUTINE EXSIE3 (DSIE).

  • Size :20mm*10mm*10mm
  • Material: Air
  • Boundary conditions :set the surface velocity to 0 , so the volume does not change

Compared with the simulation results without using subroutines, it can be judged whether the simulation results are correct.

The result is that the internal energy and the pressure change are consistent, but the temperature when use subroutine didn't change.So How to write a user equation of state subroutine to get the correct temperature results?

result

The results are shown in the file.

temperature

pressure

internal energy

code

 SUBROUTINE SOLVE_EOS_USER_1 &    (P0    ,E0    ,ALPHA   ,DEN    ,DVV    ,DSIE   , &     Q     ,PP    ,EE    ,SOUND   ,IFAIL   ,IFSPHQ  , &     IF_SIMULTANEOUS   ,IFGAS   ,ARHO   ,BRHO   ,DADETA  ,DBDETA )    USE material    USE eos_user_1    USE wrapup    USE MATDEF      IMPLICIT NONE    INTEGER(INT1) :: IFAIL    INTEGER (INT4) :: IFSPHQ, IFLAG, IFGAS, IF_SIMULTANEOUS    REAL (REAL8)  :: ALPHA,  DEN,  DSIE,  DVV,   EE,   E0    REAL (REAL8)  ::   PP,   P0,   Q, SOUND,  ARHO,  BRHO    REAL (REAL8)  :: DADETA, DBDETA, EMU, BULK ,DDD    ! ************************************************************************      IF_SIMULTANEOUS = 1    EE=E0+DSIE-PP*DVV/DEN    PP=EE*(2.0/5.0)*DEN    SOUND=sqrt(1.4*PP/DEN)      DDD=SHCV      SHCV=717.599976    RETURN    END SUBROUTINE SOLVE_EOS_USER_1

 SUBROUTINE EXSIE3 (DSIE)    USE kindef    USE ijknow    USE locelm    USE material    USE matdef    USE cycvar         IMPLICIT NONE    REAL (REAL8)  ::  DSIE    DSIE=10000      RETURN   END SUBROUTINE EXSIE3 

Similar questions and discussions