Error while executing a c++ umat in Abaqus

  abaqus, c++

This is a simple Linear elastic umat written in c++.When i try to run a abaqus job for a simple model using the below code, Abaqus give me the following error

"Problem during linking – Abaqus/Standard User Subroutines. This error may be due to a mismatch in the Abaqus user subroutine arguments. These arguments sometimes change from release to release, so user subroutines used with a previous release of Abaqus may need to be adjusted."

extern "C" void umat_(double *stress, double *statev, double *ddsdde, double *sse, double *spd, 
                double *scd, double *rpl, double *ddsddt, double *drplde, double *drpldt, double *stran, 
                double *dstran, double *time, double *dtime, double *temp, double *dtemp, double *predef, 
                double *dpred, char *cmname, int *ndi, int *nshr, int *ntens, int *nstatv, double *props, int *nprops, 
                double *coords, double *drot, double *pnewdt, double *celent, double *dfgrd0, 
                double *dfgrd1, int *noel, int *npt, int *layer, int *kspt, int *jstep, int *kinc)
{   

double E = props[0]; //210000
double NU = props[1]; //0.3
double G = E/2.0/(1.0 + NU); //80769,23
double LAMBDA = 2.0*G*NU/(1.0 - 2.0*NU);//121153,85
double eps [6];
double eps_trace;

// Update strain
for (int i = 0; i < 6; i++)
{
    eps[i] = stran[i] + dstran[i];  
}

eps_trace = eps[0] + eps[1] + eps[2];

//Calculation of the stress
for(int i = 0; i < 3; i++)
{
    stress[i] = LAMBDA*eps_trace + 2.0*G*eps[i];
    stress[i+3] = G*eps[i+3];
}
}

Source: Windows Questions C++

LEAVE A COMMENT