Skip to content
Snippets Groups Projects
  • Kurt A. O'Hearn's avatar
    f144ed9a
    PG-PuReMD: merge changes from sPuReMD and PuReMD for validation work for... · f144ed9a
    Kurt A. O'Hearn authored
    PG-PuReMD: merge changes from sPuReMD and PuReMD for validation work for simulation accuracy. Small correction to lone pair energy calculation. PuReMD: code formatting changes to better align with sPuReMD. sPuReMD: fix issue with valence angle calculations not setting list indices under certain sitations (taking previous continue statement missed index assignment).
    f144ed9a
    History
    PG-PuReMD: merge changes from sPuReMD and PuReMD for validation work for...
    Kurt A. O'Hearn authored
    PG-PuReMD: merge changes from sPuReMD and PuReMD for validation work for simulation accuracy. Small correction to lone pair energy calculation. PuReMD: code formatting changes to better align with sPuReMD. sPuReMD: fix issue with valence angle calculations not setting list indices under certain sitations (taking previous continue statement missed index assignment).
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
bond_orders.h 2.53 KiB
/*----------------------------------------------------------------------
  PuReMD - Purdue ReaxFF Molecular Dynamics Program

  Copyright (2010) Purdue University
  Hasan Metin Aktulga, haktulga@cs.purdue.edu
  Joseph Fogarty, jcfogart@mail.usf.edu
  Sagar Pandit, pandit@usf.edu
  Ananth Y Grama, ayg@cs.purdue.edu

  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public License as
  published by the Free Software Foundation; either version 2 of
  the License, or (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  See the GNU General Public License for more details:
  <http://www.gnu.org/licenses/>.
  ----------------------------------------------------------------------*/

#ifndef __BOND_ORDERS_H_
#define __BOND_ORDERS_H_

#include "reax_types.h"


typedef struct
{
    real C1dbo;
    real C2dbo;
    real C3dbo;
    real C1dbopi;
    real C2dbopi;
    real C3dbopi;
    real C4dbopi;
    real C1dbopi2;
    real C2dbopi2;
    real C3dbopi2;
    real C4dbopi2;
    real C1dDelta;
    real C2dDelta;
    real C3dDelta;
} dbond_coefficients;


#ifdef __cplusplus
extern "C" {
#endif

void Add_dBond_to_Forces( int, int, reax_system*, simulation_data*,
        storage*, reax_list** );

void Add_dBond_to_Forces_NPT( int, int, reax_system*, simulation_data*,
        storage*, reax_list** );

int BOp( storage * const, reax_list * const, real, int, int, int,
        ivec * const, real, rvec * const, int,
        single_body_parameters const * const, single_body_parameters const * const,
        two_body_parameters const * const );

void BO( reax_system * const, control_params * const, simulation_data * const,
        storage * const, reax_list ** const, output_controls * const );

#ifdef TEST_FORCES
void Add_dBO( reax_system * const, reax_list ** const,
        int, int, real, rvec * const );

void Add_dBOpinpi2( reax_system * const, reax_list ** const,
        int, int, real, real, rvec * const, rvec * const );

void Add_dBO_to_Forces( reax_system * const, reax_list ** const,
        int, int, real );

void Add_dBOpinpi2_to_Forces( reax_system * const, reax_list ** const,
        int, int, real, real );

void Add_dDelta( reax_system * const, reax_list ** const, int, real,
        rvec * const );

void Add_dDelta_to_Forces( reax_system * const, reax_list ** const,
        int, real );
#endif

#ifdef __cplusplus
}
#endif


#endif