New developments in code, documentation and website are reported here.
Orbital objects can now be exported, imported to GAMGI native XML files.
Replaced the recursive static_outside routine by a loop and stack version,
thus removing a critical bottleneck in the solid orbital code. Fixed mem
leaks in GTK code, sintax bugs in object selection by color, warnings
due to unnused variables, etc.
What is new:
- Synced gamgi/src and gamgi_exp/src source trees.
- Added a screenshot showing BCC, CFC octahedral interstices: spheres, octahedra.
- Added two screenshots showing H-based orbitals, as clouds of points.
- Fixed about 25 warnings resulting from variables
initialised but not really used.
- Found and removed a bug in most Object->Select dialogs,
affecting object selection by color: search for "R", "G", "B",
the new labels, not for "Red", Green", "Blue", the old ones.
- Added proper default names to H-based orbitals.
- The 3D code for solid orbitals 3D is looking
really good, and very fast to get and manipulate!
- Improved static_outside in gamgi_chem_orbital.c: the new version
is faster, simpler, and works for any sampling accuracy.
- Identified and removed a mem leak in all gtk_container_get_children calls.
The problem occurred in gamgi_gtk_dialog.c and gamgi_gtk_statusbar.c.
- Replaced the recursive code in static_outside in gamgi_chem_orbital.c
by a loop-stack version, removing the bottle-neck posed by recursion
in the maximum number of slices allowed to render solid orbitals.
- Atomic H-based orbitals can now be imported from GAMGI native XML files.
- Atomic H-based orbitals can now be exported to GAMGI native XML files.
- Octants, Seed are now permanent orbital properties.
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.
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.