I have taken a long break from the Sapience Knowledge Base, and I think I’m about ready to resume work on it.
I keep attempting to work on prehistory and antiquity, but as I work through the various countries that are connected, these usually force my attention back to early modern history. So far the United States is in the lead. Colonial history in the 17th century is a particular and personal interest. I am not so much interested in China, but as the largest nation in the world, and one that will be important in earlier history, it’s necessary to work on it. My outline has finally reached the end of the Ming dynasty. India and Pakistan go together, and I’ve reached the beginning of the 18th century when the Mughal empire was at its height. I have Iran to the beginning of the 19th century, which gives me a little more in the Middle East.
In connection with the renewed emphasis on the top-down approach, I have added corresponding stubs for history and sociology to my demonstration program.
Today I started adding stubs to the structure of matter section of physics. It’s important to get to these structure of matter stubs, because these are on the boundary between chemistry and physics, and will let me start to connect the two sciences.
I created a new ChemSubst class, which is supposed to be a parent class for ChemElement, but it has no detail yet. I added a new function to my graphics Object class, and expanded a little development of Arithmetic. I have added (but not yet tested) predecrement and postdecrement operators for the Tiny Whole Numbers class, and an addition operator for Tiny Whole Numbers. I want to rewrite the test driver functions to refer to Tiny Whole Numbers. I would also like to include a calculator program: I have done a version of this before and could do it again, but I need to get back to the books and continue the programming exercises.
I finally sat down and worked through the collision test function of physical systems. In the process, I discovered and fixed a few bugs and added a couple of desirable features, such as tweaking the display of objects and including reminders of which object in a system I am working with. Before I can make much more progress in physics, I need to work on some mathematical functions, and go back to review of the programming texts.
I got most of my basic physics functions divided up and separated out. Physics is divided into subfunctions: The first is mechanics, which deals with motion of bodies and its causes. The simplest subdivision is particle mechanics which deals with particles in which internal motions and rotations are unimportant. The simplest division of particle mechanics is mechanics, which deals with the motion of particles regardless of their causes. So far, Kinematics includes position and velocity. I want to include acceleration, but this requires more mathematics. The next division of particle mechanics is dynamics: The only function I have associated with this involves setting mass. This will eventually include considerations of momentum, impulse, and force. Energetics will involve work and kinetic energy, which also needs more work in mathematics. Particle systems include my examination of collisions
Rigid-body mechanics, deformable body mechanics, and gravitation require better development of systems. Thermodynamics, electromagnetism, and the structure of matter are present, but I still need fundamentals of mechanics.
I decided to concentrate my efforts on the setup of physical systems, and gather the procedures into functions that can be called from other places in the program. This should leave me free to concentrated on other parts of the program. The next step will be to do the same for the procedures of mechanics.
Of course, I have to report on my self-education and computer programming efforts. I’m trying to copy important parts of the Physical system setup procedures into particular specialized areas of physics. There are four divisions of mechanics, and most of what I have included belongs in the particular subdivision of particle mechanics. I have statistical mechanics, classical thermodynamics, and non-classical thermodynamics sections of Thermodynamics, and Electromagnetism has a stub for electrostatics, and needs three more.
I have been throwing most of my limited energy into expanding the demonstration program. Most of the functions I have in system setup are or need to be duplicated in other areas, mostly mechanics. Some of these can be distributed to specific areas of mechanics, and several developments belong specifically to particle mechanics. I cannot make much progress in other sciences without a solid foundation in physics.
However, in order to make progress in physics, I need to make more progress in mathematics, so I am continuing to develop room for the tiny whole numbers, approximate arithmetic, and algebraic functions.
On my demonstration program, I’ve mostly been making room for more functions. I have stubs for four subdivisions of mechanics, which is as far as I’m taking this for now. The next project is copying functions from setup to more specific areas. I have most of chemical substances set up for expansion. More importantly, I’ve made progress on implementing increment operations and the equality operator for tiny whole numbers. I also have a couple of steps for approximate arithmetic and algebra.
It’s been several days since I was able to get to sample programs in my C++ text, but I managed that, also.
I’ve had a hard time being able to concentrate on programming for the past few days. I think I have resolved the naming problem, but in the physics section, the mechanics interface is still clunky. Moving a couple of the setup routines into distinct functions created some linker errors, because of the various assumptions involved, but I have those cleared up. I also have stubs for three of the four primary subdivisions of mechanics, and I am ready to start including functions for thermodynamics, electromagnetism, and the structure of matter. Chemical substances is set up to include more stubs, and so is Personal Studies.