Resurrecting Impact

From PeformIQ Upgrade
Revision as of 10:45, 27 January 2025 by PeterHarding (talk | contribs)
Jump to navigation Jump to search

Impact Uplift Notes

I have been working with Damian McGuckin of PacificESI to see if it is feasible to resurrect the Impact finite element analysis package. This is implemented in Java but depends on a very old Java OpenGL library JOGL v1. JOGL was refactored a decade or so ago (into v2) to support new graphics technology such as GPU shaders.

Overview

  • A Swing GUI is included for working with the config files - java run gui.ImpactGUI
  • A CLI mechanism to run an analysis - java run.Impact SomeModel.in
  • Integration is supported with a number of other Finite Element Analysis tools - such as GID


Background

See:


Components

  • run - Run various code
  • Java UI - gui
  • Java 3D - j3d (See j3d.org) - Java code is included in the project.
  • Jama - Java Matrix (code included)
  • jp - code included
  • uka - code included


Code

I have set up working repos in GitLab.com as follows:

Note: In the original code base classes and images were all mixed in with the source. Scripts and config files along with other stuff were dumped at the top level. I have started to structure the repo to separate these out. I am using Eclipse as an IDE for the Java variants.

Repository Structure

- src           The Java source code
  -- gui
  -- j3d
  ...
  -- utils
  -- houskeeping  Various stand alone Java apps for testing various bits (such as JOGL)
- classes         (Java compiled class files)
- bin             Scripts (following the UNIX convention)
- config          Configuration files (Graph.conf, opt.conf, Post.conf, Pre.conf, Pro.conf, ...)
- data            Not used yet
- doc             Markdown files (put together by me)
- examples        *.in and results examples
- html            HTML documentation - a copy of the Impact web site?  Was in the doc folder.
- images          Non source images
- interfaces      Gmsh and Impact.gid integration documentation
- lib             Libraries (JOGL, etc.)
- resources
  -- images.      Images referenced from Java source code
- trials          A temp folder for storing intermediate results files in (is .gitignored)
As well as the Java code, I have started to play around with reimplementing the front end in SwiftUI (for mac and iPad) and also in Go lang mostly the back-end - but it turns out there are libraries which can support Cocoa apps on macOS.  So I am experimenting with this.

Separate repos for these experiments can be found here along with other experimental code:

* https://gitlab.com/performiq/impact


Links

* https://jogamp.org/wiki/index.php/Downloading_and_installing_JOGL

Dependencies

JOGL

A build occurred in August 2023 and I have been able to use this for simple OpenGLJava programs. * https://jogamp.org/jogl/doc/Overview-OpenGL-Evolution-And-JOGL.html * https://github.com/JogAmp/jogl

Java Notes

* https://jausoft.com/blog/2023/02/22/reimagine-java-on-desktop-bare-metal-devices/ * https://opengl.j3d.org/installing.html - This is ancient and out of date... *

Go Notes

* https://github.com/therecipe/qt * https://fyne.io/ * *

Swift/SwiftUI Notes

* * *

Also See

* https://admin.performiq.com/kb/index.php/Java_Permissions_Note * https://performiq.com/kb/index.php/JOGL_Notes * *