Skip to content

Releases: kotik-coder/PULsE

PULsE v1.79

02 Jul 20:07
Compare
Choose a tag to compare

Current version features the following problem statements:

  • A model of the flash experiment with coupled conductive-radiative heat transfer for semi-transparent materials
  • Diathermic model for express data treatment acquired from semi-transparent materials
  • A penetration model, which regards the distributed laser penetration depth, as well as a distributed temperature detection concept (this is analogous to the Penetration model by Netzsch)
  • "Classical" 1D model
  • "Classical" 2D model with adjustable detector field-of-view and laser spot
  • Nonlinear heat sink model

Some might be familiar with a few of those models from previous releases. However, they were not completely functional since the associated property handlers needed to use the full potential of each problem are only introduced in this version.

Each model is now assigned to a "complexity", which is a rough estimate of the computational time. Currently, there is only one enabled high-complexity problem statement (the other one is disabled in this release), which is the coupled conductive-radiative model for participating media. Batch processing is disabled for high-complexity tasks since they are more prone to failure due to the various constituent numerical techniques (for instance, a discrete ordinates method with its own ESDIRK solver). There is also an internal set of exceptions which have been introduced to allow a more flexible approach of data treatment. Overall, high-complexity tasks are intended for use by 'expert' users.

The parameter search (i.e., the solution of the inverse problem or the 'revere-engineering' of heating curves) has been made more user-friendly. Previously the user could modify a standard set of search flags, even though some of the might not have been active for the current problem. This was not a problem when the list of numerical properties was short; however, it is now. So to manage this selection, only those flags that will have any effect for the current task can be modified.

Laser pulse can now be customised by not only selecting the type of the shape, e.g. rectangular or trapezoidal, but also the parameters of that specific function, e.g. the trapezoidal rise and fall segments. Future releases will also include the skewed Gaussian shape and the true laser pulse (as soon as I get my hands on at least some data with correctly measured pulses).

Metadata handling has been much improved. Previously, the metadata object created for each task had the 'default' values for a fixed set of numeric properties. This has now been fixed and there is no limitation (in principle) to what properties can be loaded - at least, not architecturally. The metadata always shows only those properties that have been externally loaded and nothing more.

Logging and exporting currently works fine and I am quite happy with both the code implementation and the performance. Interestingly, although PULsE heavily relies on Reflection API, it is still quite fast I would say, at least on the PCs that I have tested it on. There have been reports of strange plotting behaviour e.g. on Windows and MacOS where for some reason the graphs look slightly blurred. I will try to address this in a future release.

I have also slightly changed the GUI, especially for the property-holder tables, by making it more obvious which properties can be changed. I've made the fonts bigger as well to facilitate interaction with the software.

I haven't mentioned yet the statistical toolkit, which is quite robust and includes normality tests, residual plotting, correlation tests and variable search statistic. This part of the software is also in development and it is expected to play a major role in the future.Currently it works fine, it acts to prevent you from making stupid decisions based on a failed calculation (due to improper parameter selection or awful data). So you can use it, but do expect it to be re-worked later this year.

Another thing I haven't addressed yet is the out-of-date javadoc. Most of the comments do not make sense anymore and they need to be amended.

Looking forward to do some more work on this.

PULsE v1.78

28 Jun 17:48
Compare
Choose a tag to compare

More description to be added soon.

Coupled radiative-conductive heat transfer

21 Jun 22:18
Compare
Choose a tag to compare

This is the version of PULsE used to generate data for the paper submitted to Numerical Heat Transfer A.

PULsE v1.66

12 Mar 16:23
a68ab7c
Compare
Choose a tag to compare
PULsE v1.66 Pre-release
Pre-release

Some more important changes. Sorry, no description this time.

Code refactoring / Maven migration

19 Feb 12:26
Compare
Choose a tag to compare

PULsE now compiles as a Maven project!

PULsE v1.5

03 Feb 12:27
Compare
Choose a tag to compare

Changes in this release:

Software-wise

  • Major re-design of charting. No matter what I tried, using JavaFX for charting (> 4,000 points in charts of heating curves) resulted in major memory leaks and the results were very slow to show up. So I decided to completely move to a Swing-based interface with the charting done in JFreeChart. The GUI now works much faster. Also, it seemed that using gnuplot to plot preview graph was excessive, as this could also be done with JFreeChart.
  • Truly cross-platform? PULsE now does not use external native libraries, and as a result it has a much more versatile structure. You no longer have to download versions targeted for a specific OS. Instead, just use a single .jar on any OS. This has been tested on Linux, Windows, and MacOS.
  • A complete overhaul of the GUI with the optional Nimbus LAF. I got tired of the old JTabbedPane design, and instead am now using a DesktopPane with multiple InternalFrames. I think the GUI now looks really nice, and I hope it is also much easier to use and understand (image icons, tooltips, etc. -- all makes navigation faster and user-oriented).
  • Completely re-designed export. PULsE now uses its internal hierarchy set up by the UpwardsNavigable class, so that different PropertyHolders belonging to a certain SearchTask are identifiable during export, hence the different heating curves, experimental data, metadata, etc. are easily assigned with a number corresponding to the task ID. Export mechanics for all property holders has been revised, and the output stream are now configured to give a meaningful .html or .csv file for most cases. A new export dialog has been introduced, allowing to specify parts you wish to export. (I am particularly proud of the GroupLayout configuration for that dialog).
  • A problem with the CompletableFuture runAsync() call has been fixed in the TaskManager. Previously when executing single tasks, the program froze sometimes. This is not longer happening and the program now runs smoothly.
  • An error with merging results after changing the result format has been fixed.

