radix issueshttps://code.ornl.gov/jap/radix/issues2019-01-18T17:36:59Zhttps://code.ornl.gov/jap/radix/issues/20vtkplotpoints with error bars2019-01-18T17:36:59ZPurves, Murrayvtkplotpoints with error barsAdd a class to plot points in VTK with error bars.Add a class to plot points in VTK with error bars.Purves, MurrayPurves, Murrayhttps://code.ornl.gov/jap/radix/issues/19iterative ccl2018-06-20T19:04:22ZLefebvre, Jordaniterative cclThe current depth-first-search using recursion is blowing the stack for very large datasets.
I need to implement an iterative connected-component labeling algorithm to avoid this issue.The current depth-first-search using recursion is blowing the stack for very large datasets.
I need to implement an iterative connected-component labeling algorithm to avoid this issue.Lefebvre, JordanLefebvre, Jordanhttps://code.ornl.gov/jap/radix/issues/18test string case sensitivity2018-05-01T18:48:35ZPurves, Murraytest string case sensitivitythe tstSystem radix test can fail due to the case of the string returned (which is not a problem in this case).
Fix these tests to be non-case sensitive.the tstSystem radix test can fail due to the case of the string returned (which is not a problem in this case).
Fix these tests to be non-case sensitive.Purves, MurrayPurves, Murrayhttps://code.ornl.gov/jap/radix/issues/17radixdl visibility2018-03-27T17:34:12ZLefebvre, Jordanradixdl visibilityThe implementation of visibility.hh.in should be in radixcore, not radixdl.
radixdl is specifically for loading shared libraries, not necessarily the visibility of a dynamic build.
@murray this could have impact downstream.
This change will be the include path of `radixdl/visibility.hh` to `radixcore/visibility.hh`The implementation of visibility.hh.in should be in radixcore, not radixdl.
radixdl is specifically for loading shared libraries, not necessarily the visibility of a dynamic build.
@murray this could have impact downstream.
This change will be the include path of `radixdl/visibility.hh` to `radixcore/visibility.hh`Lefebvre, JordanLefebvre, Jordanhttps://code.ornl.gov/jap/radix/issues/16pressure to altitude2018-03-27T16:53:19ZLefebvre, Jordanpressure to altitudeThe current hpaToAltitude equation using the hypsometric formula.
This formula only supports conversion up to 11km.
Above 11km, we need another formula.The current hpaToAltitude equation using the hypsometric formula.
This formula only supports conversion up to 11km.
Above 11km, we need another formula.Lefebvre, JordanLefebvre, Jordanhttps://code.ornl.gov/jap/radix/issues/15humidity conversions2018-03-11T16:10:06ZPurves, Murrayhumidity conversionsAdd humidity conversion methods to convert:
- [x] Mixing ratio to relative humidity
- [x] Specific humidity to relative humidityAdd humidity conversion methods to convert:
- [x] Mixing ratio to relative humidity
- [x] Specific humidity to relative humidityPurves, MurrayPurves, Murrayhttps://code.ornl.gov/jap/radix/issues/14marching squares2018-02-02T01:57:38ZLefebvre, Jordanmarching squaresImplement the marching squares algorithm to support contour algorithm needsImplement the marching squares algorithm to support contour algorithm needsLefebvre, JordanLefebvre, Jordanhttps://code.ornl.gov/jap/radix/issues/13hysplit cdump io2017-11-16T20:51:04ZLefebvre, Jordanhysplit cdump ioStreamline the hysplit cdump io.Streamline the hysplit cdump io.Lefebvre, JordanLefebvre, Jordanhttps://code.ornl.gov/jap/radix/issues/12write fortran binary file2017-11-15T20:34:11ZLefebvre, Jordanwrite fortran binary fileAdd the ability to write a fortran binary file.Add the ability to write a fortran binary file.Lefebvre, JordanLefebvre, Jordanhttps://code.ornl.gov/jap/radix/issues/11WSBE constants2017-11-15T14:40:06ZPurves, MurrayWSBE constantsAdd constants required for WSBE
* [x] Seconds per hour
* (Any others?)Add constants required for WSBE
* [x] Seconds per hour
* (Any others?)https://code.ornl.gov/jap/radix/issues/10intel 2018 farproc2017-11-09T19:02:54ZPurves, Murrayintel 2018 farprocWhen using Intel 2018 compilers, errors occur in radixdl related to FARPROC (and finding it).
This can be fixed by adding an include for windef.hWhen using Intel 2018 compilers, errors occur in radixdl related to FARPROC (and finding it).
This can be fixed by adding an include for windef.hPurves, MurrayPurves, Murrayhttps://code.ornl.gov/jap/radix/issues/9Windows DLL support2017-11-02T21:35:28ZLefebvre, JordanWindows DLL supportUpdate radix packages to support BUILD_SHARED_LIBS=ON for Windows MSVC/IntelUpdate radix packages to support BUILD_SHARED_LIBS=ON for Windows MSVC/IntelLefebvre, JordanLefebvre, Jordanhttps://code.ornl.gov/jap/radix/issues/8dynamic library interface2017-10-31T18:25:21ZLefebvre, Jordandynamic library interfaceAdd support for cross-platform dynamic library loading.Add support for cross-platform dynamic library loading.Lefebvre, JordanLefebvre, Jordanhttps://code.ornl.gov/jap/radix/issues/7Add radixmath constants2017-10-31T18:25:21ZPurves, MurrayAdd radixmath constantsAdding constants to radixmath:
* [x] Days per yearAdding constants to radixmath:
* [x] Days per yearhttps://code.ornl.gov/jap/radix/issues/6Remove fortran compiler dependency2017-10-31T18:25:21ZLefebvre, JordanRemove fortran compiler dependencyThis primarily related to radixgllsThis primarily related to radixgllsLefebvre, JordanLefebvre, Jordanhttps://code.ornl.gov/jap/radix/issues/5radixglls use radixarray2017-07-27T19:51:33ZBevill, Aaron Mradixglls use radixarrayThe radixglls Matrix class was adapted to create the radixarray package. This package is more usable and better tested than radixglls::Matrix, so radixglls::Matrix should be replaced with radixarray::Array and Matrix.The radixglls Matrix class was adapted to create the radixarray package. This package is more usable and better tested than radixglls::Matrix, so radixglls::Matrix should be replaced with radixarray::Array and Matrix.Bevill, Aaron MBevill, Aaron Mhttps://code.ornl.gov/jap/radix/issues/4GLLS fails2017-07-28T18:27:38ZBevill, Aaron MGLLS failsThe unit test fails. Maybe I'm using a different version of lapack?The unit test fails. Maybe I'm using a different version of lapack?Bevill, Aaron MBevill, Aaron Mhttps://code.ornl.gov/jap/radix/issues/3Radixmin tests2018-06-20T00:40:26ZBevill, Aaron MRadixmin testsThis is a portion of issue #2 . The 2-constrained-minimization branch has a series of constrained optimization test problems. See ``radixmin/prototype/problems.py``. These problems need to be recoded from Python3 to C++. (They will be used to test the C++ implementation of the solvers.)
* [x] Create a C++ base class and an example
* [ ] Recode the rest of the example problemsThis is a portion of issue #2 . The 2-constrained-minimization branch has a series of constrained optimization test problems. See ``radixmin/prototype/problems.py``. These problems need to be recoded from Python3 to C++. (They will be used to test the C++ implementation of the solvers.)
* [x] Create a C++ base class and an example
* [ ] Recode the rest of the example problems2017-04-13Knowles, Justin RKnowles, Justin Rhttps://code.ornl.gov/jap/radix/issues/2Constrained minimization2018-06-20T00:40:27ZBevill, Aaron MConstrained minimizationWe would like to test constrained minimization techniques for use in INVERSE. INVERSE LM has trouble with some constrained minimization problems, e.g., [case99.inv.inp](/uploads/5ad43fd9c7501735cc9ce8261978c008/case99.inv.inp).
The dataflow for INVERSE might look like this:
* INVERSE parses the input deck and defines a forward model with some unknown parameters. The forward model encapsulates the measured data, a prediction function, and sensitivities. The prediction predicts data as a function of the unknown parameters. The sensitivities are the first derivatives of this function. Ideally the second derivatives could also be available. The forward model also encapsulates constraints in the form Lx=c and Lx<=c.
* The forward model is passed into a goodness-of-fit function. The function compares the measurement to a prediction and provides a scalar metric of the fit. The prediction and the fit metric are a function of the unknowns. For this type of problem, the function is usually chi2. Using the sensitivities, we can also estimate the first and second derivative of chi2. Other work may use likelihood or log-likelihood as a metric.
* This fitness function and the forward model constraints are passed to a constraint handler. This could be a linear penalty, [Bardsley's active set approach](/uploads/38e1bc0a35cc7ffd8dfeb9c28a38f767/bardsley2004bound.pdf), or log barriers. The constraint handler combines chi2 (or any other minimization objective) and the constraints into an unconstrained minimization objective (UMO). The UMO is defined such that its minimum must satisfy the constraints.
* That UMO is then passed into a minimization step. This could be LM or Newton's method with line search. Old parameters are passed into the step; new parameters are returned from the step.
* The constraint handler and minimization step alternate. As the solution converges, the UMO will change.
This issue will implement constraint handlers (active set and log barrier) and minimization steps (LM and Newton with line search), then test them on constrained-minimization test functions. The work will be drafted in Python, then migrated to C++.We would like to test constrained minimization techniques for use in INVERSE. INVERSE LM has trouble with some constrained minimization problems, e.g., [case99.inv.inp](/uploads/5ad43fd9c7501735cc9ce8261978c008/case99.inv.inp).
The dataflow for INVERSE might look like this:
* INVERSE parses the input deck and defines a forward model with some unknown parameters. The forward model encapsulates the measured data, a prediction function, and sensitivities. The prediction predicts data as a function of the unknown parameters. The sensitivities are the first derivatives of this function. Ideally the second derivatives could also be available. The forward model also encapsulates constraints in the form Lx=c and Lx<=c.
* The forward model is passed into a goodness-of-fit function. The function compares the measurement to a prediction and provides a scalar metric of the fit. The prediction and the fit metric are a function of the unknowns. For this type of problem, the function is usually chi2. Using the sensitivities, we can also estimate the first and second derivative of chi2. Other work may use likelihood or log-likelihood as a metric.
* This fitness function and the forward model constraints are passed to a constraint handler. This could be a linear penalty, [Bardsley's active set approach](/uploads/38e1bc0a35cc7ffd8dfeb9c28a38f767/bardsley2004bound.pdf), or log barriers. The constraint handler combines chi2 (or any other minimization objective) and the constraints into an unconstrained minimization objective (UMO). The UMO is defined such that its minimum must satisfy the constraints.
* That UMO is then passed into a minimization step. This could be LM or Newton's method with line search. Old parameters are passed into the step; new parameters are returned from the step.
* The constraint handler and minimization step alternate. As the solution converges, the UMO will change.
This issue will implement constraint handlers (active set and log barrier) and minimization steps (LM and Newton with line search), then test them on constrained-minimization test functions. The work will be drafted in Python, then migrated to C++.Bevill, Aaron MBevill, Aaron Mhttps://code.ornl.gov/jap/radix/issues/1Add capability to export plot data2018-06-20T00:40:26ZLefebvre, JordanAdd capability to export plot dataAdd "Save as CSV" optionAdd "Save as CSV" optionAPTool 1.0Lefebvre, JordanLefebvre, Jordan