GAMGI new
New developments in code, documentation and website are reported here.
GAMGI 0.17.1
7th March 2014
Reviewed all Formats documentation and updated for Cluster, Group, Plane, Direction objects. Changed type for reference in XML group elements. Updated Orbital interface. Reviewed GtK and OpenGL interface. Renewed gamgi.org domain name until 2020 and GAMGI EU trademark until 2024. Started using sha256sum to checksum distribution tarball files.

### What is new:

- Fixed a bug just introduced: we cannot unref the GDK visual after removing a GL context. Just removed this code. Apparently GTK does this when the widget is destroyed.
- Improved gamgi_gtk_area.c, used in the X version of GAMGI, that replaces the GTKGLExt library by our own GLX-based code. Javier Cabezas ported this code to GTK 3 and is working fine! Back ported changes so the differences between the code for GTK 2 and GTK 3 are absolutely minimal.
- We cannot use r,g,b colors because of a,b,c cell axes.
- Improved Axes layout in Orbital->Create and Orbital->Modify dialogs.
- Changed label Model to Scope in Orbital->Create and Orbital->Modify and changed Help interface accordingly.
- Checked all Help Formats documentation pages.
- Updated Help documentation for Cluster Formats.
- cluster->paints arrays are no longer zero-terminated.
- Synced gamgi and gamgi_exp branches.
- In XML files, in group elements, replaced attribute type by reference.
- Updated Help documentation for Plane and Direction Formats.
- Updated Help documentation for Group Interfaces and Formats.
- Renewed the EU trademark GAMGI until 2024.
- Updated the source code and documentation license to GPL v3.
- Started using sha256sum to checksum all distribution files.
- Renewed the gamgi.org domain name registration until 2020.

### 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 documentation about lists of objects.
- Write documentation about Orbitals.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances, angles, etc. on real time.

GAMGI 0.17
20th December 2013
Fixed a math bug in the Hydrogen orbital code. Fixed the way the Debye-Waller atomic temperature factor is handled. Fixed a makefile bug in the release without GtkGlExt. Orbital->Select is now fully working. Simplified the way axes are handled for orbitals. Added more options to create lists of directions and planes. Updated documentation for Formats and Interfaces, regarding orbitals, directions, planes. Changed some XML attributes for cell, direction, plane elements.

### What is new:

- Fixed a makefile bug (introduced in gamgi0.15.6) in the GAMGI branch that does not require the GtkGlExt library: the make_rules contained gtkglext dependencies that should not be there.
- Planes, Directions can now be seleted by projection net: Wulff or Schmidt.
- Synced code, documentation and data files between gamgi and gamgi_exp distribution trees.
- Checked dat/orbital XML files to update orbital axes attributes.
- Checked all dat/ XML files to replace attribute type by label, in atom elements.
- Checked all dat/ XML files to replace attribute type by model, in plane, direction, cell elements.
- For the sake of consistency, replaced globally the name projection by net in direction and plane code and XML elements.
- For the sake of consistency, replaced globally the name type by model in cell, plane, direction code and XML elements.
- Changed label Type to Model in Cell->Create and Cell->Modify.
- Changed label Method to Type in Bond->Create.
- Updated Help->Formats documentation for XML Plane and Direction objects.
- Updated Help->Interfaces documentation for Type and Projection in Plane->Create, Plane->Modify, Direction->Create, Direction->Modify.
- The Debye-Waller atomic temperature can now take values only between 0.0 (blue) and 100.0 (red) as is usual in this analysis.
- Updated Interfaces and Formats documentation for Bond objects.
- Fixed the default Debye-Waller atomic temperature: the new value is 0.0, corresponding to an atom with a well known position.
- Updated Formats documentation for Atom and Cell objects.
- Help->Current and Help->Topic can now read the documentation for Orbital->Modify.
- Wrote documentation for Orbital->Modify.
- Updated documentation for Orbital->Create.
- Orbital axes are now handled in a much simpler way, in Orbital->Create, Orbital->Modify and XML native files.
- Orbital->Select is now working fine for all options, including the many properties that can be used to select orbitals.
- Simplified slightly the functions gamgi_gtk_select_*.c.
- Fixed two bugs in the H orbitals code, introduced in GAMGI 0.16.6: 1) the terms rho**L (from Laguerre polynomials) and 1/r**L (from Legendre functions) cancel each other, apart from a constant that was missing. 2) the default radius calculation was missing the rho**L term.
- Lists of Planes can now be selected by model: Polygon, Pole, Trace, Vector.
- Lists of Directions can now be selected by model: Line, Pole, Trace.

