RecurDynUserSubRoutinewizard1_API void __cdecl axial_force (double time, double upar[], int npar, int jflag, int iflag, double* result) { using namespace rd_syscall; // Parameter Information // time: Simulation time of RD/Solver // upar: Parameters defined by user // npar: Number of user parameters // jflag: When RD/Solver evaluates a Jacobian, the flag is true. // iflag: When RD/Solver initializes arrays, the flag is true. // result: Returned value
// User statement // Local Varialbe Definition int mkid[3], errflg, akispl_id; double disp, value[3], stepsize; int finish, convergenceFlag; char sName[256]; int nName; int iString; int szTCHAR; unsigned long long szAllocated; int err = 0;
if( fCloseProgram == 1) { return; }
getcurrententityname(sName,&nName,&errflg); getstepsize( &stepsize ); getfinishflag( &finish ); getconvergenceflag( &convergenceFlag);
// Assign Impact Parameters mkid[0] = (int) upar[0]; mkid[1] = (int) upar[1]; mkid[2] = (int) upar[2]; akispl_id = (int) upar[3]; iString= (int) upar[4];; // 0 or 1
if(fInitial[iString] == 1) { fInitial[iString] = 0;
getstringlength(iString,&nString[iString],&errflg); szTCHAR = sizeof(char); szAllocated = (unsigned long long)nString[iString]*szTCHAR; pString[iString] = (char*)malloc(szAllocated);
getstring(iString,pString[iString],&nString[iString],&errflg); sprintf_s( FileName[iString], 255 ,"%s.txt",pString[iString]); err = fopen_s(&pFileOutput[iString], FileName[iString], "w"); }
if(finish == 1) { fCloseProgram = 1; free(pString[iString]); fclose(pFileOutput[iString]); } else { getstring(iString,pString[iString],&nString[iString],&errflg); fprintf(pFileOutput[iString],"%s\n",pString[iString]); }
if(convergenceFlag == 1) { convergenceFlag = 0; }
if( strncmp(sName,"Axial1",nName) == 0) { // Call the Auxiliary subroutines for Calculation sysfnc("DX", mkid, 3, &disp, &errflg); rd_akispl(disp, 0, akispl_id, 0, value, &errflg); } else { // Call the Auxiliary subroutines for Calculation sysfnc("DY", mkid, 3, &disp, &errflg); rd_akispl(disp, 0, akispl_id, 0, value, &errflg); }
// Assign the Returned Value *result = value[0]; } |
Variable Name |
Size |
Description |
IDstring |
double |
The input variable, the RMD id of string entity have to be set. |
string |
Char |
The output variable, the string value will be returned according to the RMD id of string entity. |
nstring |
int |
The input variable, the nstring have to be set with the size of string. |
error |
int |
The output variable, if there is value for this string, this value will be set with “TRUE”. |