Announcement
Collapse
No announcement yet.
Chemistry!
Collapse
X

SaviorNT repliedJust an update on this. I have NOT stopped working on it, however, the project itself is kind of frozen as I'll need to get consultants in various fields to help (gotta pay them) as well as time/funds to complete.
Leave a comment:

SaviorNT repliedWeekly update:
Started on the basic physics stuff, basically adding the various formulas into the function library, as well as some basic trig functions such as sphere/circle information, displacements (time, location), calculating "the sum of" with a set of numbers in an array, the quadratic equation, and the Pythagorean theorem in their basic forms.
With adding the various "laws", I have started to wonder why all of the formulas are in one dimensional format where we live in a three dimensional space. Of course, it's just vector math, but still.. in school we always dealt with one dimensional spaces, not three dimensional space. Let's take Force:
Positional Displacement = X2  X1
Time Displacement = T2  T2
Velocity = Positional Displacement / Time Displacement
Acceleration = Velocity / Time Displacement
Force = Mass * Acceleration
However, it is always taught that X sub 1 and X sub 2 (X1, X2) are individual floats, not vectors :\ Anyways, due to this, I'm adding one dimensional and three dimensional functions, which return either the float or vector. The above set of formulas return 1 dimensional figures, where as if you change the positional displacement to X1: (X1, Y1, Z1), X2: (X2, Y2, Z2), you can get the force in all three dimensions. I think
In addition, to create a calculator with UMG, I also added a nifty function titled: "String: Set Array Elem With AutoIndex". It would be nice if the compiler wouldn't error when using wildcards, but yea. It does what the title says, it uses the input pins: Target Array (string array), Item (string), and Size to Fit (boolean), gets the length of the array, if the length is 0, then it sets the index to 0. If the length is more than 0, it increments the index (from 0), and then sets the array element. I also have an output pin with the Target Array Out so that the connections are a bit less spaghettified.
Leave a comment:

SaviorNT repliedBit of an update, and alot of work as been done on the project
FunctionLibrary
 Normalized all Input/Output pins so that they have consistent terminology
 Created a simple BuildConstantString which takes the NumberIn, ExponentIn, and returns NumberOut, ExponentOut, and String (It builds a human readable string for the number and exponent, ex: 1.214586789 * 10^46). Any function that returns a number and exponent uses this function to also return a string.
 Added the following constant classes from Physics and Math Constants Library List:
 Universal Constants
 Electromagnetic Constants
 Electromagnetic Radiation Constants
 Electron and Atomic Physics Constants
 PhysicoChemical Constants
New Additions
 Enum: Terms_Common  This enum is apart of the dictionary BP Component, it includes terms which are universal in any science field.
 Enum: Terms_Chemistry  This enum includes terms which are only seen in the chemistry science field the majority of the time.
 Struct: Struct_UserNotes  This struct is designed so that the "player" can create and save notes.
 Struct: Struct_ChemistryLaws  This struct designs the data table for the list of chemistry laws.
 Struct: Struct_FiltrationMethods  This struct designs the data table for the list of filtration methods and steps.
 DataTable: Data_ChemistryLaws  List of laws in the chemistry field. This table does not include any thermodynamic laws (they will go into Data_PhysicsLaws).
 DataTable: Data_FiltrationMethods  Methods and steps for the following filtration methods:
 Gravity Filtration
 Vacuum Filtration
 Distillation
 Crystallization
 Electrolysis
What's Next?
I am still (re)learning all of my basic science fields, starting with chemistry. As I go along the books (Basic Chemistry/Highschool Level up to Advanced College levels), I am continuing to add definitions, formulas, constants, etc... that I find. I had attempted to create Schrodinger's Equation within blueprints, but.. umm.. yea. I'm not quite there yet I also have posted in the material part of the forums requesting help with creating a wave material that obeys wave dynamics with the expectation that I can use that to visualize the doubleslit experiment within the quantum physics aspect of this project.
Books and Study Materials
I figured I would post the study materials that I am using to create this project, in case anyone would like to "follow along"
 Websites
 Books (Amazon Kindle for the win)
 Astronomy Today
 Campbell Biology  10th Edition
 Chemistry, The Central Science
 Essentials of Geology  11th Edition
 Essentials of Oceanography  10th Edition
 Fundamentals of Physics Extended  10th Edition
 Physics  Principles with Applications
 The Physics of Quantum Mechanics
