New developments in code, documentation and website are reported here.
Wrote all the Marching-Cubes / Tetra-Cubes 3D and 2D code needed
to render solid orbitals. The 2D code is already debugged and working fine.
Added new GAMGI mirrors:
http://atom.ist.utl.pt,
http://gamgi.ist.utl.pt,
ftp://atom.ist.utl.pt.
Added structure and info files for beta-quartz, beta-cristobalite and beta-trydimite.
What is new:
- Synced gamgi and gamgi_exp source branches.
- Updated make_local, to include the paths:
-I/usr/lib/i386-linux-gnu/glib-2.0/include,
-I/usr/lib/i386-linux-gnu/gtk-2.0/include, used by Ubuntu.
- Fixed a bug in the new solid orbital code: the r length test
makes sense in the wired representation but not in the solid one!
- The new recursive code works for bit arrays
as large as 160x160x160, in the worst case.
- The recursive code to find outer surfaces is crashing for
bit arrays larger than 50x50x50. Looking for a loop alternative.
- Orbital code: wavefunction interpolation to produce the
triangle-based representation is working really well.
- The triangle-based 2D solid rendering of planar surfaces in H-based
orbitals is now well tested and working fine! This is crucial to build
a octant-based representation of these orbitals, where users can choose
which octants to show.
- Added new mirrors, http://atom.ist.utl.pt
and ftp://atom.ist.utl.pt,
to futurely host gamgi.org.
- Added nice structure and info files for high-temperature
beta-quartz, beta-cristobalite and beta-trydimite.
- Implemented a new mirror:
http://gamgi.ist.utl.pt/ or
http://www.gamgi.ist.utl.pt/.
- Simplified the way H-Orbital octants are selected in Wired mode.
- For each H orbital octant, wrote the topological code to
build all the triangles needed to describe the outer 3D isosurface
(tetra-cubes algorithm), plus the internal 2D octant boundaries.
- For each H orbital octant, wrote and tested the bit array code
needed to eliminate the inner isofurfaces and show only the outer one.
- Simplified the octant binary code in gamgi_chem_orbital.c.
What is next:
- Rewrite the About dialog, in the notebook form, to
include pages for Developers, Contributors, Supporters.
- Add a task id to operactions involving multiple scans to
guarantee that there is no flag corruption when bonds are
created between different molecules.
- Add a bond angle, which is useful to control double bonds
in solid mode.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
Implemented Orbital->Copy, Orbital->Link, Orbital->Remove dialogs.
Improved interface for Orbital->Create and all Object->Copy dialogs.
Added Help->Current and Help->Topic documentation for dialogs
Orbital->Create, Orbital->Copy, Orbital->Link, Orbital->Remove.
What is new:
- Improved readability in all Object->Copy dialogs.
- Added documentation for Orbital->Create, Orbital->Copy,
Orbital->Link and Orbital->Remove.
- Upgraded Help->Current and Help->Topic to allocate
Orbital->Create, Orbital->Copy, Orbital->Link, Orbital->Remove.
- Synced gamgi and gamgi_exp trees.
- Orbital->Link is now working fine (lists of orbitals not implemented yet).
- Fixed a glitch in all link_object.html files, resulting in a GAMGI
error message when the Help sub-system tried to open one of these files.
- Orbital->Copy is now working fine (lists of orbitals not implemented yet).
- Orbital->Remove is now working fine (lists of orbitals not implemented yet).
- Started building the dialogs Orbital->Copy, Orbital->Link,
and Orbital->Remove.
- The Octants layout, in the Orbital->Create dialog, is much more
intuitive now.
What is next:
- Rewrite the About dialog, in the notebook form, to
include pages for Developers, Contributors, Supporters.
- Add a task id to operactions involving multiple scans to
guarantee that there is no flag corruption when bonds are
created between different molecules.
- Add a bond angle, which is useful to control double bonds
in solid mode.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
All the Hydrogen based orbitals from 1s to 6h are now working fine in GAMGI,
as clouds of dots above a given density. Default values for threshold
density, number of points and sampling radius were extensively studied
for all orbitals, to guarantee scientific correctness and optimal
visual representations. Solid representations of these orbitals
and complex charge descriptions of molecules and crystals, obtained
from ab-initio calculations done with other computer packages,
are planned to go next.
What is new:
- Synced gamgi/ (with GtkGLExt) and gamgi_exp/ (with GLX) versions.
- Filtering volume octants are now working fine for H orbitals.
- Completed search for best default values for H based orbitals.
Default density is 1E-6, which is needed to show all regions in 6s
orbitals. Points is 50000 x n, which is a reasonable compromise.
Default radius is calculated scanning from the last maximum in f2r2
radial density, plus a 2.0 minimum length, until the maximum density
(searching on theta, phi) becomes lower than the default density.
- Improved, redesigned the Orbital->Create dialog.
- H orbitals are now working fine in Gamgi. Looking
now for the best default values.
- Added all the code needed to build and render H orbitals.
- Optimized H orbital code for speed.
- For all Hydrogen based orbitals from n = 1 to 6,
calculated the distances for radial polinomia maxima.
- For all Hydrogen based orbitals from n = 1 to 6,
calculated the distances for radial polinomia zeros.
- Orbital objects can now be created, scaled (around the current
center), moved, rotated, as any other Gamgi object.
- Completed the dialog Orbital->Create to build Hydrogen based
orbitals.
- Wrote the graphic engine code to render Hydrogen based orbitals
in dotted mode.
- Added and tested the s, p, d, f, g, h Hydrogen based
orbitals for n = 6, in cartesian x,y,z coordinates.
What is next:
- Rewrite the About dialog, in the notebook form, to
include pages for Developers, Contributors, Supporters.
- Add a task id to operactions involving multiple scans to
guarantee that there is no flag corruption when bonds are
created between different molecules.
- Add a bond angle, which is useful to control double bonds
in solid mode.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.
Added all the Laguerre and Legendre functions needed
to build Hidrogen based atomic orbitals up to 5g, in
xyz coordinates. Successfully tested dotted models of
s,p,d,f,g Hydrogen based orbitals up to 5g. Found good
algorithms to build surface models of orbitals. Wrote
a first version of dialog Orbital->Create. Fixed two bugs
on importing, exporting clusters, groups to XML files.
What is new:
- Added all the data needed to describe Hdrogen
based orbitals lower than h to gamgi_chem_orbital.c.
- Completed a first version for the Hydrogen-based orbitals interface.
- I am planning to implement a tetra-cubes algorithm (a variation
of marching cubes) to polygonize orbital representations in Gamgi.
According to Wikipedia, a patent
on marching cubes was issued in 1987 and expired in 2005.
- Started creating dialog Orbital->Create.
- Implemented the nine g orbitals. They seem to be working fine.
- Completed the conversion from radius,tetha,phi
to x,y,z coordinates for all g orbitals.
- Verified (again) the conversion from radius,theta,phi
to x,y,z coordinates for all p, d, f orbitals.
- Eliminated uneeded cluster->dots and solved a bug which prevented
cluster Voronoi seeds from being exported and imported from file.
- Fixed a bug in expat import/export code: unlike Groups, Clusters were
not properly labeled as containers (the default) or polytopes, so polytope
data was missing parameters when exported / imported.
- Hydrogen-based atomic orbitals are working fine, for s, p, d, f
orbitals, currently represented only as dot clouds.
What is next:
- Rewrite the About dialog, in the notebook form, to
include pages for Developers, Contributors, Supporters.
- Add a task id to operactions involving multiple scans to
guarantee that there is no flag corruption when bonds are
created between different molecules.
- Add a bond angle, which is useful to control double bonds
in solid mode.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances,
angles, etc. on real time.