#include <deformednucleus.h>
DeformedNucleus: Child of nucleus for deformed nuclei.
All options from the nucleus will still apply. The deformed nucleus adds new or updated features which are outlined below.
Definition at line 38 of file deformednucleus.h.
Public Member Functions | |
DeformedNucleus (const std::map< PdgCode, int > &particle_list, int nTest) | |
Constructor for DeformedNucles which takes a particle list and the number of testparticles. More... | |
DeformedNucleus (Configuration &config, int nTest, bool auto_deformation) | |
Constructor for DeformedNucleus, that needs the configuration parameters from the inputfile and the number of testparticles. More... | |
ThreeVector | distribute_nucleon () override |
Deformed Woods-Saxon sampling routine. More... | |
void | set_deformation_parameters_automatic () |
Sets the deformation parameters of the radius according to the current mass number. More... | |
void | set_deformation_parameters_from_config (Configuration &config) |
Set parameters for spherical deformation of the nucleus from the values specified in the configuration file. More... | |
void | set_orientation_from_config (Configuration &orientation_config) |
Set angles for orientation of nucleus from config file. More... | |
void | rotate () override |
Rotates the nucleus according to members nucleus_polar_angle_ and nucleus_azimuthal_angle_ and updates nucleon positions. More... | |
double | get_saturation_density () const |
double | nucleon_density (double r, double cosx, double phi) const override |
Return the deformed Woods-Saxon probability density for the given position. More... | |
double | nucleon_density_unnormalized (double r, double cosx, double phi) const override |
Return the unnormalized deformed Woods-Saxon distribution for the given position. More... | |
double | integrant_nucleon_density_phi (double r, double cosx) const |
Return the integral over the azimuthal angle phi. More... | |
double | calculate_saturation_density () const override |
void | set_beta_2 (double b2) |
Set deformation coefficient for Y_2_0. More... | |
void | set_gamma (double ga) |
Set the triaxiality coefficient gamma for Y_2_0 and Y_2_2. More... | |
void | set_beta_3 (double b3) |
Set deformation coefficient for Y_3_0. More... | |
void | set_beta_4 (double b4) |
Set deformation coefficient for Y_4_0. More... | |
void | set_polar_angle (double theta) |
Set the nucleus polar angle. More... | |
void | set_azimuthal_angle (double phi) |
Set the nucleus azimuthal angle. More... | |
void | set_angle_psi (double psi) |
Set the angle psi. More... | |
double | get_beta2 () |
return the beta2 value. More... | |
double | get_beta3 () |
return the beta3 value. More... | |
double | get_beta4 () |
return the beta4 value. 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 | set_parameters_from_config (Configuration &config) |
Sets the parameters of the Woods-Saxon according to manually added values in the configuration file. 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... | |
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 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 |
Private Attributes | |
double | beta2_ = 0.0 |
Deformation parameter for angular momentum l=2. More... | |
double | gamma_ = 0.0 |
Triaxiality parameter for angular momentum l=2. More... | |
double | beta3_ = 0.0 |
Deformation parameter for angular momentum l=3. More... | |
double | beta4_ = 0.0 |
Deformation parameter for angular momentum l=4. More... | |
Angles | nuclear_orientation_ |
Nucleus orientation (initial profile in xz plane) in terms of a pair of angles (theta, phi) More... | |
bool | random_rotation_ = false |
Whether the nuclei should be rotated randomly. 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_ |
Euler angel phi. More... | |
double | euler_theta_ |
Euler angel theta. More... | |
double | euler_psi_ |
Euler angel psi. More... | |
smash::DeformedNucleus::DeformedNucleus | ( | const std::map< PdgCode, int > & | particle_list, |
int | nTest | ||
) |
Constructor for DeformedNucles which takes a particle list and the number of testparticles.
This constructor is only used for testing purposes.
[in] | particle_list | Map with PDGCode and number of particles which make up the nucleus |
[in] | nTest | number of testparticles |
Definition at line 21 of file deformednucleus.cc.
smash::DeformedNucleus::DeformedNucleus | ( | Configuration & | config, |
int | nTest, | ||
bool | auto_deformation | ||
) |
Constructor for DeformedNucleus, that needs the configuration parameters from the inputfile and the number of testparticles.
[in] | config | contains the parameters from the inputfile on the numbers of particles with a certain PDG code |
[in] | nTest | number of testparticles |
[in] | auto_deformation | whether or not deformation parameters should be set automatically |
Definition at line 25 of file deformednucleus.cc.
|
overridevirtual |
Deformed Woods-Saxon sampling routine.
Reimplemented from smash::Nucleus.
Definition at line 41 of file deformednucleus.cc.
void smash::DeformedNucleus::set_deformation_parameters_automatic | ( | ) |
Sets the deformation parameters of the radius according to the current mass number.
The deformation parameters are taken from Moller:1993ed [38]. Corrections to the deformation parameter beta2 in Uranium come from Kuhlman:2005ts [32]. For finite nucleon size corrections to the nuclear density and radius for copper and gold, see Hirano:2009ah [25], and Hirano:2010jg [27] for uranium.
Definition at line 63 of file deformednucleus.cc.
void smash::DeformedNucleus::set_deformation_parameters_from_config | ( | Configuration & | config | ) |
Set parameters for spherical deformation of the nucleus from the values specified in the configuration file.
config | The configuration for the deformation of this nucleus (projectile or target). |
Definition at line 158 of file deformednucleus.cc.
void smash::DeformedNucleus::set_orientation_from_config | ( | Configuration & | orientation_config | ) |
Set angles for orientation of nucleus from config file.
[in] | orientation_config | The configuration for the deformation of this nucleus (projectile or target). |
Definition at line 175 of file deformednucleus.cc.
|
overridevirtual |
Rotates the nucleus according to members nucleus_polar_angle_ and nucleus_azimuthal_angle_ and updates nucleon positions.
Reimplemented from smash::Nucleus.
Definition at line 219 of file deformednucleus.cc.
|
inline |
Definition at line 102 of file deformednucleus.h.
|
overridevirtual |
Return the deformed Woods-Saxon probability density for the given position.
This corresponds to the nuclear density at the very same position.
[in] | r | The radius at which to sample |
[in] | cosx | The cosine of the polar angle at which to sample |
[in] | phi | The azimuthal angle at which to sample |
Reimplemented from smash::Nucleus.
Definition at line 260 of file deformednucleus.cc.
|
overridevirtual |
Return the unnormalized deformed Woods-Saxon distribution for the given position.
[in] | r | The radius |
[in] | cosx | The cosine of the polar angle |
[in] | phi | The azimuthal angle |
Reimplemented from smash::Nucleus.
Definition at line 274 of file deformednucleus.cc.
double smash::DeformedNucleus::integrant_nucleon_density_phi | ( | double | r, |
double | cosx | ||
) | const |
Return the integral over the azimuthal angle phi.
[in] | r | The radius |
[in] | cosx | The cosine of the polar angle |
Definition at line 288 of file deformednucleus.cc.
|
overridevirtual |
Reimplemented from smash::Nucleus.
Definition at line 302 of file deformednucleus.cc.
|
inline |
Set deformation coefficient for Y_2_0.
[in] | b2 | deformation coefficient for l=2 |
Definition at line 145 of file deformednucleus.h.
|
inline |
Set the triaxiality coefficient gamma for Y_2_0 and Y_2_2.
[in] | ga | triaxiality coefficient for l=2 |
Definition at line 150 of file deformednucleus.h.
|
inline |
Set deformation coefficient for Y_3_0.
[in] | b3 | deformation coefficient for l=3 |
Definition at line 155 of file deformednucleus.h.
|
inline |
Set deformation coefficient for Y_4_0.
[in] | b4 | deformation coefficient for l=4 |
Definition at line 160 of file deformednucleus.h.
|
inline |
Set the nucleus polar angle.
[in] | theta | Polar angle of position inside nucleus |
Definition at line 165 of file deformednucleus.h.
|
inline |
Set the nucleus azimuthal angle.
[in] | phi | Azimuthal angle of position inside nucleus |
Definition at line 172 of file deformednucleus.h.
|
inline |
Set the angle psi.
[in] | psi | Angle psi for properly rotating nucleus |
Definition at line 179 of file deformednucleus.h.
|
inline |
|
inline |
|
inline |
|
private |
Deformation parameter for angular momentum l=2.
Definition at line 195 of file deformednucleus.h.
|
private |
Triaxiality parameter for angular momentum l=2.
Definition at line 197 of file deformednucleus.h.
|
private |
Deformation parameter for angular momentum l=3.
Definition at line 199 of file deformednucleus.h.
|
private |
Deformation parameter for angular momentum l=4.
Definition at line 201 of file deformednucleus.h.
|
private |
Nucleus orientation (initial profile in xz plane) in terms of a pair of angles (theta, phi)
Definition at line 206 of file deformednucleus.h.
|
private |
Whether the nuclei should be rotated randomly.
Definition at line 210 of file deformednucleus.h.