@@ -365,6 +365,52 @@ as manually customize it in the .json file directory.
365365
366366This is used for composing complex models of group scale lenses.
367367
368+ ## Multi Galaxy, Group and Cluster Models
369+
370+ Above galaxy scale, models are composed for three regimes (see the New User Guide's "What Scale
371+ System?" ladder — all groups and clusters are multi-galaxy systems, but not vice versa):
372+
373+ ** Multi-galaxy lenses** (2+ co-dominant deflectors, no host halo): one free light + mass model per
374+ deflector, composed in a loop with ** untruncated** isothermals (no host halo means no tidal
375+ truncation):
376+
377+ ``` python
378+ lens_dict = {}
379+
380+ for i, centre in enumerate (main_lens_centres):
381+ mass = af.Model(al.mp.Isothermal)
382+ mass.centre = (centre[0 ], centre[1 ])
383+
384+ lens_dict[f " lens_ { i} " ] = af.Model(al.Galaxy, redshift = 0.5 , mass = mass)
385+
386+ model = af.Collection(galaxies = af.Collection(** lens_dict, source = source))
387+ ```
388+
389+ ** Group-scale lenses** add two things as explicit modelling choices: an optional dark-matter
390+ ** group halo** , and faint members whose masses are tied to their luminosities through a shared
391+ scaling relation, so N galaxies cost one free parameter (composed via prior arithmetic on a
392+ shared prior):
393+
394+ ``` python
395+ einstein_radius_ref = af.UniformPrior(lower_limit = 0.0 , upper_limit = 1.0 )
396+
397+ for i, (centre, luminosity) in enumerate (zip (centres, luminosities)):
398+ mass = af.Model(al.mp.IsothermalSph)
399+ mass.centre = (centre[0 ], centre[1 ])
400+ mass.einstein_radius = einstein_radius_ref * (luminosity / reference_luminosity) ** 0.5
401+ ```
402+
403+ ** Cluster-scale lenses** keep the group mass framework (halo + tidally truncated `` dPIE ``
404+ members on scaling relations) but change the source strategy: many point-source multiple-image
405+ position datasets, each at its own redshift, fitted via `` AnalysisPoint `` .
406+
407+ The following example notebooks show each regime's full model composition:
408+
409+ < https://github.com/PyAutoLabs/autolens_workspace/blob/main/notebooks/multi_galaxy/modeling.ipynb >
410+ < https://github.com/PyAutoLabs/autolens_workspace/blob/main/notebooks/group/start_here.ipynb >
411+ < https://github.com/PyAutoLabs/autolens_workspace/blob/main/notebooks/group/features/group_halo/modeling.ipynb >
412+ < https://github.com/PyAutoLabs/autolens_workspace/blob/main/notebooks/cluster/start_here.ipynb >
413+
368414## Many Profile Models (Advanced)
369415
370416Features such as the Multi Gaussian Expansion (MGE) and shapelets compose models consisting of 50 - 500+ light
0 commit comments