Lemina
A molecular dynamics package for network, granular material and point particles with a range of interaction potential.
 
Loading...
Searching...
No Matches
ApplyLeesEdwardsBoundaryCond.c
Go to the documentation of this file.
1/*
2 * This file is part of Lamina.
3 *
4 * Lamina is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * Lamina is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with Lamina. If not, see <https://www.gnu.org/licenses/>.
16
17 Copyright (C) 2025 Harish Charan, University of Durham, UK
18
19 */
20
21#include <stdio.h>
22#include <math.h>
23#include "global.h"
24
26 int n;
27 for (n = 1; n <= nAtom; n++) {
28//PBC along x-direction
29 if(rx[n] >= regionH[1])
30 rx[n] -= region[1];
31 else if(rx[n] < -regionH[1])
32 rx[n] += region[1];
33
34//LEBC along y-direction
35 if(ry[n] >= regionH[2]){
37 if(rx[n] < -regionH[1]) rx[n] += region[1];
38 //vx[n] -= shearVelocity;
39 ry[n] -= region[2];
40 }else if(ry[n] < -regionH[2]){
42 if(rx[n] >= regionH[1]) rx[n] -= region[1];
43 //vx[n] += shearVelocity;
44 ry[n] += region[2];
45 }
46 }
47}
48
void ApplyLeesEdwardsBoundaryCond()
int nAtom
Definition global.h:24
double region[2+1]
double * rx
double shearDisplacement
double regionH[2+1]
Definition global.h:20
double * ry
Definition global.h:17