Newest Screenshot  Template_Textbook
All of the "textbook" stuff will scale to whatever the current platform screen size is.
And that's the update! I feel as if instead of being a "developer", I am instead being just a data entry clerk :\ Ah well, it's for the good of mankind, right?Last edited by SaviorNT; 12052016, 03:54 AM.
Leave a comment:

SaviorNT repliedStarted looking into purification, namely for water (curiosity  how to build a "stillsuit" from dune? Get a wicking material as the skin>material as the base, then use a charcoal lining on top, then a waterproof material. Line the inside with tubes to capture the water, feed it into a reverse osmosis + electrodialysis pack, and then feed the water to one container, the waste to another).. anyways, was looking into constants (faraday's constant), and came across another good site:
http://www.ebyte.it/library/educards...csAndMath.html
The entire site looks like it could be pretty useful.
Doesn't need a new post, but if anyone is following the thread:
Originally posted by http://bgr.com/2016/12/02/newelementsdiscoveredperiodicnames/
The periodic table just got some new members, as the International Union of Pure and Applied Chemistry has officially accepted new names for four elements. Element numbers 113, 115, 117 and 118 will no longer be known by their placeholder names, and instead have allnew monikers decided upon by their discoverers.
The discoveries were first recognized about a year ago, and the proposed names for them were decided upon this past June. Now, chemistry’s highest group has decided they are valid and will move forward with the allnew labels.
 Nihonium (Nh), is element 113, and is named for the Japanese word for Japan, which is Nihon.
 Moscovium (Mc), element 115, is named for Moscow.
 Tennessine (Tn), element 117, is named for Tennessee.
 Oganesson (Og), element 118, is named after Yuri Oganessian, honoring the 83yearold physicist whose team is credited with being the top element hunters in the field.
The official names will take the spot of placeholder titles that were given to the elemental numbers prior to their formal discovery. Those names — ununtrium, ununpentium, ununseptium and ununoctium — occupied the seventh row of the periodic table, and will now be discarded.
“The names of the new elements reflect the realities of our present time,” IUPAC President Prof Natalia Tarasova says via press release. “Universality of science, honoring places from three continents, where the elements have been discovered — Japan, Russia, the United States — and the pivotal role of human capital in the development of science, honoring an outstanding scientist — Professor Yuri Oganessian”.
With row seven now completed, chemists look to the road ahead, and hope to discover entirely new elements, keeping science on its toes and periodic table poster printers in business.Last edited by SaviorNT; 12032016, 02:18 AM.
Leave a comment:

SaviorNT replied4 days.. 4 days I have been searching for a (quick) and (modular) way to create the electron shells, until it finally dawned on me while I was cooking some Ramen. Instead of trying to generate all of the torus' using the spline and spline mesh components, why not just make a !@#% torus in Max, and then just scale it up/down + rotation. So in four days, here is what I managed to get done (This is just the Shell Generation function, there are also functions for: GetAtomicInfo, BuildNucleusShell, and BuildNucleus).
Also!! I have something else to share Here is the first look at what a Carbon atom looks like.. or at least, my rendition of it
This is actually a pretty good milestone in the project, as while it is (hugely) simple, it shows that the enums, structs, data tables, and blueprints work. I just need to create a sphere volume that is the same size as the inner shell, and then randomly relocate the protons and neutrons inside of it. After that, I can look at proton/neutron movement inside of the nucleus, and add material effects to "make it look pretty".
Just a little technical explanation as well; there are 3 meshes being used, and I could reduce that down to 2.. everything is being spawned as HISMs, which are, from what I have heard, less expensive than using ISMs. Also there are 1 material, and 5 material instances. (The protons and neutrons cannot be seen, they're all stacked on each other in the center  but they are there, I promise )
Edit: I just wanted to add, before I hit the sack this evening, now that everything is at scale ( 1:100 ), I looked at what a single molecule of H20 looks like.. and wonders never cease to amaze. How the !@#% did the universe decide that these two elements could combine together? If I could compare.. perhaps, it would be like a normal sized car, towing a matchbox car, and that matchbox car is towing another full size car behind it. Double ya tee eff.Last edited by SaviorNT; 11222016, 05:21 AM.
Leave a comment:

Derjyn repliedI'm getting more and more stoked about this, with each each update. I am also obsessed with accuracy to a fault!
Leave a comment:

SaviorNT repliedOriginally posted by Praseodyl View PostI believe the reason for the different results is that the quoted values are the power of the sun (energy per second) while you calculated the overall energy of the sun.
The error introduced by approximating speed of light and sun mass is about 1%. ((1.989 * 10^30 kg))/(2 * 10^30 kg)).
Also, to make your life simpler, you generally don't need 'safe' workarounds for multiplication and division operations of floats. Both operations are 'immune' to rounding errors. In these cases float point precision only affects the number of significant digits of your result which is usually not a problem. You will rarely have input with greater precision anyway and your results can never be more precise than you starting values. This means that the true result of your computation is 1.787 x 10^46 which is well within the precision of single precision floats. The additional digits are not significant.
I hope this doesn't sound too negative. I think its a cool project.
Also, I'm getting close to being able to generate an atom using the values from my data table, yay!
Leave a comment:

Praseodyl repliedOriginally posted by SaviorNT View Post
I'm pretty !@#% OCD when it comes to being accurate. Not sure why, but I just am. If you do a search on my answer for the energy output of the Sun, and cross reference to what is found on the web, you'll see that my answer is far different than say... NASA's answer!.. the reason why is that they are calculating the numbers as approximates, not exacts.
How he/she got this radically different number? By calculating c as 300,000,000 m/s (it is in fact, 299,792,458 m/s), the mass of the sun as 2 * 10^30kg (it is 1.989 * 10^30 kg). Hopefully you guys can see why accuracy is so important to me. And we're going to let these guys fly us to Mars.....
edit 3:
Exponential math functions are done.
The error introduced by approximating speed of light and sun mass is about 1%. ((1.989 * 10^30 kg))/(2 * 10^30 kg)).
Also, to make your life simpler, you generally don't need 'safe' workarounds for multiplication and division operations of floats. Both operations are 'immune' to rounding errors. In these cases float point precision only affects the number of significant digits of your result which is usually not a problem. You will rarely have input with greater precision anyway and your results can never be more precise than you starting values. This means that the true result of your computation is 1.787 x 10^46 which is well within the precision of single precision floats. The additional digits are not significant.
I hope this doesn't sound too negative. I think its a cool project.
Leave a comment:

