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