58 #define EPSILON -0.0134783698072604 65 double influenceDistance;
90 static void calc_phi(
double* epsilon,
94 double* cutoff,
double r,
double* phi);
100 double* cutoff,
double r,
double* phi,
double* dphi);
106 double* cutoff,
double r,
double* phi,
double* dphi,
114 double* cutoff,
double r,
double* phi) {
119 ep = exp(-(*
C)*(r-*Rzero));
126 *phi = (*epsilon)*( -ep2 + 2.0*ep ) + *shift; }
135 double* cutoff,
double r,
double* phi,
double* dphi) {
140 ep = exp(-(*
C)*(r-*Rzero));
148 *phi = (*epsilon)*( -ep2 + 2.0*ep ) + *shift;
149 *dphi = 2.0*(*epsilon)*(*C)*( -ep + ep2 ); }
159 double* cutoff,
double r,
double* phi,
double* dphi,
165 ep = exp(-(*
C)*(r-*Rzero));
174 *phi = (*epsilon)*( -ep2 + 2.0*ep ) + *shift;
175 *dphi = 2.0*(*epsilon)*(*C)*( -ep + ep2 );
176 *d2phi = 2.0*(*epsilon)*(*C)*(*C)*(ep - 2.0*ep2); }
457 bufferPointer->influenceDistance =
CUTOFF;
458 bufferPointer->cutoff =
CUTOFF;
463 &(bufferPointer->influenceDistance));
467 &(bufferPointer->cutoff));
472 LOG_ERROR(
"Unable to successfully initialize model");
489 (
void **) &bufferPointer);
493 modelRefresh, &(bufferPointer->influenceDistance));
495 &(bufferPointer->cutoff));
507 (
void **) &bufferPointer);
524 modelComputeArgumentsCreate,
528 modelComputeArgumentsCreate,
532 modelComputeArgumentsCreate,
540 modelComputeArgumentsCreate,
545 modelComputeArgumentsCreate,
551 LOG_ERROR(
"Unable to successfully initialize compute arguments");
KIM_SupportStatus const KIM_SUPPORT_STATUS_optional
KIM_ComputeCallbackName const KIM_COMPUTE_CALLBACK_NAME_ProcessD2EDr2Term
KIM_ComputeArgumentName const KIM_COMPUTE_ARGUMENT_NAME_partialParticleEnergy
void KIM_ModelDestroy_GetModelBufferPointer(KIM_ModelDestroy const *const modelDestroy, void **const ptr)
KIM_LanguageName const KIM_LANGUAGE_NAME_c
KIM_ComputeArgumentName const KIM_COMPUTE_ARGUMENT_NAME_partialForces
int KIM_ModelCreate_SetComputePointer(KIM_ModelCreate *const modelCreate, KIM_LanguageName const languageName, func *const fptr)
struct KIM_ModelRefresh KIM_ModelRefresh
void KIM_ModelRefresh_GetModelBufferPointer(KIM_ModelRefresh const *const modelRefresh, void **const ptr)
static void calc_phi(double *epsilon, double *C, double *Rzero, double *shift, double *cutoff, double r, double *phi)
int KIM_ModelComputeArgumentsCreate_SetCallbackSupportStatus(KIM_ModelComputeArgumentsCreate *const modelComputeArgumentsCreate, KIM_ComputeCallbackName const computeCallbackName, KIM_SupportStatus const supportStatus)
KIM_TemperatureUnit const KIM_TEMPERATURE_UNIT_unused
static int compute_arguments_create(KIM_ModelCompute const *const modelCompute, KIM_ModelComputeArgumentsCreate *const modelComputeArgumentsCreate)
KIM_SpeciesName const KIM_SPECIES_NAME_Ar
KIM_TimeUnit const KIM_TIME_UNIT_unused
static void calc_phi_dphi(double *epsilon, double *C, double *Rzero, double *shift, double *cutoff, double r, double *phi, double *dphi)
void KIM_ModelCreate_SetNeighborListCutoffsPointer(KIM_ModelCreate *const modelCreate, int const numberOfCutoffs, double const *const cutoffs)
void KIM_ModelRefresh_SetNeighborListCutoffsPointer(KIM_ModelRefresh *const modelRefresh, int const numberOfCutoffs, double const *const cutoffs)
int KIM_ModelCreate_SetComputeArgumentsCreatePointer(KIM_ModelCreate *const modelCreate, KIM_LanguageName const languageName, func *const fptr)
struct KIM_ModelDestroy KIM_ModelDestroy
void KIM_ModelCreate_SetModelBufferPointer(KIM_ModelCreate *const modelCreate, void *const ptr)
static int compute(void *km)
int KIM_ModelCreate_SetRefreshPointer(KIM_ModelCreate *const modelCreate, KIM_LanguageName const languageName, func *const fptr)
int KIM_ModelComputeArgumentsCreate_SetArgumentSupportStatus(KIM_ModelComputeArgumentsCreate *const modelComputeArgumentsCreate, KIM_ComputeArgumentName const computeArgumentName, KIM_SupportStatus const supportStatus)
int KIM_ModelCreate_SetComputeArgumentsDestroyPointer(KIM_ModelCreate *const modelCreate, KIM_LanguageName const languageName, func *const fptr)
#define LOG_ERROR(message)
int KIM_ModelCreate_SetDestroyPointer(KIM_ModelCreate *const modelCreate, KIM_LanguageName const languageName, func *const fptr)
struct KIM_ModelComputeArgumentsCreate KIM_ModelComputeArgumentsCreate
void KIM_ModelCreate_SetInfluenceDistancePointer(KIM_ModelCreate *const modelCreate, double *const influenceDistance)
int KIM_ModelCreate_SetUnits(KIM_ModelCreate *const modelCreate, KIM_LengthUnit const lengthUnit, KIM_EnergyUnit const energyUnit, KIM_ChargeUnit const chargeUnit, KIM_TemperatureUnit const temperatureUnit, KIM_TimeUnit const timeUnit)
int KIM_ModelCreate_SetModelNumbering(KIM_ModelCreate *const modelCreate, KIM_Numbering const numbering)
#define LOG_INFORMATION(message)
int KIM_ModelCreate_SetSpeciesCode(KIM_ModelCreate *const modelCreate, KIM_SpeciesName const speciesName, int const code)
struct KIM_ModelComputeArgumentsDestroy KIM_ModelComputeArgumentsDestroy
KIM_EnergyUnit const KIM_ENERGY_UNIT_eV
void KIM_ModelRefresh_SetInfluenceDistancePointer(KIM_ModelRefresh *const modelRefresh, double *const influenceDistance)
KIM_ChargeUnit const KIM_CHARGE_UNIT_unused
KIM_ComputeArgumentName const KIM_COMPUTE_ARGUMENT_NAME_partialEnergy
int model_create(KIM_ModelCreate *const modelCreate, KIM_LengthUnit const requestedLengthUnit, KIM_EnergyUnit const requestedEnergyUnit, KIM_ChargeUnit const requestedChargeUnit, KIM_TemperatureUnit const requestedTemperatureUnit, KIM_TimeUnit const requestedTimeUnit)
KIM_ComputeCallbackName const KIM_COMPUTE_CALLBACK_NAME_ProcessDEDrTerm
struct KIM_ModelCreate KIM_ModelCreate
static int compute_arguments_destroy(KIM_ModelCompute const *const modelCompute, KIM_ModelComputeArgumentsDestroy *const modelComputeArgumentsDestroy)
static int model_refresh(KIM_ModelRefresh *const modelRefresh)
KIM_LengthUnit const KIM_LENGTH_UNIT_A
static int model_destroy(KIM_ModelDestroy *const modelDestroy)
static void calc_phi_d2phi(double *epsilon, double *C, double *Rzero, double *shift, double *cutoff, double r, double *phi, double *dphi, double *d2phi)
KIM_Numbering const KIM_NUMBERING_zeroBased
struct KIM_ModelCompute KIM_ModelCompute