Skip to content

Conversation

@DavidFang03
Copy link
Collaborator

@DavidFang03 DavidFang03 commented Nov 20, 2025

The goal is to have a way to initialize a distribution of particles that follows a given density profile $\rho(r)$. We follow the stretch mapping method in Price 2018 (3.2): starting from a lattice (HCP here), each position is modified using a Newton-Raphson method, or a bisection method if necessary. In order to generate an spherical object at the end, the HCP lattice is initially cropped into a sphere and is stretched afterwards.

I've extended the HCP generator:
GeneratorLatticeHCP.hpp -> GeneratorLatticeHCP_smap_sphere.hpp
crystalLattice.hpp -> crystalLattice_smap_sphere.hpp

Usage:

setup = model.get_setup()

center = [0, 0, 0]
xmax = 1
# gen = setup.make_generator_lattice_hcp(dr, bmin, bmax)
# but instead:
gen = setup.make_generator_lattice_hcp_smap_sphere(dr, center, xmax, rhoprofile)

setup.apply_setup(gen)

The given profile has to be a function of $r$ only and needs to be defined at $r=0$ because there's always one particle at the lattice center.
Tested with

rhoprofile = lambda r:1/(r+0.1)**2
rhoprofile = np.sinc # but very slow here (because the profile is less steep?)

3 remaining issues:

  • Before the first timestep, the density seems to match the given one correctly (because hpart is initialized with the expected value during the generation), but then the next computed smoothing length differs close to the origin and the corresponding density no longer matches there 1r2.pdf
  • There seem to be more particles at large radii, even though the density profile decreases with radius.
  • Very slow (especially with flatter profiles?)

@DavidFang03 DavidFang03 marked this pull request as ready for review November 20, 2025 16:04
@DavidFang03 DavidFang03 marked this pull request as draft November 20, 2025 16:04
@y-lapeyre y-lapeyre changed the title [Math] Stretch mapping implementation [SPH][Setup] Stretch mapping implementation Nov 20, 2025
@y-lapeyre y-lapeyre self-requested a review November 20, 2025 16:21
@tdavidcl tdavidcl added the draft label Nov 21, 2025
Copy link
Member

@tdavidcl tdavidcl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice to see, great job !
Yona is starting to review this one so i won't interfere. I just had a few comments.
Also from what i see this is only in the spherical case right ? could we generalize it using a lambda to get the position and a lambda with the metric terms (1, 2pi r, 4 pi r^2, ...) such that we can apply it for any axis ?

@DavidFang03
Copy link
Collaborator Author

Fixes done!

Very nice to see, great job ! Yona is starting to review this one so i won"t interfere. I just had a few comments. Also from what i see this is only in the spherical case right ? could we generalize it using a lambda to get the position and a lambda with the metric terms (1, 2pi r, 4 pi r^2, ...) such that we can apply it for any axis ?

Do you mean something like

gen = setup.make_generator_lattice_hcp_smap(dr, center, xmax, rhoprofile, system="spherical", coord="r") # spherical along r
gen = setup.make_generator_lattice_hcp_smap(dr, center, xmax, rhoprofile, system="cart", coord="y") # cartesian along y

with system="cart", "spherical", cylindrical" and coord="x","y","z","r"?

And then for non-isotropic objects, maybe we can allow something like

gen = setup.make_generator_lattice_hcp_smap(dr, center, [xmax, ymax, zmax], [rhoprofile_x, rhoprofile_y], system="cart", coord=["x", "y"]) 
gen = setup.make_generator_lattice_hcp_smap(dr, center, [xmax, ymax, zmax], [rhoprofile_r, rhoprofile_z], system="cylindrical", coord=["r", "z"]) # for a disc ?

@tdavidcl
Copy link
Member

Fixes done!

Very nice to see, great job ! Yona is starting to review this one so i won"t interfere. I just had a few comments. Also from what i see this is only in the spherical case right ? could we generalize it using a lambda to get the position and a lambda with the metric terms (1, 2pi r, 4 pi r^2, ...) such that we can apply it for any axis ?

Do you mean something like

gen = setup.make_generator_lattice_hcp_smap(dr, center, xmax, rhoprofile, system="spherical", coord="r") # spherical along r
gen = setup.make_generator_lattice_hcp_smap(dr, center, xmax, rhoprofile, system="cart", coord="y") # cartesian along y

with system="cart", "spherical", cylindrical" and coord="x","y","z","r"?

