git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8221 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -23,13 +23,17 @@
|
||||
#include "atom.h"
|
||||
#include "update.h"
|
||||
#include "domain.h"
|
||||
#include "input.h"
|
||||
#include "modify.h"
|
||||
#include "respa.h"
|
||||
#include "variable.h"
|
||||
#include "error.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace FixConst;
|
||||
|
||||
enum{CHUTE,SPHERICAL,GRADIENT,VECTOR};
|
||||
enum{CONSTANT,EQUAL};
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
@ -40,26 +44,20 @@ FixGravityOMP::FixGravityOMP(LAMMPS *lmp, int narg, char **arg) :
|
||||
|
||||
void FixGravityOMP::post_force(int vflag)
|
||||
{
|
||||
// update direction of gravity vector if gradient style
|
||||
// update gravity due to variables
|
||||
|
||||
if (style == GRADIENT) {
|
||||
if (domain->dimension == 3) {
|
||||
double phi_current = degree2rad *
|
||||
(phi + (update->ntimestep - time_origin)*dt*phigrad*360.0);
|
||||
double theta_current = degree2rad *
|
||||
(theta + (update->ntimestep - time_origin)*dt*thetagrad*360.0);
|
||||
xgrav = sin(theta_current) * cos(phi_current);
|
||||
ygrav = sin(theta_current) * sin(phi_current);
|
||||
zgrav = cos(theta_current);
|
||||
} else {
|
||||
double theta_current = degree2rad *
|
||||
(theta + (update->ntimestep - time_origin)*dt*thetagrad*360.0);
|
||||
xgrav = sin(theta_current);
|
||||
ygrav = cos(theta_current);
|
||||
}
|
||||
xacc = magnitude*xgrav;
|
||||
yacc = magnitude*ygrav;
|
||||
zacc = magnitude*zgrav;
|
||||
if (varflag != CONSTANT) {
|
||||
modify->clearstep_compute();
|
||||
if (mstyle == EQUAL) magnitude = input->variable->compute_equal(mvar);
|
||||
if (vstyle == EQUAL) magnitude = input->variable->compute_equal(vvar);
|
||||
if (pstyle == EQUAL) magnitude = input->variable->compute_equal(pvar);
|
||||
if (tstyle == EQUAL) magnitude = input->variable->compute_equal(tvar);
|
||||
if (xstyle == EQUAL) magnitude = input->variable->compute_equal(xvar);
|
||||
if (ystyle == EQUAL) magnitude = input->variable->compute_equal(yvar);
|
||||
if (zstyle == EQUAL) magnitude = input->variable->compute_equal(zvar);
|
||||
modify->addstep_compute(update->ntimestep + 1);
|
||||
|
||||
set_acceleration();
|
||||
}
|
||||
|
||||
const double * const * const x = atom->x;
|
||||
|
||||
Reference in New Issue
Block a user