Tags: kotik-coder/PULsE
Tags
General usability changes - Fixed sample name parsing in Netzsch files - Made some changes to the text displayed in the GUI - Tooltips now more informative and well-formatted - Added missing SwingUtilities.invokeLater(…) method when updating graphical logs - Added safety checks for graphical logging - Added ‘finished’ boolean in the Log class, which helps graphical logs to be displayed correctly - Migrated to JfreeChart 1.5.4, which fixes issues with graphs in resized windows - Switched from using ExecutionServices and ForkJoinPools to using CompletableFutures. Removed redundant blocks where concurrency has been poorly handled. - Removed argument from checkProblems() in SearchTask - Fixed execution of queued tasks hanging because of conflicting ForkJoinPools - Fixed tracker dialogs not closing on end of scheme selection - Fixed focus lost problem in ProblemStatementFrame
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
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
PreviousNext