#include <alphaclusterednucleus.h>
Child of Nucleus for alpha clustered nuclei.
All options from the nucleus will still apply. The alpha-clustered nucleus adds new or updated features which are outlined below.
Definition at line 28 of file alphaclusterednucleus.h.
Public Member Functions | |
| AlphaClusteredNucleus (Configuration &config, int n_test, bool automatic) | |
| Constructor which takes a configuration and the number of test particles. More... | |
| ThreeVector | distribute_nucleon () override |
| Alpha-clustering sampling routine. More... | |
| void | scale_tetrahedron_vertex_positions (double side_length) |
| Scales the tetrahedron vertex positions to have the specified side length. More... | |
Public Member Functions inherited from smash::Nucleus | |
| Nucleus ()=default | |
| default constructor More... | |
| Nucleus (Configuration &config, int nTest) | |
| Constructor for Nucleus, that needs the configuration parameters from the inputfile and the number of testparticles. More... | |
| Nucleus (const std::map< PdgCode, int > &particle_list, int nTest) | |
| Constructor which directly initializes the Nucleus with particles and respective counts. More... | |
| virtual | ~Nucleus ()=default |
| double | mass () const |
| double | woods_saxon (double x) |
| Woods-Saxon distribution. More... | |
| virtual void | arrange_nucleons () |
| Sets the positions of the nucleons inside a nucleus. More... | |
| virtual void | set_parameters_automatic () |
| Sets the deformation parameters of the Woods-Saxon distribution according to the current mass number. More... | |
| virtual void | generate_fermi_momenta () |
| Generates momenta according to Fermi motion for the nucleons. More... | |
| void | boost (double beta_scalar) |
| Boosts the nuclei into the computational frame, such that the nucleons have the appropriate momentum and the nuclei are lorentz-contracted. More... | |
| void | fill_from_list (const std::map< PdgCode, int > &particle_list, int testparticles) |
| Adds particles from a map PDG code => Number_of_particles_with_that_PDG_code to the nucleus. More... | |
| void | shift (double z_offset, double x_offset, double simulation_time) |
| Shifts the nucleus to correct impact parameter and z displacement. More... | |
| virtual void | rotate () |
| Rotates the nucleus using the three euler angles phi, theta and psi. More... | |
| void | copy_particles (Particles *particles) |
| Copies the particles from this nucleus into the particle list. More... | |
| size_t | size () const |
| Number of numerical (=test-)particles in the nucleus: More... | |
| size_t | number_of_particles () const |
| Number of physical particles in the nucleus: More... | |
| size_t | number_of_protons () const |
| Number of physical protons in the nucleus: More... | |
| FourVector | center () const |
| Calculate geometrical center of the nucleus. More... | |
| void | set_label (BelongsTo label) |
| Sets target / projectile labels on nucleons. More... | |
| void | align_center () |
| Shifts the nucleus so that its center is at (0,0,0) More... | |
| virtual double | nucleon_density (double r, double, double) const |
| Return the Woods-Saxon probability density for the given position. More... | |
| virtual double | nucleon_density_unnormalized (double r, double, double) const |
| Return the unnormalized Woods-Saxon distribution for the given position without deformation. More... | |
| virtual double | calculate_saturation_density () const |
| virtual void | set_saturation_density (double density) |
| Sets the saturation density of the nucleus. More... | |
| std::vector< ParticleData >::iterator | begin () |
| For iterators over the particle list: More... | |
| std::vector< ParticleData >::iterator | end () |
| For iterators over the particle list: More... | |
| std::vector< ParticleData >::const_iterator | cbegin () const |
| For const iterators over the particle list: More... | |
| std::vector< ParticleData >::const_iterator | cend () const |
| For const iterators over the particle list: More... | |
| void | set_diffusiveness (double diffuse) |
| Sets the diffusiveness of the nucleus. More... | |
| double | get_diffusiveness () const |
| double | get_saturation_density () const |
| double | default_nuclear_radius () |
| Default nuclear radius calculated as: More... | |
| void | set_nuclear_radius (double rad) |
| Sets the nuclear radius. More... | |
| double | get_nuclear_radius () const |
| void | set_orientation_from_config (Configuration &orientation_config) |
| Set angles for rotation of the nucleus from config file. More... | |
Private Attributes | |
| double | tetrahedron_side_length_ |
| Side length of the tetrahedron used for alpha-clustering. More... | |
| std::vector< ThreeVector > | tetrahedron_vertex_positions_ |
| Positions of the vertices of the regular tetrahedron with center at (0,0,0) used for alpha-clustering. More... | |
| int | tetrahedron_vertex_index_ = 0 |
| An index to iterate through the vertices of the tetrahedron. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from smash::Nucleus | |
| void | random_euler_angles () |
| Randomly generate Euler angles. More... | |
Protected Attributes inherited from smash::Nucleus | |
| std::vector< ParticleData > | particles_ |
| Particles associated with this nucleus. More... | |
| double | saturation_density_ = nuclear_density |
| Saturation density of this nucleus. More... | |
| double | euler_phi_ = 0.0 |
| The Euler angle phi of the three Euler angles used to apply rotations to the nucleus. More... | |
| double | euler_theta_ = 0.0 |
| Euler angle theta. More... | |
| double | euler_psi_ = 0.0 |
| Euler angle psi. More... | |
| bool | random_rotation_ = false |
| Whether the nucleus should be rotated randomly. More... | |
| smash::AlphaClusteredNucleus::AlphaClusteredNucleus | ( | Configuration & | config, |
| int | n_test, | ||
| bool | automatic | ||
| ) |
Constructor which takes a configuration and the number of test particles.
| [in] | config | the input configuration object |
| [in] | n_test | number of test particles |
| [in] | automatic | whether or not the alpha-clustering parameters should be set automatically |
Definition at line 22 of file alphaclusterednucleus.cc.
|
overridevirtual |
Alpha-clustering sampling routine.
This routine samples the nucleon using the Woods-Saxon routine with parameters for Helium and shifts them towards one of the vertices of the tetrahedron
Reimplemented from smash::Nucleus.
Definition at line 66 of file alphaclusterednucleus.cc.
| void smash::AlphaClusteredNucleus::scale_tetrahedron_vertex_positions | ( | double | side_length | ) |
Scales the tetrahedron vertex positions to have the specified side length.
| [in] | side_length | Side length to be used to scale the tetrahedron |
Definition at line 75 of file alphaclusterednucleus.cc.
|
private |
Side length of the tetrahedron used for alpha-clustering.
Definition at line 64 of file alphaclusterednucleus.h.
|
private |
Positions of the vertices of the regular tetrahedron with center at (0,0,0) used for alpha-clustering.
Definition at line 71 of file alphaclusterednucleus.h.
|
private |
An index to iterate through the vertices of the tetrahedron.
Used in the alpha-clustering sampling routine to shift every 4th nucleon to the same vertex.
Definition at line 82 of file alphaclusterednucleus.h.