### 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 documentation about lists of objects.
- Write documentation about Orbitals.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances, angles, etc. on real time.

GAMGI 0.16.8
31st October 2013
Fixed several important bugs related with: object selection by region, Reset of multiple windows with Lists selected, creating multiple crystallographic Plane/Direction ranges, building RCP structures. Fixed other bugs related with: Pole/Trace simultaneous creation, crystallographic Plane/Direction names, visual aspect and object selection in stereographic projections with Poles and Traces. Lists of Orbitals are now working fine. Orbital->Select is already working for some options.

### What is new:

- In Stereographic Projections, raised slightly the z-height in pole bitmaps (GAMGI_MESA_OFFSET_BITMAP), so these always appear above traces. This fixes a visual glitch but also makes it much easier to select poles with traces around, as colors are now clearly separated.
- Synced gamgi and gamgi_exp code branchs.
- Updated static_press in Plane->Modify and Direcyion->Modify, so the object name is not overwritten by automatic name setting.
- Automatic name changing in Plane->Modify and Direction->Modify is working fine now, for crystallographic planes,diretcions.
- Found and removed a bug in Plane->Create and Direction->Create: in some cases, the object name indicated by the user was ignored.
- Found and removed a serious bug in Plane->Create and Direction->Create: after creating planes/directions using lists previously created with the List second level dialog, these were not properly reset. In some circunstances this could crash GAMGI.
- Found and removed a bug in Plane->Create and Direction->Create: Pole and Trace were not created simultaneosuly, when required, only one each time.
- Orbital->Select is now working. Lists of Orbitals can be copied, linked, selected, modified, removed, as for other objects.
- Synced gamgi and gamgi_exp code branchs.
- Fixed Cell->Link: it is working (again) fine for lists of Cells, in Object (above and below), Crystal and Random modes.
- Found and removed a simple but serious bug: when multiple windows were open and a list of objects was active and selected as the current object, Reset (but not Exit) would crash Gamgi.
- Cell->Link Random (RCP) was not working: replaced by older code. Cell->Link needs more work.
- Compiling again with -O3 flag.
- Fixed a serious bug in all Object->Select dialogs, in the method Region: when the sampling rectangle was not fully inside the graphic area, some of the sampled colors would be undefined and GAMGI would crash when pressing Ok. The crashes were detected a long time ago, but the cause was unclear until 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 documentation about lists of objects.
- Write documentation about Orbitals.
- Write tutorials about crystalographic and atomic Plane,Direction usage.
- Implement dynamic text objects, to measure distances, angles, etc. on real time.

GAMGI 0.16.7
3rd September 2013
Implemented Orbital->Modify, which is now working fine for single orbitals (lists of orbitals should be supported in the next release). Added automatic name change in Atom->Modify and Orbital->Modify. Simplified the way Laguerre polynomials and Legendre functions are calculated in gamgi_chem_orbital.c.

### What is new:

