#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the Common Development
# and Distribution License Version 1.0 (the "License").
#
# You can obtain a copy of the license at
# http://www.opensource.org/licenses/CDDL-1.0.  See the License for the
# specific language governing permissions and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each file and
# include the License file in a prominent location with the name LICENSE.CDDL.
# If applicable, add the following below this CDDL HEADER, with the fields
# enclosed by brackets "[]" replaced with your own identifying information:
#
# Portions Copyright (c) [yyyy] [name of copyright owner]. All rights reserved.
#
# CDDL HEADER END
#

#
# Copyright (c) 2012, Regents of the University of Minnesota.  All rights reserved.
#
# Contributors:
#    Ryan S. Elliott
#    Ellad B. Tadmor
#    Valeriu Smirichinski
#

#
# Release: This file is part of the openkim-api-v1.1.0 package.
#


This file contains a list of planned improvements and new features for the
openkim-api package.

--------------------------------------------------------------------------------
Items planned for the next significant release.
--------------------------------------------------------------------------------

* Introduce a "sparse array" type (for use with `hessian' and similar arguments)

* Improve error handling consistency within the API

* Implement full support for Tests written in Python

* Implement full support for Tests written in Java

* Refactor the core KIM API code for improved readability and maintenance.

* Improve the way the make system generates static and dynamic libraries (For
  example, we should use the appropriate compiler flags to ensure that the only
  external symbol in a Model's library is the Model's _init() function.)

--------------------------------------------------------------------------------
Items planned for future releases.
--------------------------------------------------------------------------------

* Create an example Model and Test written in C++ that makes full use of the
  object oriented nature of the language.

* Rework the model_init() naming convention to avoid Fortran identifiers that
  are longer than 31 characters.  One idea is to use a SHA1 hash of the Model
  name for the name of the init function.  The make system can use the
  preprocessor to automatically substitute the correct hash value in to the
  Model's code file.  This will make the entire process opaque to the Model
  developer.

* Implement a new NBC method, similar to NEIGH_RVEC_F, that includes a
  ForceTransformation() function that can be applied to each atom.  This will
  provide additional support for exotic boundary conditions such as "Objective
  Boundary Conditions", twist boundary conditions, etc.

* Implement support for force-fields (CHARMM/GROMACS) type KIM Models.

* Implement full support for Fortran 2003

* Refactor the core KIM API code for improved readability and maintenance.

* Add Doxygen commenting for improved code documentation.

* Switch over to an Autotools-based configure and make system.

* Implement a framework for unit and regression testing of all the code in the
  openkim-api package.
