# Change Log
This project adheres to [Semantic Versioning](http://semver.org/).

## [Unreleased]
### Added

### Changed
- Run models from Repast source directory

### Fixed

## R/Repast [0.8.0] - 2020-02-18
### Added
- jvm.enablejmx Enable JMX for profiling the java subsystem
- jvm.getruntime JVM runtime reference
- jvm.memory JVM memory
- jvm.runtimegc Force garbage collection
- getpkgdefaultcores The default number of cores used by R/Repast in parallel computations
- setpkgcores Set the number of cores used by R/Repast
- getpkgcores Return the number of cores used by R/Repast
- GoToWorkDir sets the model's work dir
- GoTopreviousDir Returns to previous work directory
- Simple usage examples (inst/examples) for single and multi-core execution.
- ShowCores prints the number of cores being used for running a Repast model
- Easy.RunExperiment Easy API for runing experimental designs

### Changed
- Eliminated dependencies on imports of xlsx and rJava on DESCRIPTION to avoid initializing the JVM on the package load
- Citation file including the companion paper
- Easy.Calibration Eliminated all references to optimization-driven calibration (see EvoPER package)
- Easy.Calibration Has a new parameter for default values of fixed parameters
- Easy.Stability Now using parallel wrapper allowing multi-core execution
- Easy.Morris Now using parallel wrapper allowing multi-core execution
- Easy.Stability Now using parallel wrapper allowing multi-core execution
- Easy.Stability Now show how many cores will be used for running the Repast model

### Fixed
- rJava JVM heapsize settings
- WrapperRun crash when using parallel 
- Easy.Stability Return to the previous work directory
- Easy.Morris Return to the previous work directory 

### Removed
- simple.fitting Now is part of Easy.Calibration

## R/Repast [0.7.0] - 2018-06-25
### Added
- Easy.Run Compact call for running a simulation model
- hybrid.distance A helper function for calculating categorical/quantitative metric
- hybrid.value A helper function for generating a list with a value and a range
- enginestats.reset Reset the internal statistics
- enginestats.calls Update/return the number of model invocations
- rrepast-plots.R New file for separate the ploting functions
- rrepast-parallel.R New file adding parallel model execution support
- parallelize Configure R/Repast for running model in parallel using multicore
- ParallelInit Initialize the parallel execution environment
- ParallelClose Shutdown the parallel execution environment
- ParallelRun Parallel model execution
- ParallellRunExperiment Parallel experimental setup execution
- WrapperRun Facade for model execution
- WrapperRunExperiment Facade for experiment execution
- lcontains Auxiliary function for checking if a list contains an element 
- lget Auxiliary function for getting a list element value
- AddFactor0 Polimorphic function for creating factos with range and levels
- GetFactorLevels Returns the levels of a R/Repast factor


### Changed
- Easy.Stability Added a new parameter for modifying the default model parameters
- Easy.Setup Checks added
- Easy.Sobol for parallel execution
- AddFactor New parameter for truncating values

### Fixed
- config.scenario Bug detecting the <Scenario> tag
- config.copylib Bug on returning value


## R/Repast [0.6.0] - 2017-03-27
### Added
- GetSimulationParameterType Returns the declared type of a 'Repast' model parameter
- config.scenario Add the rrepast integration to the scenario file
- config.check Check if Repast model is configured for rrepast
- config.copylib Copy the required lib to the Repast model classpath
- jarfile Return the full path to some jar inside the rrepast package
- check.scenario Check for scenario integration code
- check.integration Check for the integration library in the model's library dir
- UpdateFixedParameters Modify the value of parameters which should be kept fixed
- rrepast-easyapi.R New file for separate the easy api functions
- rrepast-aoe.R New file for separate the analysis of experiments functions
- rrepast-pb.R New file for separate progress bar helper functions
- rrepast-engine.R New file for separate the low level engine methods
- rrepast-helper.R New file for holding auxiliary functions
- Easy.getPlot For geting plots from Morris and Sobol from returned data structure

### Changed
- Easy.Setup Add an option to configure model file and copy jars
- AddFactor modified to correctlly build the data frame.
- Easy.Morris Added a new parameter for modifying the default model parameters
- Easy.Sobol Added a new parameter for modifying the default model parameters

### Fixed
- Engine.getParameterType Does no return any value
- Fixed title position in ggplot2 plots

## R/Repast [0.5.0] - 2016-05-08
### Added
- Easy.Setup Experiment initialization 
- Easy.Calibration Find the best set of paramters for the model
- Plot.Calibration Plot results of calibration process
- AoE.NRMSD Calculates the Normalized Root-Mean-Square 
- AoE.MAE Calculates the average-error magnitude
- simple.fitting Simple calibration method based on experimental setup
- filterby Selects a subset of a data frame
- col.sum Sum dataset columns 
- pick.fittest Choose the best solutions 
- dfround Round dataframe columns
- Results.GetExperiment
- Results.GetObject
- Results.GetCharts
- Calibration.GetMemberKeys
- Calibration.GetMemberList

### Changed

### Fixed
- PB.update Failed to update progress bar correctelly when replication > 1

## R/Repast [0.4.0] - 2016-04-10
### Added
- The NEWS changelog file
- jvm.setOut Send the JVM System.out to a file
- jvm.resetOut Send the JVM System.out to R console
- getExperimentParamSet
- getExperimentOutput
- getExperimentDataset
- DFToMatrix 
- PB.* Functions for show a progress bar functions during model run
- AoE.RMSD A Root Mean Square Deviation function
- AoE.CoV
- AoE.ColumnCoV
- AoE.Stability
- AoE.RandomSampling function for DoE
- AoE.LatinHypercube function for DoE
- AoE.FullFactorial function for DoE
- AoE.Morris function for SA screening
- AoE.GetMorrisOutput wrapper for access list members of Morris output
- AoE.Sobol function for variance decomposition GSA
- Plot.Stability Plot stability chart
- Plot.Morris function for ploting Morris's screening output
- PLot.Sobol function for ploting Sobol output
- Easy.Stability function for determine the number of simulations
- Easy.Morris function for Morris's screening in one call
- Easy.Sobol Function for Sobol sensitivity analysis

### Changed
- LatinHypercube Renamed function LatinHypercube to AoE.LatinHypercube

### Fixed
- Fixed dir.exists missing in R version < 3.2
- Engine.setParameter: Coercing parameters types to model types