43 lines
908 B
C
43 lines
908 B
C
#ifndef interaction_h
|
|
#define interaction_h
|
|
|
|
#include <Python.h>
|
|
#include "structmember.h"
|
|
// XXX
|
|
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
|
|
#include <numpy/ndarraytypes.h>
|
|
#include <numpy/ufuncobject.h>
|
|
#include <stddef.h>
|
|
|
|
/*
|
|
* This is a quite generic force function mapping a
|
|
* distance to the magnitude of a force. The coefficients
|
|
* are an array of length 19 and the force function
|
|
* is given as:
|
|
*
|
|
* (c0 + c1*r + c2*r^2 + ... + c6*r^6) * c7 * exp(c8*(r - c9))
|
|
* + c10 * exp(c11 * (r - c12))
|
|
* + c13 * exp(c14 * (r - c15)^2)
|
|
* + c16 * exp(c17 * (r - c18)^2)
|
|
* */
|
|
static float
|
|
interaction_force_function
|
|
( float r
|
|
, float * coefficients);
|
|
|
|
static void
|
|
interaction_ufunc_float2D
|
|
( char ** args
|
|
, npy_intp * dimensions
|
|
, npy_intp * steps
|
|
, void * data);
|
|
|
|
static void
|
|
interaction_ufunc_force
|
|
( char ** args
|
|
, npy_intp * dimensions
|
|
, npy_intp * steps
|
|
, void ** data);
|
|
|
|
#endif
|