Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added Exec/HaloFinder/32.nyx
Binary file not shown.
Binary file added Exec/HaloFinder/64sssss_20mpc.nyx
Binary file not shown.
11 changes: 11 additions & 0 deletions Exec/HaloFinder/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
set(_sources Prob.cpp Prob_error.cpp)
set(_input_files inputs inputs.summit inputs_gimlet_in_transit.dsc)
list(APPEND _input_files inputs_nohydro.rt inputs.rt inputs.rt.garuda)
list(APPEND _input_files 32.nyx 64sssss_20mpc.nyx TREECOOL_middle)
list(APPEND _input_files ascent_actions_nohydro.yaml ascent_actions.yaml ascent_actions_slicefile.yaml)

# setup_nyx_executable(_sources _input_files)
nyx_setup_executable(_sources _input_files)

unset(_sources)
unset(_input_files)
73 changes: 73 additions & 0 deletions Exec/HaloFinder/DarkMatterParticleContainer.H
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@

#ifndef _DarkMatterParticleContainer_H_
#define _DarkMatterParticleContainer_H_

#include <NyxParticleContainer.H>

class DarkMatterParticleContainer
: public NyxParticleContainer<1+AMREX_SPACEDIM>
{
public:
DarkMatterParticleContainer (amrex::Amr* amr)
: NyxParticleContainer<1+AMREX_SPACEDIM>(amr)
{
real_comp_names.clear();
real_comp_names.push_back("mass");
real_comp_names.push_back("xvel");
real_comp_names.push_back("yvel");
real_comp_names.push_back("zvel");
}

using MyParIter = amrex::ParIter<1+AMREX_SPACEDIM>;
using MyConstParIter = amrex::ParConstIter<1+AMREX_SPACEDIM>;

virtual ~DarkMatterParticleContainer () {}

void InitCosmo1ppcMultiLevel(amrex::MultiFab& mf, const amrex::Real disp_fac[], const amrex::Real vel_fac[],
const amrex::Real particleMass, int disp_idx, int vel_idx,
amrex::BoxArray &baWhereNot, int lev, int nlevs);

void AssignDensityAndVels (amrex::Vector<std::unique_ptr<amrex::MultiFab> >& mf, int lev_min = 0) const;

virtual void moveKickDrift (amrex::MultiFab& acceleration, int level, amrex::Real time,
amrex::Real timestep,
amrex::Real a_old = 1.0, amrex::Real a_half = 1.0, int where_width = 0, amrex::Real radius_inner = -1.e34, amrex::Real radius_outer = -1.e34);
virtual void moveKick (amrex::MultiFab& acceleration, int level, amrex::Real time,
amrex::Real timestep,
amrex::Real a_new = 1.0, amrex::Real a_half = 1.0);

void InitFromBinaryMortonFile(const std::string& particle_directory, int nextra, int skip_factor);

};

AMREX_GPU_HOST_DEVICE AMREX_INLINE void update_dm_particle_single (amrex::ParticleContainer<1+AMREX_SPACEDIM, 0>::SuperParticleType& p,
const int nc,
amrex::Array4<amrex::Real const> const& acc,
amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> const& plo,
amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> const& dxi,
const amrex::Real& dt, const amrex::Real& a_prev,
const amrex::Real& a_cur, const int& do_move);

AMREX_GPU_HOST_DEVICE AMREX_INLINE void update_dm_particle_move_single (amrex::ParticleContainer<1+AMREX_SPACEDIM, 0>::SuperParticleType& p,
const int nc,
amrex::Array4<amrex::Real const> const& acc,
amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> const& plo,
amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> const& dxi,
const amrex::Real& dt, const amrex::Real& a_prev,
const amrex::Real& a_cur, const int& do_move);

AMREX_GPU_HOST_DEVICE AMREX_INLINE void store_dm_particle_single (amrex::ParticleContainer<1+AMREX_SPACEDIM, 0>::SuperParticleType& p,
amrex::ParticleContainer<1+AMREX_SPACEDIM+6, 0>::SuperParticleType& p2,
const int nc,
amrex::Array4<amrex::Real const> const& acc,
amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> const& plo,
amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> const& phi,
amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> const& dxi,
const amrex::Real& dt, const amrex::Real& a_prev,
const amrex::Real& a_cur, const int& do_move,
const amrex::Real& radius_inner,
const amrex::Real& radius_outer,
int index, const bool is_file_write=false);

#endif /* _DarkMatterParticleContainer_H_ */

Loading