- Synced gamgi/dat and gamgi_exp/dat data trees.
- Synced gamgi/doc and gamgi_exp/doc documentation trees.
- Synced gamgi/src and gamgi_exp/src code trees.
- Fixed more GUI glitches in Orbital->Modify.
- Fixed Orbital->Modify crashes: orbital->dots must be reset to 0.
- www.gamgi.org and ftp.gamgi.org are now served from a VM hosted at the IT center at the Lisboa University. Hopefully this means more reliable connections and less time down.
- Automatic name changing in Orbital->Modify is working fine now.
- Automatic name changing in Atom->Modify is working fine now.
- Implemented automatic name changing in Atom->Modify.
- Implemented automatic name changing in Orbital->Modify.
- Orbital->Modify is now working for single orbitals. Lists of orbitals should be working in the next release.
- Translation, Rotation, are now working fine for Orbital->Modify.
- static_apply for Orbital->Modify is mostly done.
- Completed static_grab for Orbital->Modify.
- Added static_ok_global and static_ok_local for Orbital->Modify.
- Completed static_press for Orbital->Modify.
- The GUI behaviour for Orbital->Modify is almost completed.
- Started working on Orbital->Modify and Orbital->Select.
- Updated gamgi_mesa_pick.c and gamgi_mesa_grab.c to take into account solid representations of orbitals.
- Fixed a little bug in the orbital axes mesa drawing code.
- Laguerre polynomials have a factor r**L (L = angular quantum number) that cancels exactly with the factor 1/r**L of the Legendre functions, so the mathematical descriptions of the H orbitals become much simpler! Thanks to Jose Luis Martins for pointing me to this! For such low probability densities (1E-6), the numerical issues are so sensitive that the orbital visual representations come a bit different, even for L=1, after this simplification.

### 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.

GAMGI 0.16.6
21st June 2013
Hydrogen orbitals can now be represented in GAMGI as polygonal isosurfaces. As before (with orbitals represented as clouds of dots), users can choose which octants to see. The orbitals look really fantastic, as the screenshots show. Fixed few minor bugs in the GTK and Expat orbital code.

### What is new:

- Synced gamgi/dat and gamgi_exp/dat source code trees.
- Synced gamgi/src and gamgi_exp/src source code trees.
- Added screenshots showing the new representations for orbitals.
- Slightly increased theta, phi accuracy when determining the orbital default sampling radius: tested against (6,5,-5) orbital (6hy5).
- Debugged code to perform signal interpolation in solid orbitals. Is working fine now! This was really the last obstacle to have a world class orbital representation in GAMGI! Time for screenshots! Futurely we will try to reduce the number of vertices, normals and triangles, and we might implement Gorauld shading, but none of this will change the scientific and visual capabilities of our current model. A glass of Port to celebrate!
- Implemented a method to perform signal interpolation in solid orbitals, to solve the signal change innaccuracy problem found earlier.
- Cleaned code in gamgi_chem_orbital.c and gamgi_chem_orbital.h.
- Fixed a bug: the orbital probability density was not properly exported to XML files.
- Orbital axes are now simpler to use and have more options.
- The signal code is working now: 3D orbitals look really fantastic, but the signal code must refined, as the lack of interpolation results in too much visual noise when the signal changes.
- Fixed the code to swap positive and negartive triangles.
- Fixed the signal interpolation code in static_edge.
- Solved an interpolation issue related with the orbital isosurface onion effect: force fraction to the [0,1] range.
- Fixed orbital solid code edge orientation: this is needed for exact interpolation.
- Fixed numerical inaccuries: just a bug splitting the cubes (as in a 3D chess board). Is looking great now!
- Debugged the solid orbital 3D code, apparently is working fine, still with some numerical inaccuries in the surface.

### 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.

GAMGI 0.16.5
24th May 2013
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 (Ubuntu 12.10) 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.

GAMGI 0.16.4
27th April 2013
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.

GAMGI 0.16.3
14th January 2013
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.

GAMGI 0.16.2
2nd November 2012
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.

GAMGI 0.16.1
4th September 2012
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.

GAMGI old
Changelogs for older releases can be found here.

- GAMGI 0.15.1 - GAMGI 0.16
- GAMGI 0.14.1 - GAMGI 0.15
- GAMGI 0.13.1 - GAMGI 0.14
- GAMGI 0.12.1 - GAMGI 0.13
- GAMGI 0.11.1 - GAMGI 0.12
- GAMGI 0.10.1 - GAMGI 0.11
- GAMGI 0.09.1 - GAMGI 0.10
- GAMGI 0.08.1 - GAMGI 0.09
- GAMGI 0.07.18 - GAMGI 0.08

Home