SaviorNT repliedAnother day, some progress.
Decided to end up keeping floats rather than using integers due to the length limits of them, even if floats can be inaccurate to a fault. Up to the 5th period in the elements, hopefully tomorrow I get to the 7th. Got a bit bored of the periodic table, so created an actor component blueprint named definitions. This will hold the definitions for each subject matter in a series of events named Get (subject) Definitions", which then lead to a collapsed graph with those terms/definitions. The terms are all enumerated, switched, and then the definition variable is set.
Worked a bit on the UMG side of things, and this might raise some eyebrows (in a good way, I hope!)
Main Menu:
Learning Album:
PS: Who do I message to change the thread title.. since this is expanding from strictly chemistry, may as well name it as Science!Last edited by SaviorNT; 11192016, 01:33 AM.
Leave a comment:

SaviorNT repliedEdit: UE4 Integers are 11 digits long (just found out). So while this will work, I'll need to create an array and break up the numbers into smaller parts (5 digits long), and then calculate those. If the end result is > 11 digits long, then I'll have to parse it as a string. The same methodology below still applies, more or less though. Fun times! I'll try to split (at the most) into 3 different integers (33 digits total).. however, I would like to get up to a googolplex in accuracy though (10^100). That shouldn't be too hard though tbh, it's only an array of 20 items that are 5 digits each. Or I can just call it a day and estimate to the 10^10 decimal places instead. /sigh.
Ok, so I have a bit of documentation to share, in regards to the float variables and how to work with HUGE numbers accurately. If this is off, PLEASE PLEASE PLEASE let me know. I am sort of hacking this together I haven't yet looked at how large the Integer variable type can go, however, here is the start:
Let's look at the famous E = MC^2. Now, would the class like to let me know the energy output of our sun is? Let's break it down:
All numbers must be in this format: X.YYYY * 10^Z
X = Integer
Y = Decimal
Z = Exponent
Take for example c; the speed of light, which is 2.99792458 * 10^8 m/s. This would be broken up to:
SpeedOfLightInteger: 2
SpeedOfLightDecimal: 99792458
SpeedOfLightExponent: 8
In order to do math with the speed of light, let's calculate the total energy output of the sun by using Einstein's e=mc^2
Mass of the sun: 1.989 * 10^30 kg
The normal equation for this would be:
e = (1.989 * 10^30 kg)*((2.99792458 * 10^8 m/s)^2)
First, we need to break down each number to it's basic forms:
EnergyInteger = x
EnergyDecimal = y
EnergyExponent = z
SunMassInteger = 1
SunMassDecimal = 989
SunMassExponent = 30
SpeedOfLightInteger: 2
SpeedOfLightDecimal: 99792458
SpeedOfLightExponent: 8
After this is done, it's time to do some math. First up is c^2, which, in normal form, is 8.9875517873681764 * 10^16
First, let's get the simple thing out of the way:
SpeedOfLightExponent = SpeedOfLightExponent + SpeedOfLightExponent
This gives us 10^16
Now, what we need to do is to combine the SpeedOfLightInteger with the SpeedOfLightDecimal:
SpeedOfLightTemp = 299792458
Once we have that integer, we then then multiply that by itself (TempInteger^2):
SpeedOfLightTempInteger = SpeedOfLightTempInteger * SpeedOfLightTempInteger
SpeedOfLightLightTempInteger = 299792458 * 299792458
SpeedOfLightLightTempInteger = 89875517873681764
After this is done, we then need to take the first number from the left, and set our SpeedOfLightInteger to that number.
SpeedOfLightInteger = 8
After that, we then set the SpeedOfLightDecimal to the remaining numbers:
SpeedOfLightDecimal = 9875517873681764
If we then perform an combine all the integers, and create a string from it:
SpeedOfLightInteger + "." + SpeedOfLightDecimal + " x 10^" + "SpeedOfLightExponent" we will get:
SpeedOfLightString = 8.9875517873681764 * 10^16
So, this calculates c^2, what about multiplying that number by m? Same process applies!
Take our exponents and add them together:
EnergyExponent = SpeedOfLightExponent + SunMassExponent
EnergyExponent = 16 + 30
EnergyExponent = 46
And then, we combine the xInteger with the xDecimal for both values and then multiply together:
SpeedOfLightTempInteger = 89875517873681764
MassOfSunTempInteger = 1989
EnergyTempInteger = 178762405050753028596
EnergyInteger = 1
EnergyDecimal = 78762405050753028596
EnergyExponent = 46
EnergyString = 1.78762405050753028596 x 10^46

