C/C++ example for BISTOP

 

#include "stdafx.h"

#include "DllFunc.h"

 

BISTOP_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. (Input)

           //   upar   : Parameters defined by user. (Input)

           //   npar   : Number of user parameters. (Input)

           //   jflag  : When RD/Solver evaluates a Jacobian, the flag is true. (Input)

           //   iflag  : When RD/Solver initializes arrays, the flag is true. (Input)

           //   result : Returned axial force or torque value. (Output)

 

           // User Statement

   // Local Variable Definition

   double value[3],mkid[6],DY,VY;

   int id[2],errflg,i;

 

   // Assign Impact Parameters

   id[0] = (int)upar[0];

   id[1] = (int)upar[1];

 

   for(i=0;i<6;i++){

      mkid[i] = upar[i+2];

   }

 

   // Call the auxiliary subroutines for calculation

   sysfnc("DY",id,2,&DY,&errflg);

   sysfnc("VY",id,2,&VY,&errflg);

 

   rd_bistop(DY,VY,mkid[0],mkid[1],mkid[2],mkid[3],mkid[4],mkid[5],0,&value[0],&errflg);

 

   // Assign the Returned Value

   *result = value[0];

 

}