Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: kotik-coder/PULsE
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.93
Choose a base ref
...
head repository: kotik-coder/PULsE
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.94
Choose a head ref
  • 3 commits
  • 88 files changed
  • 1 contributor

Commits on Dec 15, 2021

  1. v1.93F Fixes

    Abstract data
    
    Made the fields protected for easier access by subclasses
    
    ExportManager
    
    Introduced a current working directory field, so that the file chooser
    keeps track of the browsing history.
    
    Exporter
    
    Fixed directory not updating after selection in the file chooser
    
    NetzschCSVReader / PulseCSVReader
    
    Added support to different locales (delimiter chars and decimal separator).
    
    ReaderManager 
    
    Importing all files in a directory (e.g. with Linseis format) now invokes
    an Execution Service to take advantage of the concurrency.
    
    Problem
    
    It is now possible to select sample thickness as an optimisation variable.
    
    NumericPropertyFormatter
    
    Added missing condition to skip scientific formatting if html had been
    disabled.
    
    Normality tests
    
    Minor fixes to logic
    
    Status
    
    Prevent status from updating to QUEUED when task is in progress or has
    failed
    
    Launcher
    
    Removed pop-up exception windows completely, as this caused uncontrollable 
    breeding of pop-up windows
    
    Chart
    
    Fixed value markers not taking into account the numerical conversion 
    factor (ms -> s and vice versa). 
    
    MouseOnMarkerListener
    
    Fixed wrong concurrent updates of both value markers when switching statuses.
    
    MainGraphFrame
    
    Prevented tasks from plotting while being in progress. Avoids ConcurrentModificationException.
    
    ExportDialog
    
    Changed from Save dialog to Open dialog to avoid ambiguity
    
    Other minors changes
    kotik-coder committed Dec 15, 2021
    Configuration menu
    Copy the full SHA
    7b9081f View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2022

  1. AbsorptionModel.java: Moved optimisationVector(…) and assign(…) from …

    …Problem class
    
    ADIScheme: Increased default time step to ensure adequate results
    
    Calculation.java: 
    - Fixed problem with missing parent when creating a Calculation from a SearchTask. In the copy constructor, the parent is now removed, but the result is preserved.
    - Fixed incorrect status update in setStatus(…) method. Rules have been created to block status update in certain cases.
    - Introduced the isBetterThan(…) method, which performs a statistical check (e.g. BIC) plus an F-test, if the latter is possible, and uses this combination to assess which calculations gives a better result.
    
    CorrelationBuffer.java:
    truncate(…) excludes buffer elements which show very close parameter values and therefore negatively affect the correlation tests.
    
    CorrelationTest:
    Changed selector for correlation tests
    
    Details:
    Status may now indicate if the the new results are worse than the previous result.
    
    DiathermicMedium:
    Removed custom default number of data points
    
    DifferenceScheme:
    Added a check to see if the DiscretePulse had already been created. If so, the latter is only updated. This prevents adding superfluous listeners and creating objects
    
    DiscretePulse:
    Added Objects.requireNonNull when accessing the SearchTask ancestor of the Problem instance
    
    FTest.java:
    Added the Fischer test capability to compare two Calculation instances where one model is nested within the other.
    
    InstanceDescriptor:
    Instead of returning false in case if the descriptor is not recognised, the attemptUpdate(…) now throws an IllegalArgumentException.
    
    NetzschCSVReader:
    - Added detector spot size in the list of imported properties.
    -findLineByLabel now uses reader.mark(…) to keep track of previous valid position. If the search fails, the position of the reader will be reset to this mark.
    
    ParticipatingMedium & PenetrationProblem:
    Removed custom number of data points
    
    PenetrationProblem:
    Moved functionality specific to absoprtion model into the AbsorptionModel class
    
    PulseMainMenu:
    Changed initialisation of the correlation tests and communication of the selector with GUI.
    
    ResultTable & ResultTableModel:
    Added null checks for the result extracted from the Calculation instance
    
    ResultTableModel:
    Heavily modified the addRow(result) method where an entry will not be added to the results table if (a) a previous calculation had been previously completed and (b) the new result is rated worse than the previous result.
    
    SearchTask:
    Added storeCalculation(…) and findBestCalculation(…). 
    
    TaskManager:
    Added call to storeCalculation(…) in the execute method, upon successful completion of the CompletableFuture.
    kotik-coder committed Mar 17, 2022
    Configuration menu
    Copy the full SHA
    6b12e7b View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2022

  1. PULsE v1.94

    #ParameterVector.java
    
    -Changed findMalformedElements to conform with the transforms defined by the class instance and simplified the method calls.
    
    #Solver implementations and subclasses of DifferenceScheme:
    
    -Enabled throwing SolverException in solve(), timeStep() and iteration()
    
    #ThermalProperties.java
    
    -Introduced findMalformedProperties() for automated property validation
    -Fixed an error with density and heat capacity values not being assigned to the corresponding variables in fill()
    - Fixed a caveat in the calculateEmissivity() method where, in some extreme cases, the emissivity values could be greater than unity or smaller than zero, which led to critical breakdown of radiative transfer calculations.
    - Created a toString() method with a formatted output of the thermal properties.
    
    #CoupledImplicitScheme.java
    
    -Added missing call to super method FixedPointIterations.super.finaliseIteration()
    -Added a throws SolverException line in setCalculationStatus(…) when the status is not NORMAL
    
    #Status.java
    
    -Added optional message to further customise the status updates. The message is accessible via getDetailedMessage()
    
    #ExplicitLinearisedSolver.java, ImplicitLinearisedSolver.java
    
    -Experimental feature: rear-surface heat source introduced through the ‘zeta’ factor. This slightly changes the right boundary expressions and the timeStep(…) method
    
    #RTECalculationStatus.java
    
    -Added a new status, ‘INVALID_FLUXES’, which indicates the RTE calculation resulted in invalid flux values.
    
    #StateEntry.java
    
    -In case of a Status having a non-empty detailed message, the message will be printed in the toString() method, which has been modified accordingly
    
    #ParticipatingMedium.java
    
    -Changed bounds for the parameters, including e.g. the Planck number and optical thickness 
    -Replaced all transforms for all optical parameters to StickTransform. This has proven to be more fail-proof
    
    #ClassicalProblem.java
    -Introduced the bias property, which refers to the bias in the source power between the front and rear surfaces
    
    #Problem.java
    
    -Added ABS transformation for the MAXTEMP property in optimisationVector()
    -Added parameter bounds for the HEAT_LOSS property, linking them to the parameter bounds retrieved from the XML file
    -Removed unnecessary method calls and conditional statement in setHeatLossParameter() 
    -Added check for malformed property values in assign(…). This is expected to be called by all subclasses of Problem
    
    #NonlinearProblem.java
    -Emissivity is now calculated following every call to assign(…), not just for selected properties
    
    #RadiativeTransferSolver.java
    -Added flux.init() call in init(…), when fluxes are not null
    
    #FixedPointIterations.java
    -Added check for malformed temperature value array. This checks for non-finite elements or sum of elements exceeding a maximum threshold and throws a SolverException
    
    #ExplicitCoupledSolver, ImplicitCoupledSolver, MixedCoupledSolver
    
    -Improved exception handling and monitoring of calculation health
    
    #IndexRange.java
    
    - Fixed an erratic statement in the closest(…) method where an exception would be thrown when sizeMinusOne were less than 1
    
    #Fluxes.java
    
    - Added checkArrays() method, which checks whether the fluxes are finite
    - Introduced an overridable init() method
    
    #FluxesAndExplicitDerivatives.java
    
    - Instead of having an overriden setDensity() method, the latter is set final, with the init() method now overriding superclass method
    - Introduced 
    
    #ThermoOpticalProperties
    
    - New overriden toString() method that outputs all thermo-optical properties
    
    #ExperimentalData
    
    - Changed MAX_REDUCTION_FACTOR to 256
    - Changed calculateHalfTime(), where the running-average curve would be calculated iteratively changing the reduction factor until certain conditions are met
    
    #SearchTask.java
    
    - Added null check in addListeners(…)
    - run() in several places: replaced confusing System.err on SolverException by a detailed status update with the notifyFailedStatus(…) call
    
    #DifferenceScheme.java
    
    - Important change to runTimeSequence(…), where, after filling the solution curve array, the nominal number of points is replaced by the real number of points, should that number be smaller than the former.
    
    #Launcher.java
    
    - Added file lock to prevent launching multiple instances of PULsE simultaneously
    
    #NonlinearProblem.java
    
    - Added LASER_ENERGY as a possible search variable
    
    #LMOptimiser.java
    
    - Added check for malformed parameter vectors and gradient vectors, causing a SolverException to be thrown if found
    
    #Calculation.java
    
    - process() will first check for malformed properties before proceeding with the calculation
    
    #Details.java
    
    - added SOLVER_ERROR
    
    #NumericProperties.java
    
    - added checks for non-finite values in isValueSensible(...)
    
    #Other classes:
    
    Made some getter and setter methods final to improve encapsulation
    kotik-coder committed Apr 24, 2022
    Configuration menu
    Copy the full SHA
    64680d7 View commit details
    Browse the repository at this point in the history
Loading