Skip to content

Modularity measurements

Generated by nanopnp.validation.modularity.render_measurements from the source tree this site was built from. The modularity report quotes these measurements at a named commit; VER-61 pins the static and string relations.

Import relation

1038 import edges between nanopnp modules, by kind: top 602, deferred 157, typing 160, string 119. Measured by import_edges and subpackage_relation.

Static relation (top, deferred and typing)

Each cell counts the import statements by which the row's subpackage imports the column's.

from \ to api charge cli core density geometry gui io materials mesh nanopnp numerics physics pipeline plot post solve structure sweep symmetry validation
api 8 13 1 1 14 2 1 1 4
charge 19 7 3 14 2 5 3
cli 16 3 13 1 3 22 4 2 1 11 25
core 1
density 9 5 2
geometry 12 1 12 1 2 2
gui 2 8 10 2 7 29 2 2 14 2 2 2 4
io 10 3 1 1
materials 9 2
mesh 16 11 12
nanopnp 4 8 3 5 1 1
numerics 6
physics 13 2 4 1 15
pipeline 1 7 1 14 3 4 2 2 4 1
plot 3 2 3 5 4 2 5 4 1 2 2
post 2 8 2 7 6 4 10 3
solve 2 9 5 2 3 8 7
structure 5 8
sweep 4 10 1 2 1 2 1 1
symmetry 4 4 5
validation 6 2 14 3 6 17 1 1 6 4 2 1

String relation

from \ to api charge cli core density geometry gui io materials mesh nanopnp numerics physics pipeline plot post solve structure sweep symmetry validation
api
charge
cli 3 1 2 1 1 1
core 5 6 4 5 1 10 1 8 2 5 4 12 8 4 5 2 1 14
density
geometry
gui
io
materials
mesh
nanopnp
numerics
physics
pipeline
plot
post
solve
structure
sweep
symmetry
validation

Strongly connected components

Measured by components. Each lists its internal edges, the number of import statements carrying each, lightest first: those are the candidate cuts.

  • top: none
  • runtime (top and deferred): none
  • static:
    • 10 members: core, density, geometry, io, materials, mesh, numerics, physics, structure, symmetry. Lightest edges: core → io (1), geometry → density (1), geometry → mesh (1), io → numerics (1), io → physics (1), physics → mesh (1)
  • static and string:
    • 19 members: api, charge, core, density, geometry, gui, io, materials, mesh, numerics, physics, pipeline, plot, post, solve, structure, sweep, symmetry, validation. Lightest edges: api → materials (1), api → mesh (1), api → solve (1), api → structure (1), core → gui (1), core → materials (1)

Module-level cycles among top imports, each package __init__ an import runs included: 0.

Stage conformance

Measured by stage_conformance, against Stage.key(inputs) and Stage.run(inputs, *, progress, cancel).

Stage Class key signature describe run signature
case nanopnp.pipeline.case:CaseStage (inputs) yes (inputs, *, progress, cancel)
structure nanopnp.structure.stage:StructureStage (inputs) yes (inputs, *, progress, cancel)
density nanopnp.density.stage:DensityStage (inputs) yes (inputs, *, progress, cancel)
symmetry nanopnp.symmetry.stage:SymmetryStage (inputs) yes (inputs, *, progress, cancel)
contour nanopnp.geometry.contour:ContourStage (inputs) yes (inputs, *, progress, cancel)
region nanopnp.geometry.region:RegionStage (inputs) yes (inputs, *, progress, cancel)
mesh nanopnp.mesh.ingest:MeshStage (inputs) yes (inputs, *, progress, cancel)
protonation nanopnp.charge.protonation:ProtonationStage (inputs) yes (inputs, *, progress, cancel)
charge nanopnp.charge.stage:FieldStage (inputs) yes (inputs, *, progress, cancel)
materials nanopnp.materials.stage:MaterialsStage (inputs) yes (inputs, *, progress, cancel)
solve nanopnp.solve.stage:SolveStage (inputs) yes (inputs, *, progress, cancel)
qoi nanopnp.post.stage:QoIStage (inputs) yes (inputs, *, progress, cancel)
report nanopnp.post.stage:ReportStage (inputs) yes (inputs, *, progress, cancel)

Stage sets written into pipeline/run.py, measured by stage_sets:

  • none

Extension points

Measured by extension_points. Spelled in counts the modules outside the home that write a member's name as a string; none is not counted.

Point Kind Home Members Spelled in
stages registry core/stages.py 13 54
corrections registry materials/models.py 1 6
physics models registry physics/models.py 6 3
stabilisation registry physics/stabilisation.py 2 3
charge forms registry charge/fields.py 3 0
mesher registry mesh/meshers.py 2 7
linear solver registry numerics/linear.py 2 2
outputs branch io/case.py 6 22
steric models branch io/case.py 1 1
correction forms branch materials/forms.py 6 0

The backend (QR-13)

38 modules in 11 subpackages import NGSolve or Netgen, measured by backend_imports. Section 5.4.1 names defined: none.

Subpackage Modules
charge 3
density 1
geometry 3
gui 2
materials 2
mesh 5
numerics 3
physics 9
post 5
solve 2
validation 3

The public surface

PUBLIC has 19 names; its TYPE_CHECKING mirror has 19, differing in none. Outside PUBLIC: with_section, register. Measured by surface.

Size

The ten longest modules and functions, measured by sizes.

Module Lines
physics/models.py 1926
validation/modularity.py 1667
cli/__init__.py 1572
validation/apbs.py 1446
charge/protonation.py 1384
pipeline/run.py 1205
geometry/region.py 1178
charge/fields.py 1082
charge/stage.py 1029
pipeline/checks.py 979
Function Lines
cli/__init__.py build_parser 342
solve/continuation.py default_ladder 285
core/stages.py _register_builtins 265
numerics/newton.py damped_newton 204
structure/stage.py align 152
geometry/contour.py measure 149
physics/models.py CoupledModel.residual_form 146
validation/modularity.py render_measurements 143
structure/read.py select 138
charge/stage.py FieldStage._produce 115

Version literals

6 non-docstring strings name a release vX.Y, measured by version_literals; VER-67 refuses one naming a tagged release.

  • cli/reference.py:352
  • io/case.py:94
  • pipeline/checks.py:598
  • pipeline/checks.py:604
  • validation/case_leaves.py:185
  • validation/modularity.py:1282