#include "stdafx.h" #include "DllFunc.h" #include<stdlib.h> #include<stdio.h> #include<string.h>
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, ucf; int finish, convergenceFlag; char sName[256]; int nName; int idDLL;
getcurrententityname(sName,&nName,&errflg);
// Assign Impact Parameters mkid[0] = (int) upar[0]; mkid[1] = (int) upar[1]; mkid[2] = (int) upar[2]; akispl_id = (int) upar[3];
if( strncmp(sName,"Axial1",nName) == 0) { sysfnc("DX", mkid, 3, &disp, &errflg); rd_akispl(disp, 0, akispl_id, 0, value, &errflg); } else { sysfnc("DY", mkid, 3, &disp, &errflg); rd_akispl(disp, 0, akispl_id, 0, value, &errflg); }
// Assign the Returned Value *result = value[0]; } |