Background

Basic ideas

The main assumption underlying the PPM library is that the systems being simulated are formulated as particle or hybrid particle-mesh algorithms. Structured, uniform Cartesian meshes are thus assumed to be sufficient. As a result, the physical and computational domains are rectangular or cuboidal in two and three dimensions, respectively, with simple boundary conditions at the outer faces. Complex geometries are handled by immersed boundaries, through the use of source terms in the corresponding field equations, or through boundary element techniques.

 

The simultaneous presence of particles and meshes requires several different concurrent domain decompositions. All of them are assumed to decompose the computational domain into rectangular or cuboidal sub-domains with a sufficient granularity to secure adequate load balance while limiting the number of sub-domains to a mininum. The concurrent presence of different decompositions allows to perform each step of the computational algorithm in its optimal environment with respect to load balance and the computation-to-communication ratio. For the actual computations, the individual sub-domains are treated as independent problems and extended with ghost mesh layers and ghost particles to allow for communication between them.

 

The library is split into two parts: PPM_core and PPM_numerics. The first part takes care of data allocation, domain decomposition, I/O, mappings, etc. The second part houses the solvers and other numerical operations such as the multigrid solver, Fast Multipole Method, Fast Fourier Transform, time integrators, Group Marching Method, etc.

 

PPM Core

 

PPM Numerics

 

 

Profile Information

Application afterLoad: 0.000 seconds, 0.28 MB
Application afterInitialise: 0.012 seconds, 0.93 MB
Application afterRoute: 0.015 seconds, 1.23 MB
Application afterDispatch: 0.024 seconds, 1.84 MB
Application afterRender: 0.032 seconds, 2.00 MB

Memory Usage

2132080

12 queries logged

  1. SELECT *
      FROM jos_session
      WHERE session_id = 't962vbjmkmf94narbvvf5j1oi0'
  2. DELETE
      FROM jos_session
      WHERE ( time < '1638034542' )
  3. SELECT *
      FROM jos_session
      WHERE session_id = 't962vbjmkmf94narbvvf5j1oi0'
  4. INSERT INTO `jos_session` ( `session_id`,`time`,`username`,`gid`,`guest`,`client_id` )
      VALUES ( 't962vbjmkmf94narbvvf5j1oi0','1638035442','','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 = 61
      AND (  ( a.created_by = 0 )    OR  ( a.state = 1
      AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2021-11-27 17:50:42' )
      AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2021-11-27 17:50:42' )   )    OR  ( a.state = -1 )  )
  10. UPDATE jos_content
      SET hits = ( hits + 1 )
      WHERE id='61'
  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-11-27 17:50:42' ) 
      AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2021-11-27 17:50:42' )
      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