Yeah that could be the we want it to look like in the end. For now i was thinking about the stretchindiv function where one could supply rhoprofile as well as S in such a way that it becomes applicable to any direction (regardless of geometry).

Something like (with r renamed to a to mean that it is anything, x,y,z,r,theta, ...)

static Tscal stretchindiv(
            Tscal a,
            std::function<Tscal(Tscal)> rhoprofile, //rho(a)
            std::function<Tscal(Tscal)> S,                 //surface element (a)
            Tscal integral_profile,
            Tscal rmin,
            Tscal rmax,
            Tvec center) {
....
            auto rhodS = [&rhoprofile, &S](Tscal a) -> Tscal {
                return S(a)*rhoprofile(a);
            };

If i'm right it is sufficient to generalize it in such a way that can supply anything (even theta/phi streching).

Also maybe we can add a std::function<Tscal(Tvec)> a_from_pos, std::function<Tvec(Tscal, Tvec)> a_to_pos that perform the conversion supplied by the user. Then in the generator you could do

        Tscal a = a_from_pos(r_a);
        ....
        Tscal new_a = stretchindiv(a, rhoprofile, S, integral_profile, rmin, rmax, center);
        ...
        Tvec new_r_a = a_to_pos(a, r_a);

@tdavidcl
Copy link
Member

also for authorship related error in CI you can do python3 ../buildbot/update_authors.py from your build directory

Copy link
Collaborator

@y-lapeyre y-lapeyre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nicely done :)
Could you generalize this setup by turning it into a modifier that takes whatever lattice generator in input and applies the stretch transformation? You can name it something like ModifierApplyStretchMapping for instance. Inspiration can be found in ModifierOffset.hpp / cpp for instance.

@tdavidcl
Copy link
Member

yeah you can expect the fail with kernel_call since a std::function can not be mapped in the GPU kernel (it is a CPU function pointer which can not exist in the GPU world :sad:)

@tdavidcl
Copy link
Member

if you update the branch the mail thing should be fixed

@DavidFang03
Copy link
Collaborator Author

yeah you can expect the fail with kernel_call since a std::function can not be mapped in the GPU kernel (it is a CPU function pointer which can not exist in the GPU world :sad:)

Okay, that's what I understood, it's a good lesson

@DavidFang03
Copy link
Collaborator Author

I'm currently trying to migrate ModifierApplyStretchMapping into SolverGraph, I think I'll need a little feedback once I manage to compile something haha

@tdavidcl
Copy link
Member

tdavidcl commented Nov 27, 2025

honestly as you prefer for this one, the solvergraph is really made for the solver itself so it is quite quirky when it comes to the setups. I haven't really started integrating it in that part of the code so don't worry if it is not used it there

@tdavidcl
Copy link
Member

i don't see any solvergraph related thing in the current state of the PR have you committed it or did you meant the setup graph ?

@DavidFang03
Copy link
Collaborator Author

No I haven't committed anything yet.
What I'm trying to do is write a node (src/shammodels/sph/src/modules/StretchMap.cpp) which takes positions as edges and I would write the stretch mapping process inside. It would also determine the particles that should be killed if they're outside the integration boundaries (typically it would be equivalent to crop a sphere before stretch mapping, in the spherical case), similarly to GetParticlesOutsideSphere
Then in the Modifier, the sequence would be stretchmap,killparticles,set_hpart or sth like that. But maybe it's not that useful, what do you think? If I want to kill these particles I'll still need to write sth with solvergraph though (or not?).

@tdavidcl
Copy link
Member

as you wish I'm ok with both options take whichever you prefer (or take less time).
Also could you add a example in the doc on how to use the strechmapping, we can do a call if you need any help on that side.

@tdavidcl
Copy link
Member

also i've invited you on the repo to skip the workflow approval, they will start right away

@DavidFang03
Copy link
Collaborator Author

Okay, I'll leave the SolverGraph aside for the moment I think. I'll do it if I have some time at the end of my project. For the doc I can do a call today at 5:30 pm, or Monday if that's too late.
Thanks for the invitation :)

@DavidFang03
Copy link
Collaborator Author

TODO: Currently it runs on one CPU only

@github-actions
Copy link

Workflow report

workflow report corresponding to commit 8cba392
Commiter email is david.fang@ikmail.com

Light CI is enabled. This will only run the basic tests and not the full tests.
Merging a PR require the job "on PR / all" to pass which is disabled in this case.

Pre-commit check report

Pre-commit check: ✅

