<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Hi Neks,</p>
<p><br>
</p>
<p>I trust you are all well,</p>
<p><br>
</p>
<p>I'm having some trouble with my two-way LPT code, in particular using information from the usrchk() subroutine (where all my LPTing is done) and userf() (where I want to apply a force to all meshpoints based on the number of particles in the surrounding
 cell).</p>
<p><br>
</p>
<p>My issue is that the code doesn't count the number of particles in each cell properly, even though the xmc, xxc etc. arrays store the correct minimum and maximum values for the cell boundaries as in the usrchk() code I use these to calculate a full volume
 of the mesh and it is correct.</p>
<p><br>
</p>
<p>I feel like my understanding on how the mpi works is lacking, so any advice on that would also be helpful - I understand that <span>subroutine userf (ix,iy,iz,ieg) is called once per local element?</span></p>
<p><br>
</p>
<p>So far my 2W code in the userf() looks like this:</p>
<p><br>
</p>
<p></p>
<div><i><span style="color: rgb(0, 111, 201); font-size: 12pt;">c     !=== TWO WAY COUPLING ===!</span></i></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>      if(TWOWAYON .EQ. 1 .AND. istep .GT. 1) then</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i><br>
</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>
<div><span style="color: rgb(75, 165, 36);">      real twowayforcex(lx1,ly1,lz1,lelv)</span></div>
<div><span style="color: rgb(75, 165, 36);">      real twowayforcey(lx1,ly1,lz1,lelv)</span></div>
<div><span style="color: rgb(75, 165, 36);">      real twowayforcez(lx1,ly1,lz1,lelv)</span></div>
<div><span style="color: rgb(75, 165, 36);">      real xmc(lx1,ly1,lz1,lelv)</span></div>
<div><span style="color: rgb(75, 165, 36);">      real xxc(lx1,ly1,lz1,lelv)</span></div>
<div><span style="color: rgb(75, 165, 36);">      real ymc(lx1,ly1,lz1,lelv)</span></div>
<div><span style="color: rgb(75, 165, 36);">      real yxc(lx1,ly1,lz1,lelv)</span></div>
<div><span style="color: rgb(75, 165, 36);">      real zmc(lx1,ly1,lz1,lelv)</span></div>
<div><span style="color: rgb(75, 165, 36);">      real zxc(lx1,ly1,lz1,lelv)</span></div>
<div><span style="color: rgb(75, 165, 36);">      real vol(lx1,ly1,lz1,lelv)</span></div>
<div><span style="color: rgb(75, 165, 36);">      real partpostw(ldim,lpart)</span></div>
<div><span style="color: rgb(75, 165, 36);">      real partftw(ldim,lpart)</span></div>
<div><span style="color: rgb(75, 165, 36);">      integer npartcell(lx1,ly1,lz1,lelv)</span></div>
<div><span style="color: rgb(75, 165, 36);">      integer TWOWAYON</span></div>
<div><br>
</div>
<div><span style="color: rgb(75, 165, 36);">      integer iel </span></div>
<div><br>
</div>
<div><span style="color: rgb(75, 165, 36);">      common /twowayr/ twowayforcex</span></div>
<div><span style="color: rgb(75, 165, 36);">     $               , twowayforcey</span></div>
<div><span style="color: rgb(75, 165, 36);">     $               , twowayforcez</span></div>
<div><span style="color: rgb(75, 165, 36);">     $               , xmc, xxc</span></div>
<div><span style="color: rgb(75, 165, 36);">     $               , ymc, yxc</span></div>
<div><span style="color: rgb(75, 165, 36);">     $               , zmc, zxc, vol</span></div>
<div><span style="color: rgb(75, 165, 36);">     $               , partpostw, partftw</span></div>
<div><span style="color: rgb(75, 165, 36);"><br>
</span></div>
<div><span style="color: rgb(75, 165, 36);">
<div>     common /twowayi/ npartcell</div>
<div>     $              , TWOWAYON</div>
<div><br>
</div>
</span></div>
</i></span></div>
<div><i><span class="Apple-tab-span" style="white-space: pre; color: rgb(0, 111, 201); font-size: 12pt;"></span><span style="color: rgb(0, 111, 201); font-size: 12pt;">iel = gllel(ieg)</span></i></div>
<div><i><br>
</i></div>
<div><i><span class="Apple-tab-span" style="white-space: pre; color: rgb(0, 111, 201); font-size: 12pt;"></span><span style="color: rgb(0, 111, 201); font-size: 12pt;">if(istep .GT. 2) then</span></i></div>
<div><i><span class="Apple-tab-span" style="white-space: pre; color: rgb(0, 111, 201); font-size: 12pt;"></span><span style="color: rgb(0, 111, 201); font-size: 12pt;"> do jp = 1,300000</span></i></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>            if(partpostw(1,jp) .GE. xmc(ix,iy,iz,iel) .AND.</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>     $         partpostw(1,jp) .LE. xxc(ix,iy,iz,iel) .AND.</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>     $         partpostw(2,jp) .GE. ymc(ix,iy,iz,iel) .AND.</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>     $         partpostw(2,jp) .LE. yxc(ix,iy,iz,iel) .AND.</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>     $         partpostw(3,jp) .GE. zmc(ix,iy,iz,iel) .AND.</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>     $         partpostw(3,jp) .LE. zxc(ix,iy,iz,iel)) then</i></span></div>
<div></div>
<div><i><br>
</i></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>               npartcell(ix,iy,iz,iel) = npartcell(ix,iy,iz,iel) + 1</i></span></div>
<div><i><br>
</i></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>               ffx = ffx + partftw(1,jp) ! Still need to average these</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>               ffy = ffy + partftw(2,jp)</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>               ffz = ffz + partftw(3,jp)</i></span></div>
<div></div>
<div><i><br>
</i></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>             endif</i></span></div>
<div><i><span style="color: rgb(0, 111, 201); font-size: 12pt;"> </span><span class="Apple-tab-span" style="white-space: pre; color: rgb(0, 111, 201); font-size: 12pt;">
</span><span style="color: rgb(0, 111, 201); font-size: 12pt;"> enddo </span></i></div>
<div><i><br>
</i></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>        else</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>          ffx = 0.0</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>          ffz = 0.0</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>          ffy = 0.0</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>        endif    </i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>    </i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i>      endif</i></span></div>
<div><span style="color: rgb(0, 111, 201); font-size: 12pt;"><i><br>
</i></span></div>
<div><span style="font-family: Calibri, Arial, Helvetica, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', NotoColorEmoji, 'Segoe UI Symbol', 'Android Emoji', EmojiSymbols; font-size: 16px;">Thankyou for reading this, any help would be greatly appreciated!</span><br>
</div>
<div><br>
</div>
<br>
<p></p>
</div>
</body>
</html>