Implementation of Linear Viscoelasticity Model in Pdlammps
Implementation of Linear Viscoelasticity Model in Pdlammps
Implementation of Linear Viscoelasticity Model in Pdlammps
in PDLAMMPS
R. Rahman and J.T. Foster
Center for Simulation, Visualization and
Real-time prediction (SiViRt)
The University of Texas at San Antonio
San Antonio, TX 78249
Email: [email protected],
[email protected]
September 12, 2014
1 Introduction
In this documentation the discussion is focused on implementation of linear
viscoelasticity model in PDLAMMPS [PLPS08],[Pli95]. The peridynamic
viscoelasticity formulation (and its time integration) used in this work was
developed by John Mitchell at Sandia National Lab [Mit11]. In the PD-
LAMMPS a new pair-peri-style is added in order to incorporate the viscoelas-
ticity. The new source codes pair-peri-ves.cpp and pair-peri-ves.h are introduced. Besi
peri-neigh.h are modified for introducing viscoelasticity.
1
Total extension: e (Y ) = ei (Y ) + ed (Y ) (1)
θ (Y ) |X|
Volumetric extension: ei (Y ) = (2)
3
θ (Y ) |X|
Deviatoric extension: ed (Y ) = |Y | − |X| − (3)
3
Here, |Y |, |X| and θ are the reference state, defromation state and dilation
state, respectively. The deviatoric extension ca be written as:
ω+ ω−
tdn+1 = 15 (1 − λ) µ + eν (xj − xi ) Vj
m (i) m (i)
ω+ ω−
e − edb
+ 15µλ + n+1 ν (xj − xi ) Vj (7)
m (i) m (i)
Here, Vj , edb
n+1 , ν (xj − xi ) are volume fraction, back extension at current
timestep and particle volume scaling factor, respectively. λ varies within zero
to one. The back extension at current state can be calculated as 2 [Mit11]:
2
https://software.sandia.gov/trac/peridigm/
2
edb d db
n+1 = (1 − decay) en + decay · en + β∆e
d
(8)
∆ed = edn+1 − edn (9)
dt
decay = exp − (10)
τb
τb
β = 1 − (1 − decay) (11)
dt
At any current timestep (i.e. n + 1), for a bond between ith and j th PD
nodes, the deviatoric extension is stored on the fly. The value is stored in
deviatorextension[i][j]. Similarly, the back extension is also stored in
deviatorBackextension[i][j]. Both of the arrays initialized with zero.
In the fix_peri_neigh.cpp an integer flag based switch is used in order
to trigger the LPS, PMB or VES (Viscoelastic solid) models. The class
FixPeriNeigh looks like:
3
}
else
{
isVES=1;
}
restart_global = 1;
restart_peratom = 1;
first = 1;
maxpartner = 1;
npartner = NULL;
partner = NULL;
if (isVES == 1){
deviatorextention = NULL;
deviatorBackextention = NULL;
}
r0 = NULL;
vinter = NULL;
wvolume = NULL;
grow_arrays(atom->nmax);
atom->add_callback(0);
atom->add_callback(1);
comm_forward = 1;
}
4
There are three integer flags isPMB , isLPS, isVES .PMB, LPS and VES
stand for bond based PD model, linear peridynamic solid and viscoelastic
peridynamic solid, respectively. Based on the input file any one of these flags
are set to one based on:
At any current step the total scalar force state t is calculated and the
current deviatoric extension and back extension are stored in order to use
in next step. λ and time constant τb are material dependent parameters.
These are defined in the LAMMPS input script. This will be discussed in
the next section. The new LAMMPS pair style {pair_peri_ves}is defined
with addition arguments in the input file (λ and τb ):
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
5
int ilo,ihi,jlo,jhi;
force->bounds(arg[0],atom->ntypes,ilo,ihi);
force->bounds(arg[1],atom->ntypes,jlo,jhi);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
bulkmodulus[i][j] = bulkmodulus_one;
shearmodulus[i][j] = shearmodulus_one;
cut[i][j] = cut_one;
s00[i][j] = s00_one;
alpha[i][j] = alpha_one;
m_lambdai[i][j] = mlambdai_one; // New
m_taubi[i][j] = mtaui_one; // New
setflag[i][j] = 1;
count++;
}
}
pair_style peri/ves
pair_coeff i j Bulk_modulus Shear_modulus s00 alpha lambda tau
6
The LAMMPS compilation with the VES is same. The updated Install.sh
should be used.
4 Conclusion
The LAMMPS implementation of peridynamic viscoelastic model is still
in beta phase. Any bug or issue can be informed to the authors through
[email protected] .
5 Acknowledgment
The authors are thankful to Steve Plimpton and S. M. Raiyan Kabir for
their useful suggestion regarding the code development for PDLAMMPS im-
plementation of viscoelasticity.
References
[Mit11] John A. Mitchell. A nonlocal, ordinary, state-based viscoelas-
ticity model for peridynamics. Technical Report SAND2011-
8064, Sandia National Laboratories, May 2011. Available at
https://cfwebprod.sandia.gov/cfdocs/CompResearch/docs/SAND2011-Viscoelast