A practice in int/float handling and structs
This commit is contained in:
37
EmpiricalMass/main.cpp
Normal file
37
EmpiricalMass/main.cpp
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <cmath>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
struct Isotope
|
||||||
|
{
|
||||||
|
int A{};
|
||||||
|
int Z{};
|
||||||
|
};
|
||||||
|
|
||||||
|
float empiricalMass(Isotope iso) {
|
||||||
|
int N = iso.A - iso.Z;
|
||||||
|
int delta = -1;
|
||||||
|
|
||||||
|
if (iso.A % 2 != 0) {
|
||||||
|
delta = 0; // mixed parity
|
||||||
|
} else if (iso.Z % 2 == 0 && N % 2 == 0) {
|
||||||
|
delta = 1; // even-even parity
|
||||||
|
}
|
||||||
|
|
||||||
|
float B = 15.75 * iso.A - 94.8 * pow((iso.A/2. - iso.Z), 2.) / iso.A
|
||||||
|
- 17.8 * pow(iso.A, 2./3.) - 0.71 * pow(iso.Z, 2.) * pow(iso.A, -1./3.)
|
||||||
|
+ 34 * delta * pow(iso.A, -3./4.);
|
||||||
|
|
||||||
|
return B/iso.A;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
Isotope U235{ 235, 92 };
|
||||||
|
float mass = empiricalMass(U235);
|
||||||
|
cout << "U235: ";
|
||||||
|
cout << mass;
|
||||||
|
cout << " MeV per nucleon\n";
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user