Version: SMASH-2.0
deformednucleus.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014-2020
3  * SMASH Team
4  *
5  * GNU General Public License (GPLv3 or later)
6  */
7 #ifndef SRC_INCLUDE_SMASH_DEFORMEDNUCLEUS_H_
8 #define SRC_INCLUDE_SMASH_DEFORMEDNUCLEUS_H_
9 
10 #include <map>
11 
12 #include "angles.h"
13 #include "configuration.h"
14 #include "forwarddeclarations.h"
15 #include "nucleus.h"
16 #include "threevector.h"
17 
18 namespace smash {
19 
27 double y_l_0(int l, double cosx);
28 
36 class DeformedNucleus : public Nucleus {
37  public:
44  DeformedNucleus(const std::map<PdgCode, int> &particle_list, int nTest);
54  DeformedNucleus(Configuration &config, int nTest, bool auto_deformation);
62 
74 
83 
89  void set_orientation_from_config(Configuration &orientation_config);
94  void rotate() override;
95 
104  double nucleon_density(double r, double cosx) const override;
105 
110  inline void set_beta_2(double b2) { beta2_ = b2; }
115  inline void set_beta_4(double b4) { beta4_ = b4; }
120  inline void set_polar_angle(double theta) {
122  }
127  inline void set_azimuthal_angle(double phi) {
129  }
133  inline double get_beta2() { return beta2_; }
137  inline double get_beta4() { return beta4_; }
138 
139  private:
141  double beta2_ = 0.0;
143  double beta4_ = 0.0;
152  bool random_rotation_ = false;
153 };
154 
155 } // namespace smash
156 
157 #endif // SRC_INCLUDE_SMASH_DEFORMEDNUCLEUS_H_
smash
Definition: action.h:24
smash::Nucleus
A nucleus is a collection of particles that are initialized, before the beginning of the simulation a...
Definition: nucleus.h:27
smash::DeformedNucleus::beta2_
double beta2_
Deformation parameter for angular momentum l=2.
Definition: deformednucleus.h:141
smash::DeformedNucleus::set_beta_4
void set_beta_4(double b4)
Set deformation coefficient for Y_4_0.
Definition: deformednucleus.h:115
smash::Angles::set_phi
void set_phi(const double phi)
Sets the azimuthal angle.
Definition: angles.h:194
smash::DeformedNucleus::nuclear_orientation_
Angles nuclear_orientation_
Nucleus orientation (initial profile in xz plane) in terms of a pair of angles (theta,...
Definition: deformednucleus.h:148
smash::DeformedNucleus::beta4_
double beta4_
Deformation parameter for angular momentum l=4.
Definition: deformednucleus.h:143
smash::DeformedNucleus::distribute_nucleon
ThreeVector distribute_nucleon() override
Deformed Woods-Saxon sampling routine.
Definition: deformednucleus.cc:125
smash::DeformedNucleus::get_beta4
double get_beta4()
return the beta4 value.
Definition: deformednucleus.h:137
smash::DeformedNucleus::rotate
void rotate() override
Rotates the nucleus according to members nucleus_polar_angle_ and nucleus_azimuthal_angle_ and update...
Definition: deformednucleus.cc:270
smash::Angles::set_theta
void set_theta(const double theta)
Set the polar angle.
Definition: angles.h:218
angles.h
smash::Configuration
Interface to the SMASH configuration files.
Definition: configuration.h:464
forwarddeclarations.h
smash::DeformedNucleus
DeformedNucleus: Child of nucleus for deformed nuclei.
Definition: deformednucleus.h:36
smash::ThreeVector
Definition: threevector.h:31
smash::DeformedNucleus::nucleon_density
double nucleon_density(double r, double cosx) const override
Return the deformed Woods-Saxon probability density for the given position.
Definition: deformednucleus.cc:302
threevector.h
smash::DeformedNucleus::set_beta_2
void set_beta_2(double b2)
Set deformation coefficient for Y_2_0.
Definition: deformednucleus.h:110
smash::y_l_0
double y_l_0(int l, double cosx)
Spherical harmonics Y_2_0 and Y_4_0.
Definition: deformednucleus.cc:290
nucleus.h
smash::DeformedNucleus::set_orientation_from_config
void set_orientation_from_config(Configuration &orientation_config)
Set angles for orientation of nucleus from config file.
Definition: deformednucleus.cc:237
smash::DeformedNucleus::set_azimuthal_angle
void set_azimuthal_angle(double phi)
Set the nucleus azimuthal angle.
Definition: deformednucleus.h:127
smash::DeformedNucleus::set_deformation_parameters_from_config
void set_deformation_parameters_from_config(Configuration &config)
Set parameters for spherical deformation of the nucleus from the values specified in the configuratio...
Definition: deformednucleus.cc:226
configuration.h
smash::DeformedNucleus::get_beta2
double get_beta2()
return the beta2 value.
Definition: deformednucleus.h:133
smash::Angles
Angles provides a common interface for generating directions: i.e., two angles that should be interpr...
Definition: angles.h:59
smash::DeformedNucleus::DeformedNucleus
DeformedNucleus(const std::map< PdgCode, int > &particle_list, int nTest)
Constructor for DeformedNucles which takes a particle list and the number of testparticles.
Definition: deformednucleus.cc:106
smash::DeformedNucleus::set_polar_angle
void set_polar_angle(double theta)
Set the nucleus polar angle.
Definition: deformednucleus.h:120
smash::DeformedNucleus::random_rotation_
bool random_rotation_
Whether the nuclei should be rotated randomly.
Definition: deformednucleus.h:152
smash::DeformedNucleus::set_deformation_parameters_automatic
void set_deformation_parameters_automatic()
Sets the deformation parameters of the radius according to the current mass number.
Definition: deformednucleus.cc:146