trim trailing whitespace.................................................Passed
fix end of files.........................................................Passed
check for merge conflicts................................................Passed
check that executables have shebangs.....................................Passed
check that scripts with shebangs are executable..........................Passed
check for added large files..............................................Passed
check for case conflicts.................................................Passed
check for broken symlinks................................................Passed
check yaml...............................................................Passed
detect private key.......................................................Passed
No-tabs checker..........................................................Passed
Tabs remover.............................................................Passed
Validate GitHub Workflows................................................Passed
clang-format.............................................................Passed
black....................................................................Passed
ruff check...............................................................Passed
Check doxygen headers....................................................Passed
Check license headers....................................................Passed
Check #pragma once.......................................................Passed
Check SYCL #include......................................................Passed
No ssh in git submodules remote..........................................Passed

Test pipeline can run.

Doxygen diff with main

Removed warnings : 62
New warnings : 92
Warnings count : 7609 → 7639 (0.4%)

Detailed changes :
+ src/shammath/include/shammath/LatticeError.hpp:23: warning: Compound shammath::LatticeError is not documented.
+ src/shammath/include/shammath/LatticeError.hpp:25: warning: Member LatticeError(const char *message) (function) of class shammath::LatticeError is not documented.
+ src/shammath/include/shammath/LatticeError.hpp:27: warning: Member LatticeError(const std::string &message) (function) of class shammath::LatticeError is not documented.
+ src/shammath/include/shammath/LatticeError.hpp:31: warning: Member what() const noexcept override (function) of class shammath::LatticeError is not documented.
+ src/shammath/include/shammath/LatticeError.hpp:34: warning: Member msg_ (variable) of class shammath::LatticeError is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:128: warning: Member get_box_index_bounds(Tscal dr, Tvec box_min, Tvec box_max) (function) of class shammath::LatticeHCP is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:140: warning: Member get_box_index_bounds(Tscal dr, Tvec box_min, Tvec box_max) (function) of class shammath::LatticeHCP is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:204: warning: Member Iterator(Tscal dr, std::array< i32, dim > coord_min, std::array< i32, dim > coord_max) (function) of class shammath::LatticeHCP::Iterator is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:216: warning: Member Iterator(Tscal dr, std::array< i32, dim > coord_min, std::array< i32, dim > coord_max) (function) of class shammath::LatticeHCP::Iterator is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:222: warning: Member is_done() (function) of class shammath::LatticeHCP::Iterator is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:224: warning: Member next() (function) of class shammath::LatticeHCP::Iterator is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:234: warning: Member is_done() (function) of class shammath::LatticeHCP::Iterator is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:236: warning: Member next() (function) of class shammath::LatticeHCP::Iterator is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:252: warning: Member next_n(u64 nmax) (function) of class shammath::LatticeHCP::Iterator is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:264: warning: Member next_n(u64 nmax) (function) of class shammath::LatticeHCP::Iterator is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:265: warning: Member skip(u64 n) (function) of class shammath::LatticeHCP::Iterator is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:277: warning: Member skip(u64 n) (function) of class shammath::LatticeHCP::Iterator is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:291: warning: Member current_idx (variable) of class shammath::LatticeHCP::IteratorDiscontinuous is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:292: warning: Member IteratorDiscontinuous(Tscal dr, std::array< i32, dim > coord_min, std::array< i32, dim > coord_max) (function) of class shammath::LatticeHCP::IteratorDiscontinuous is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:303: warning: Member current_idx (variable) of class shammath::LatticeHCP::IteratorDiscontinuous is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:304: warning: Member IteratorDiscontinuous(Tscal dr, std::array< i32, dim > coord_min, std::array< i32, dim > coord_max) (function) of class shammath::LatticeHCP::IteratorDiscontinuous is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:317: warning: Member is_done() (function) of class shammath::LatticeHCP::IteratorDiscontinuous is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:319: warning: Member next() (function) of class shammath::LatticeHCP::IteratorDiscontinuous is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:329: warning: Member is_done() (function) of class shammath::LatticeHCP::IteratorDiscontinuous is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:32: warning: Compound shammath::LatticeError is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:331: warning: Member next() (function) of class shammath::LatticeHCP::IteratorDiscontinuous is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:34: warning: Member LatticeError(const char *message) (function) of class shammath::LatticeError is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:351: warning: Member next_n(u64 nmax) (function) of class shammath::LatticeHCP::IteratorDiscontinuous is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:363: warning: Member next_n(u64 nmax) (function) of class shammath::LatticeHCP::IteratorDiscontinuous is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:364: warning: Member skip(u64 n) (function) of class shammath::LatticeHCP::IteratorDiscontinuous is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:36: warning: Member LatticeError(const std::string &message) (function) of class shammath::LatticeError is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:376: warning: Member skip(u64 n) (function) of class shammath::LatticeHCP::IteratorDiscontinuous is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:40: warning: Member what() const noexcept override (function) of class shammath::LatticeError is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:42: warning: Member dim (variable) of class shammath::LatticeHCP is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:43: warning: Member msg_ (variable) of class shammath::LatticeError is not documented.
+ src/shammath/include/shammath/crystalLattice.hpp:47: warning: Member Tscal (typedef) of class shammath::LatticeHCP is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:54: warning: Member dim (variable) of class shammath::LatticeHCP is not documented.
- src/shammath/include/shammath/crystalLattice.hpp:59: warning: Member Tscal (typedef) of class shammath::LatticeHCP is not documented.
- src/shammath/include/shammath/integrator.hpp:24: warning: Member integ_riemann_sum(T start, T end, T step, Lambda &&fct) (function) of namespace shammath is not documented.
- src/shammath/include/shammath/integrator.hpp:24: warning: Member integ_riemann_sum(T start, T end, T step, Lambda &&fct) (function) of namespace shammath is not documented.
+ src/shammath/include/shammath/integrator.hpp:25: warning: Member integ_riemann_sum(T start, T end, T step, Lambda &&fct) (function) of namespace shammath is not documented.
+ src/shammath/include/shammath/integrator.hpp:25: warning: Member integ_riemann_sum(T start, T end, T step, Lambda &&fct) (function) of namespace shammath is not documented.
+ src/shammath/include/shammath/integrator.hpp:35: warning: Member integ_trapezoidal(T start, T end, T step, Lambda &&fct) (function) of namespace shammath is not documented.
+ src/shammath/include/shammath/integrator.hpp:35: warning: Member integ_trapezoidal(T start, T end, T step, Lambda &&fct) (function) of namespace shammath is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:102: warning: Member make_modifier_filter(SetupNodePtr parent, std::function< bool(Tvec)> filter) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:31: warning: Compound shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:32: warning: Compound shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:33: warning: Member Tscal (typedef) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:34: warning: Member Tscal (typedef) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:34: warning: Member dim (variable) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:35: warning: Member Kernel (typedef) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:35: warning: Member dim (variable) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:36: warning: Member Kernel (typedef) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:37: warning: Member Config (typedef) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:38: warning: Member Config (typedef) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:38: warning: Member Storage (typedef) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:39: warning: Member Storage (typedef) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:40: warning: Member context (variable) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:41: warning: Member context (variable) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:41: warning: Member solver_config (variable) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:42: warning: Member solver_config (variable) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:42: warning: Member storage (variable) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:43: warning: Member storage (variable) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:44: warning: Member SPHSetup(ShamrockCtx &context, Config &solver_config, Storage &storage) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:45: warning: Member SPHSetup(ShamrockCtx &context, Config &solver_config, Storage &storage) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:47: warning: Member apply_setup(SetupNodePtr setup, bool part_reordering, std::optional< u32 > insert_step=std::nullopt) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:48: warning: Member apply_setup(SetupNodePtr setup, bool part_reordering, std::optional< u32 > insert_step=std::nullopt) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:52: warning: Member apply_setup_new(SetupNodePtr setup, bool part_reordering, std::optional< u32 > gen_count_per_step=std::nullopt, std::optional< u32 > insert_count_per_step=std::nullopt, std::optional< u64 > max_msg_count_per_rank_per_step=std::nullopt, std::optional< u64 > max_data_count_per_rank_per_step=std::nullopt, std::optional< u64 > max_msg_size=std::nullopt, bool do_setup_log=false) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:53: warning: Member apply_setup_new(SetupNodePtr setup, bool part_reordering, std::optional< u32 > gen_count_per_step=std::nullopt, std::optional< u32 > insert_count_per_step=std::nullopt, std::optional< u64 > max_msg_count_per_rank_per_step=std::nullopt, std::optional< u64 > max_data_count_per_rank_per_step=std::nullopt, std::optional< u64 > max_msg_size=std::nullopt, bool do_setup_log=false) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:62: warning: Member make_generator_lattice_hcp(Tscal dr, std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:63: warning: Member make_generator_lattice_hcp(Tscal dr, std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:65: warning: Member make_generator_disc_mc(Tscal part_mass, Tscal disc_mass, Tscal r_in, Tscal r_out, std::function< Tscal(Tscal)> sigma_profile, std::function< Tscal(Tscal)> H_profile, std::function< Tscal(Tscal)> rot_profile, std::function< Tscal(Tscal)> cs_profile, std::mt19937 eng, Tscal init_h_factor) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:66: warning: Member make_generator_disc_mc(Tscal part_mass, Tscal disc_mass, Tscal r_in, Tscal r_out, std::function< Tscal(Tscal)> sigma_profile, std::function< Tscal(Tscal)> H_profile, std::function< Tscal(Tscal)> rot_profile, std::function< Tscal(Tscal)> cs_profile, std::mt19937 eng, Tscal init_h_factor) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:77: warning: Member make_combiner_add(SetupNodePtr parent1, SetupNodePtr parent2) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:78: warning: Member make_combiner_add(SetupNodePtr parent1, SetupNodePtr parent2) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:80: warning: Member make_modifier_warp_disc(SetupNodePtr parent, Tscal Rwarp, Tscal Hwarp, Tscal inclination, Tscal posangle) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:81: warning: Member make_modifier_warp_disc(SetupNodePtr parent, Tscal Rwarp, Tscal Hwarp, Tscal inclination, Tscal posangle) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:83: warning: Member make_modifier_custom_warp(SetupNodePtr parent, std::function< Tscal(Tscal)> inc_profile, std::function< Tscal(Tscal)> psi_profile, std::function< Tvec(Tscal)> k_profile) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:84: warning: Member make_modifier_custom_warp(SetupNodePtr parent, std::function< Tscal(Tscal)> inc_profile, std::function< Tscal(Tscal)> psi_profile, std::function< Tvec(Tscal)> k_profile) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:89: warning: Member make_modifier_add_offset(SetupNodePtr parent, Tvec offset_postion, Tvec offset_velocity) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:90: warning: Member make_modifier_add_offset(SetupNodePtr parent, Tvec offset_postion, Tvec offset_velocity) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:92: warning: Member make_modifier_filter(SetupNodePtr parent, std::function< bool(Tvec)> filter) (function) of class shammodels::sph::modules::SPHSetup is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/SPHSetup.hpp:93: warning: Member make_modifier_apply_stretch_mapping(SetupNodePtr parent, std::vector< Tscal > tabrho, std::vector< Tscal > tabx, std::string system, std::string axis, std::pair< Tvec, Tvec > box, Tscal mtot) (function) of class shammodels::sph::modules::SPHSetup is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/setup/GeneratorLatticeHCP.hpp:29: warning: Compound shammodels::sph::modules::GeneratorLatticeHCP is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/setup/GeneratorLatticeHCP.hpp:30: warning: Compound shammodels::sph::modules::GeneratorLatticeHCP is not documented.
- src/shammodels/sph/include/shammodels/sph/modules/setup/GeneratorLatticeHCP.hpp:49: warning: Member GeneratorLatticeHCP(ShamrockCtx &context, Tscal dr, std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::modules::GeneratorLatticeHCP is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/setup/GeneratorLatticeHCP.hpp:50: warning: Member GeneratorLatticeHCP(ShamrockCtx &context, Tscal dr, std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::modules::GeneratorLatticeHCP is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/setup/ModifierApplyStretchMapping.hpp:129: warning: Member ngrid (variable) of class shammodels::sph::modules::ModifierApplyStretchMapping is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/setup/ModifierApplyStretchMapping.hpp:130: warning: Member hfact (variable) of class shammodels::sph::modules::ModifierApplyStretchMapping is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/setup/ModifierApplyStretchMapping.hpp:132: warning: Member smap_inputdata (variable) of class shammodels::sph::modules::ModifierApplyStretchMapping is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/setup/ModifierApplyStretchMapping.hpp:135: warning: Member ModifierApplyStretchMapping(ShamrockCtx &context, Config &solver_config, SetupNodePtr parent, std::vector< Tscal > tabrho, std::vector< Tscal > tabx, std::string system, std::string axis, std::pair< Tvec, Tvec > box, Tscal mtot) (function) of class shammodels::sph::modules::ModifierApplyStretchMapping is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/setup/ModifierApplyStretchMapping.hpp:32: warning: Member get_closest_range(const arr_t &arr, const T &val, size_t size) (function) of file ModifierApplyStretchMapping.hpp is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/setup/ModifierApplyStretchMapping.hpp:415: warning: Member stretchpart(Tvec pos, Smap_inputdata smap_inputdata) (function) of class shammodels::sph::modules::ModifierApplyStretchMapping is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/setup/ModifierApplyStretchMapping.hpp:439: warning: Member h_rho_stretched(Tvec pos, const Smap_inputdata &smap_inputdata, Tscal hfact) (function) of class shammodels::sph::modules::ModifierApplyStretchMapping is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/setup/ModifierApplyStretchMapping.hpp:58: warning: Member linear_interpolate(const arr_t &arr_x, const arr_t &arr_y, size_t arr_size, const T &x) (function) of file ModifierApplyStretchMapping.hpp is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/setup/ModifierApplyStretchMapping.hpp:85: warning: Compound shammodels::sph::modules::ModifierApplyStretchMapping is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:187: warning: Compound SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:188: warning: Compound SetupLog::State is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:189: warning: Member count_per_rank (variable) of struct SetupLog::State is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:190: warning: Compound SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:190: warning: Member msg_list (variable) of struct SetupLog::State is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:191: warning: Compound SetupLog::State is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:191: warning: Member state (variable) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:192: warning: Member count_per_rank (variable) of struct SetupLog::State is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:193: warning: Member msg_list (variable) of struct SetupLog::State is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:193: warning: Member step_counter (variable) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:194: warning: Member state (variable) of struct SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:195: warning: Member json_data (variable) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:196: warning: Member step_counter (variable) of struct SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:197: warning: Member log_state() (function) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:198: warning: Member json_data (variable) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:200: warning: Member log_state() (function) of struct SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:205: warning: Member dump_state() (function) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:208: warning: Member dump_state() (function) of struct SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:218: warning: Member update_count_per_rank(u64 count) (function) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:221: warning: Member update_count_per_rank(u64 count) (function) of struct SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:228: warning: Member update_msg_list(std::vector< std::tuple< u32, u32, u64 > > &msg_list) (function) of struct SetupLog is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:231: warning: Member update_msg_list(std::vector< std::tuple< u32, u32, u64 > > &msg_list) (function) of struct SetupLog is not documented.
- src/shammodels/sph/src/modules/SPHSetup.cpp:236: warning: Member golden_number (variable) of file SPHSetup.cpp is not documented.
+ src/shammodels/sph/src/modules/SPHSetup.cpp:239: warning: Member golden_number (variable) of file SPHSetup.cpp is not documented.
+ src/shammodels/sph/src/modules/setup/ModifierApplyStretchMapping.cpp:29: warning: no uniquely matching class member found for 
- src/shammodels/sph/src/pySPHModel.cpp:1035: warning: Member add_analysisBarycenter_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
- src/shammodels/sph/src/pySPHModel.cpp:1053: warning: Member add_analysisEnergyKinetic_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1058: warning: Member add_analysisBarycenter_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
- src/shammodels/sph/src/pySPHModel.cpp:1069: warning: Member add_analysisEnergyPotential_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1076: warning: Member add_analysisEnergyKinetic_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
- src/shammodels/sph/src/pySPHModel.cpp:1085: warning: Member add_analysisTotalMomentum_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1092: warning: Member add_analysisEnergyPotential_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
- src/shammodels/sph/src/pySPHModel.cpp:1103: warning: Member analysis_impl(shammodels::sph::Model< Tvec, SPHKernel > &model) -> Analysis (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1108: warning: Member add_analysisTotalMomentum_instance(py::module &m, std::string name_model) (function) of file pySPHModel.cpp is not documented.
- src/shammodels/sph/src/pySPHModel.cpp:1108: warning: Member register_analysis_impl_for_each_kernel(py::module &msph, const char *name_class) (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1126: warning: Member analysis_impl(shammodels::sph::Model< Tvec, SPHKernel > &model) -> Analysis (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1131: warning: Member register_analysis_impl_for_each_kernel(py::module &msph, const char *name_class) (function) of file pySPHModel.cpp is not documented.
- src/shammodels/sph/src/pySPHModel.cpp:1169: warning: Member Register_pymod(pysphmodel) (function) of file pySPHModel.cpp is not documented.
+ src/shammodels/sph/src/pySPHModel.cpp:1192: warning: Member Register_pymod(pysphmodel) (function) of file pySPHModel.cpp is not documented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants