Difference between revisions of "Resurrecting Impact"

From PeformIQ Upgrade
Jump to navigation Jump to search
(Created page with "= 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. = Background = See: * https://impact.org * https://jogl.org == JOGL == A build occurred in August 2023 and I have be...")
 
 
(11 intermediate revisions by the same user not shown)
Line 2: Line 2:


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




Line 9: Line 15:


* https://impact.org
* https://impact.org
* https://jogl.org
* https://jogamp.org/jogl/
* https://jogamp.org/jogl/www/
* https://jogamp.org/gluegen/www/
* https://sourceforge.net/projects/impact/
* https://impact.sourceforge.net/index_us.html
 
 
= 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:
* https://gitlab.com/performiq/impact-java-orig (git@gitlab.com:performiq/impact/impact-java-orig.git) - a copy of the original code drop that Damian gave me
* https://gitlab.com/performiq/impact-java-updated (git@gitlab.com:performiq/impact/impact-java-updated.git) - I have started to reorganisr and refactor the repo
* https://gitlab.com/performiq/impact-java-rebooted (git@gitlab.com:performiq/impact/impact-java-rebooted.git) - A file by file rebuild of the repo
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
<pre>
- 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)
<pre>
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 ==
== JOGL ==


A build occurred in August 2023 and I have been able to use this for simple OpenGLJava programs.
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
* https://github.com/JogAmp/jogl
* https://github.com/JogAmp/gluegen
= 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
*
*





Latest revision as of 10:46, 27 January 2025

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 * https://github.com/JogAmp/jogl * https://github.com/JogAmp/gluegen

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