From 4c576d3842dd71b700520f0c6740b35c795bebe8 Mon Sep 17 00:00:00 2001 From: sjplimp Date: Tue, 13 May 2008 21:44:17 +0000 Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@1789 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- src/fix_nph.cpp | 19 ++++++++++++++++++- src/fix_npt.cpp | 19 ++++++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/fix_nph.cpp b/src/fix_nph.cpp index 98b8fbb2f1..c754b3bd1d 100644 --- a/src/fix_nph.cpp +++ b/src/fix_nph.cpp @@ -136,7 +136,24 @@ FixNPH::FixNPH(LAMMPS *lmp, int narg, char **arg) : } else error->all("Illegal fix nph command"); } - // check for periodicity in controlled dimensions + // error checks + + if (press_couple == XY && (p_flag[0] == 0 || p_flag[1] == 0)) + error->all("Invalid fix npt command"); + if (press_couple == YZ && (p_flag[1] == 0 || p_flag[2] == 0)) + error->all("Invalid fix npt command"); + if (press_couple == XZ && (p_flag[0] == 0 || p_flag[2] == 0)) + error->all("Invalid fix npt command"); + + if (press_couple == XY && + (p_start[0] != p_start[1] || p_stop[0] != p_stop[1])) + error->all("Invalid fix npt command"); + if (press_couple == YZ && + (p_start[1] != p_start[2] || p_stop[1] != p_stop[2])) + error->all("Invalid fix npt command"); + if (press_couple == XZ && + (p_start[0] != p_start[2] || p_stop[0] != p_stop[2])) + error->all("Invalid fix npt command"); if (p_flag[0] && domain->xperiodic == 0) error->all("Cannot use fix nph on a non-periodic dimension"); diff --git a/src/fix_npt.cpp b/src/fix_npt.cpp index c7ede62785..1bb3de291a 100644 --- a/src/fix_npt.cpp +++ b/src/fix_npt.cpp @@ -142,8 +142,25 @@ FixNPT::FixNPT(LAMMPS *lmp, int narg, char **arg) : } else error->all("Illegal fix npt command"); } - // check for periodicity in controlled dimensions + // error checks + if (press_couple == XY && (p_flag[0] == 0 || p_flag[1] == 0)) + error->all("Invalid fix npt command"); + if (press_couple == YZ && (p_flag[1] == 0 || p_flag[2] == 0)) + error->all("Invalid fix npt command"); + if (press_couple == XZ && (p_flag[0] == 0 || p_flag[2] == 0)) + error->all("Invalid fix npt command"); + + if (press_couple == XY && + (p_start[0] != p_start[1] || p_stop[0] != p_stop[1])) + error->all("Invalid fix npt command"); + if (press_couple == YZ && + (p_start[1] != p_start[2] || p_stop[1] != p_stop[2])) + error->all("Invalid fix npt command"); + if (press_couple == XZ && + (p_start[0] != p_start[2] || p_stop[0] != p_stop[2])) + error->all("Invalid fix npt command"); + if (p_flag[0] && domain->xperiodic == 0) error->all("Cannot use fix npt on a non-periodic dimension"); if (p_flag[1] && domain->yperiodic == 0)