C/C++ example for GetCurrentEntityName

 

#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];

}