Remeshing

Particle methods discretize the Lagrangian form of convection diffusion equations. This means that particles positions follow the local flow map, and thus the particle positions eventually become distorted and the particle function representation ceases to be well sampled. To ascertain convergence it is then necessary to "remesh" the particles, by interpolating the properties they carry (vorticity, momentum, charge) onto a regular grid. A new set of particles is then created on those regular grid locations.

PPM implementation

Remeshing is implemented in PPM in the two steps:

  1. interpolate particle quantities onto a field
  2. spawn new particles on grid locations using values from a field
We assume that you have the following at hand:
REAL(MK), DIMENSION(:,:),   POINTER :: xp     ! particle positions
REAL(MK), DIMENSION([:,]:), POINTER :: up     ! particle quantities
INTEGER                             :: topoid ! topology on which the particles live
INTEGER                             :: meshid ! mesh on which your field lives
...
You now have to interpolate your particle values up onto the field field_up. You do this using the following a call to ppm_interp_p2m.
CALL ppm_interp_p2m (xp,np,up[,lda],topoid,meshid,ghostsize,field_up,info)
Note: after this step the ghost layers do not have valid values and you need to do a ghost get to update the ghosts.

 

 

 

Profile Information

Application afterLoad: 0.000 seconds, 0.28 MB
Application afterInitialise: 0.011 seconds, 0.93 MB
Application afterRoute: 0.014 seconds, 1.23 MB
Application afterDispatch: 0.024 seconds, 1.85 MB
Application afterRender: 0.032 seconds, 2.02 MB

Memory Usage

2146440

12 queries logged

  1. SELECT *
      FROM jos_session
      WHERE session_id = '9k1mmq1l744o82c1jo93u0mln5'
  2. DELETE
      FROM jos_session
      WHERE ( time < '1632050258' )
  3. SELECT *
      FROM jos_session
      WHERE session_id = '9k1mmq1l744o82c1jo93u0mln5'
  4. INSERT INTO `jos_session` ( `session_id`,`time`,`username`,`gid`,`guest`,`client_id` )
      VALUES ( '9k1mmq1l744o82c1jo93u0mln5','1632051158','','0','1','0' )
  5. SELECT *
      FROM jos_components
      WHERE parent = 0
  6. SELECT folder AS type, element AS name, params
      FROM jos_plugins
      WHERE published >= 1
      AND access <= 0
      ORDER BY ordering
  7. SELECT m.*, c.`option` AS component
      FROM jos_menu AS m
      LEFT JOIN jos_components AS c
      ON m.componentid = c.id
      WHERE m.published = 1
      ORDER BY m.sublevel, m.parent, m.ordering
  8. SELECT template
      FROM jos_templates_menu
      WHERE client_id = 0
      AND (menuid = 0 OR menuid = 65)
      ORDER BY menuid DESC
      LIMIT 0, 1
  9. SELECT a.*, u.name AS author, u.usertype, cc.title AS category, s.title AS section, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END AS slug, CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END AS catslug, g.name AS groups, s.published AS sec_pub, cc.published AS cat_pub, s.access AS sec_access, cc.access AS cat_access 
      FROM jos_content AS a
      LEFT JOIN jos_categories AS cc
      ON cc.id = a.catid
      LEFT JOIN jos_sections AS s
      ON s.id = cc.section
      AND s.scope = "content"
      LEFT JOIN jos_users AS u
      ON u.id = a.created_by
      LEFT JOIN jos_groups AS g
      ON a.access = g.id
      WHERE a.id = 56
      AND (  ( a.created_by = 0 )    OR  ( a.state = 1
      AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2021-09-19 11:32:38' )
      AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2021-09-19 11:32:38' )   )    OR  ( a.state = -1 )  )
  10. UPDATE jos_content
      SET hits = ( hits + 1 )
      WHERE id='56'
  11. SELECT id, title, module, position, content, showtitle, control, params
      FROM jos_modules AS m
      LEFT JOIN jos_modules_menu AS mm
      ON mm.moduleid = m.id
      WHERE m.published = 1
      AND m.access <= 0
      AND m.client_id = 0
      AND ( mm.menuid = 65 OR mm.menuid = 0 )
      ORDER BY position, ordering
  12. SELECT a.*, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END AS slug, CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END AS catslug
      FROM jos_content AS a
      INNER JOIN jos_categories AS cc
      ON cc.id = a.catid
      INNER JOIN jos_sections AS s
      ON s.id = a.sectionid
      WHERE a.state = 1 
      AND a.access <= 0
      AND cc.access <= 0
      AND s.access <= 0
      AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2021-09-19 11:32:38' ) 
      AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2021-09-19 11:32:38' )
      AND cc.id = 1
      AND cc.section = s.id
      AND cc.published = 1
      AND s.published = 1
      ORDER BY a.ordering
      LIMIT 0, 4

Language Files Loaded

Untranslated Strings Diagnostic

None

Untranslated Strings Designer

None