So the plan here is to create separate math functions, Add, Subtract, Multiply, Divide with 6 different Integer inputs, and output 3 integers and a string variable using the same type of process as described above. I will also need to modify the Data Table's Struct to account for everything being in integers, as well as redo the functions so the float values can be converted to the integer format instead. Also, it will be nice to get the naming normalized (as above, that's what I'm going with... <name>Integer, <name>Decimal, <name>Exponent, <name>String.
Edit 2: Justification
I'm pretty !@#% OCD when it comes to being accurate. Not sure why, but I just am. If you do a search on my answer for the energy output of the Sun, and cross reference to what is found on the web, you'll see that my answer is far different than say... NASA's answer!.. the reason why is that they are calculating the numbers as approximates, not exacts.
Originally posted by http://helios.gsfc.nasa.gov/qa_sun.html, Dr. Louis Barbier
The Sun's output is 3.8 x 1033 ergs/second, or about 5 x 1023 horsepower. How much is that? It is enough energy to melt a bridge of ice 2 miles wide, 1 mile thick, and extending the entire way from the Earth to the Sun, in one second.
Dr. Louis Barbier
How he/she got this radically different number? By calculating c as 300,000,000 m/s (it is in fact, 299,792,458 m/s), the mass of the sun as 2 * 10^30kg (it is 1.989 * 10^30 kg). Hopefully you guys can see why accuracy is so important to me. And we're going to let these guys fly us to Mars.....
edit 3:
Exponential math functions are done.Last edited by SaviorNT; 11172016, 09:59 PM.
 1 like
Leave a comment:

Derjyn repliedHey SaviorNT,
This is a very welcome asset. I thought about doing something similar, though got hung up with several other projects. It looks like what you're working on here is gonna blow what I had planned out of the water! I also had plans to do a reusable system for electronics engineering... Your organization from the first post has given me some more inspiration for the direction of that. I look forward to tinkering with this.
Thanks again, and keep up the good work!
Leave a comment:
Leave a comment: