In the example, the shape of the indenter is specified by the displacement
boundary conditions which are set in routine user_bcon() in user_punch.f.
To change to a different shape you would need to change the code to fix
the displacement of the atoms based on the current value of "propfact"
(which would normally be the indentation depth) and the shape of the
indenter. For example, this (untested) code fragment, should make a wedge
indenter with a 90 degree opening:
propfact = GetLoadPropFact()
do i=1,numnp
xx=x(1,i)
yy=x(2,i)
if (abs(yy-ycind).le.tole.and.abs(xx-xcind).le.propfact) then
id(1,i)=1
id(2,i)=1
id(3,i)=1
f(2,i)=-1.0_dp
b(2,i)=f(2,i)*propfact+abs(xx-xcind)
endif
enddo
Note that this would be a "perfect stick" indenter, i.e. any atom that
comes in contact with the indenter sticks to it. Sliding boundary
conditions are much harder and would require more significant changes to
the code.
-Ellad Tadmor
On Sun, 28 Oct 2012, Jesse wrote:
> hello! my name is jesse fang, I'd like to ask how do I modify the fortran code, if I
> want to change the shape of indenter ï¿œin the punch-example.I still haven't make it