Model-wise

  • New heat transfer models have been introduced: Classical 2D Problem, Nonlinear Boundary Conditions (1D), Diathermic Material between Opaque Walls, Translucent Material with Distributed Heat Source;
  • The search vector can now include more search variables, including time origin (when problems with a pulse monitor occur or if there is a slight loss of sync between the pulse and detector operation), pulse spot and detector field of view, the diathermic coefficient, etc;
  • The reliability of the calculation model can now be checked by displaying the residuals as an offset series in the main chart.

Instructions for running the software can be found below.

1) Install Java 11

If this has already been installed, just update it to the newest version. If not, follow the instructions on https://java.com/en/download/

a) Windows
AFTER installation of jdk/jre: modify the environmental variables to include the path to the bin folder of your Java
directory, e.g. PATH=;C:\Program Files\Java\jdk-11.0.4\bin;

b) Linux
Instal the openjdk 11 or 12 by typing

sudo add-apt-repository ppa:openjdk-r/ppa
(if required)

sudo apt-get update
sudo apt-get install openjdk-11-jre

in the Terminal.

c) You can check the version installed with the command (bash / Terminal):

java -version

2) Allow running .jar (Linux-only)

Terminal:
chmod +x PULSE.jar

3) Run PULsE.jar

To run the software, just double-click on PULSE.jar

If any unexpected problems occur, please try executing the program in terminal/console by typing:

java -jar PULSE.jar

Copy any output and send it to [email protected]. The letter should be titled "PULSE BUG"

Enjoy!

Best regards,
Artem.

PULsE 1.0 (with bug fixes)

11 Oct 15:09
Compare
Choose a tag to compare

This version of software has been used to process the results in the main paper sent to the Review of Scientific Instruments.


This is the final, fully-functional, error-free, fully-tested-multiple-times-over version of PULsE (1.0FR_01). This release includes a fully functional GUI and all advanced features for finding the optimal solution of the inverse heat problem applicable to data from laser flash experiments.

Currently, PULsE is able to read the following formats:

.lfr and .dat for the heating curves;
.tbl for density and specific heat as a function of temperature;
.met for the metadata.

A manual is available!

This release contains two main archives

PULsE_for_Windows
PULsE_for_Linux

In these folders, the PULSE.jar files are IDENTICAL, as Java is designed to have cross-platform code.
The difference lies in the external .jar libraries found in the PULSE_lib folder. The name of this folder should NOT be modified.

PULSE uses the following external JAR files:

JavaFX packages (Platform-dependent!)
JavaGnuplotHybrid (leotask.jar)

All of these dependencies are already included in the PULSE_lib folder.

BEFORE RUNNING

#################### 1) Install Java (jdk OR jre). Follow the instructions. #############

a) if running on Windows
AFTER installation of jdk/jre: modify the environmental variables to include the path to the bin folder of your Java
directory, e.g. PATH=;C:\Program Files\Java\jdk-11.0.4\bin;

b) if running on Linux: instal the openjdk 11 or 12 by typing
(if required) sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-11-jre

in the Terminal.

c) You can check the version installed with the command (bash / Terminal):

java -version

#################### 2) Install JavaFX. ####################

Windows:
a) Copy the corresponding JavaFX folder to your Java directory (usually found in the Program Files next to the JRE / JDK).
b) Add your /javafx-sdk-11.0.2/bin directory (use Explorer to copy the full path) to the PATH environmental variable.
Remember to use ; for delimiting your individual PATH files (you don't need to remember this on Winndows 10).

Linux:
Simply type in Terminal:
sudo apt-get install openjfx

Check if it's definitely installed (in Terminal):
whereis openjfx

##################### 3) Install GNUPLOT: ####################

Windows:
a) Run gp527-win64-mingw.exe (as Administrator);
b) Find gnuplot directory. In this directory, locate the bin subdirectory. Add it to the PATH

Linux:
Simply type in Terminal

sudo apt-get update
sudo apt-get install gnuplot

##################### 4) Allow running .jar (LINUX ONLY) #####################

Terminal:
chmod +x PULSE.jar

To run the software, just double-click on PULSE.jar

If any unexepected problems occur, please try executing the program in terminal/console by typing:

java -jar -Dprism.verbose=true PULSE.jar

Copy any output and send it to [email protected]. The letter should be titled "PULSE BUG"

Enjoy!

Best regards,
Artem.