libnucnet releases
-
Version 0.41 (2020-05-28)
- Fix:
-
Some typos in the documentation have been fixed.
- New:
-
A routine to return the species comparison function has been
added to the API.
-
Version 0.40 (2020-04-06)
- Fix:
-
The xml text writer now outputs correctly if no zones are present.
-
Version 0.39 (2020-04-05)
- Fix:
-
An error in the partition function tag xml text writer output when
there are no data present has been fixed.
-
Version 0.38 (2020-03-02)
- Fix:
-
An error in the second property tag output from the text writer has
been fixed.
-
Version 0.37 (2019-04-27)
- Fix:
-
The example code updating reaction data to xml was restored
to the old version and a new example illustrating use of the xml text
writer was added.
-
Version 0.36 (2019-04-19)
- New:
-
User can now choose whether text writer routines output indented
xml or not.
- Fix:
-
A logic error in the zone data text writer has been fixed.
-
Version 0.35 (2019-03-30)
- New:
-
Routines have been added to the API to output XML using text
writers. Since such writers do not build an xml document tree,
they cut down on the memory overhead.
- Internal:
-
Nuclide or reaction views that include all nuclides or reactions
are now built simply by iterating over the items instead of
building an internal XML tree.
-
A number of XML strings are now cast instead of allocated.
-
Version 0.34 (2019-03-16)
- New:
-
Routines have been added to the API to parse and update XML data
using a text reader. While the XPath expressions necessary for
these parsers are typically more complex and somewhat more limited
in scope than the tree parsers, the memory overhead is much lower.
These routines are useful for large input XML.
-
Version 0.33 (2019-02-01)
- Fix:
-
Some function casts have been fixed.
-
Schema locations have been updated.
-
Version 0.32 (2018-01-08)
- New:
-
New API convenience routines allow the user to update and retrieve the
mass fractions for a zone directly.
-
Version 0.31 (2017-08-07)
- New:
-
New API routine allows the user to retrieve the state string for
a species.
-
Version 0.30 (2017-07-14)
- Internal:
-
Default WnChar is now simply char. Change with environment variable
WN_XML_CHAR.
-
Local path has been added to regression scripts.
-
Version 0.29 (2017-01-04)
- New:
-
New IUPAC approved names for elements 113, 115, 117, and 118 have been
added.
- Fix:
-
Restriction on number of reactants or products in xml schema has
been removed.
-
Callback returns on some examples codes have been fixed.
-
Version 0.28 (2016-07-23)
- New:
-
User can now explicitly set the string type for xmlStrPrintf format
with the environment variable WN_XML_CHAR.
-
Examples Makefile now uses the default compiler standard.
- Internal:
-
Includes have been moved outside extern "C" to prevent template
specialization warnings.
-
Format for size_t type is now set to %zu for appropriate compilers.
-
Version 0.27 (2016-06-14)
- Internal:
-
Internal types have been added to accommodate recent change to xmlStrPrintf (libxml 2.9.4).
- Fix:
-
Some documentation typos have been fixed.
-
The examples Makefile has been changed to accommodate clang.
-
Version 0.26 (2016-06-05)
- New:
-
Routines to retrieve screening factor function and data for a zone have been added to the API. Screening API routines added in 0.25 have been removed and examples using screening have been updated.
-
Routines to retrieve NSE correction factor function and data for a zone have been added to the API. Applier routine for reverse ratio correction factor has been removed from the API.
-
Version 0.25 (2016-05-24)
- New:
-
New API routines have been added to compute reverse screening factors and to retrieve forward and reverse screening factors.
-
Application of screening factors for zone reactions can now be set by an optional user-function. The default is to use the larger of the forward and reverse screening factors.
-
Application of reverse ratio correction factors for zone reactions can now be set by an optional user-function. The default is to apply the correction to the direction with the smaller of the forward and reverse screening factors.
-
A routine to check whether a reaction is weak in either the forward or reverse directions has been promoted to the API.
- Fix:
-
Some documentation typos have been fixed.
-
Version 0.24 (2016-05-21)
- Fix:
-
Treatment of reactions with more than two reactant via sequential screening of intermediate reactions now occurs in increasing order of reactant charge.
-
If a forward reaction is not screened, the screening factor is now determined from the reverse reaction, and the reverse reaction correction factor is applied to the forward reaction.
-
Version 0.23 (2014-12-14)
- New:
-
libnucnet schemas now allow the xml:base attribute in XIncluded data for nuclides, reactions, and zones and libnucnet parsers no longer disable base uri fixup.
-
New examples further demonstrate XInclude in libnucnet XML.
- Fix:
-
Reaction code now checks that the key for a user-defined reaction expression exists.
-
Version 0.22 (2014-04-22)
- Fix:
-
Libnucnet__Zone__getSpeciesAbundance() and Libnucnet__Zone__getSpeciesAbundanceChange() now check for valid species.
- Internal:
-
Some internal defines have been changed to work better with other libraries.
-
Version 0.21 (2013-08-14)
- Fix:
- Libnucnet__Reaction__copy() now correctly copies the duplicate reactant and product factors.
-
Version 0.20 (2013-04-18)
- New:
-
New API routines allow a user to determine whether a reaction rate function has been registered with a reaction collection or whether a zone is set to compute reverse rates from detailed balance. Example codes have been modified to illustrate use of those routines.
- Fix:
- Output comments from the create zones example have been slightly modified to describe the code actions more accurately.
-
Version 0.19 (2013-04-02)
- New:
-
Debugging is now turned on by compiling with the environment variable WN_DEBUG set.
-
API routines to copy all net views from one zone to another and to clear all net views in a zone have been added.
-
An API routine to clear rate values from a zone's rate hash has been added.
- Fix:
-
The example print_rates now returns 1 for correct iteration of reactions (fixes libnucnet:tickets:bug:#6).
-
Documentation and technical report typos have been fixed.
-
Version 0.18 (2013-02-14)
- New:
-
The capability to use XInclude for XML input has been added.
-
The ability to turn off calculation of reverse rates by detailed balance for a zone has been added.
-
Some typos in the documentation and elsewhere have been fixed.
-
Version 0.17 (2013-02-07)
- New:
-
The sourceforge web site for this project now uses Allura.
-
Some checks on zone and property hash validity have been added.
-
Some XML parser cleanups have been added.
-
The zone abundance averaging example now allows averaging by number or mass.
-
Version 0.16 (2012-07-14)
- New:
-
The new names Flerovium (element 114) and Livermorium (element 116) have been added.
- Fix:
-
The code now uses extern "C" for C++ compilers.
-
Version 0.15 (2012-05-19)
- New:
-
New API routines allow the user to output species names and reaction
strings in latex format. New examples demonstrate these routines.
- Internal:
-
Matrix and flow vector routines now use abundance vectors instead of
individual hash lookups for a small speed up in execution.
-
Version 0.14 (2012-04-21)
- Fix:
-
Format codes on print_largest_nucleon_number example routine have
been fixed.
- Internal:
-
An unnecessary allocation in getSpeciesByName() has been replaced
by a more efficient cast.
-
The callback routines to compute the Jacobian and flow vector
have been simplified by using arrays of reactant species instead
of lists.
-
Version 0.13 (2012-03-30)
- New:
-
Routines to get a copy of a network view, update a network
view in a zone, remove a network view from a zone,
check whether the parent network of a network
view has been updated since the view was generated, to add or
remove reactions to/from a view, and to iterate over network
views stored in a zone have been added to the API.
-
A new technical report describes libnucnet views and how to use them.
- Fix:
-
The user-defined function type Libnucnet__Net__screeningFunction has
been changed to Libnucnet__Net__screening_function to be compatible
with libnucnet naming standards. This is a backwards-incompatible
change.
- Reorganization:
-
The evolution network for a zone is now updated from a network view
using the network view update routine; thus, the
updateEvolutionNetwork() and restoreDefaultEvolutionNetwork() routines
have been removed. This is a backwards-incompatible change.
-
The addCopyOfNetView() routine has been removed. The action of this
routine can be replaced by a NetView copy and update.
-
Libnucnet__NucView and Libnucnet__ReacView no longer store the
originally defining XPath; thus, the getXPath() routines have been
removed.
-
The labels for a network view in a zone are no longer restricted
to XPath expressions.
-
The API routine to retrieve a network view from a zone no longer
creates the view if it does not exist. If it does not, the routine
now simply returns a null pointer indicating that the user should
create it and update it in the zone.
-
Version 0.12 (2011-12-30)
- New:
-
The API routine to update user rate function data now has a check
that the rate function is registered.
-
It is now possible to copy a Network view from one zone to another.
-
It is now possible to update the evolution network during a calculation.
An example code has been added to demonstrate this capability.
-
Routines to get the largest nucleon numbers and abundances summed
by Z, N, or A have been added to the API. Example codes have been
added to demonstrate these routines.
-
A new routine returns the standard Jacobian.
- Fix:
-
The usage statement in the example code update_reac_data_to_xml.c has
been corrected (fixes 3371635).
-
Some documentation typos have been fixed.
-
The example Kunz et al. (2002) fit function and data have been
corrected (fixes 3421904 and 3421906).
- Reorganization:
-
The distributed code no longer refers to a version number. This
may be obtained from the distribution directory name.
-
Version 0.11 (2011-07-18)
- New:
-
A new API routine Libnucnet__updateZoneXmlMassFractionFormat() now permits the user to choose the format code for output of zone mass fractions to an xml file. An example has been modified to illustrate this new routine.
-
A new API routine Libnucnet__Zone__addCopyOfNetView() allows the user to copy an existing NetView to a zone. An example has been modified to illustrate the use of this routine.
-
A new example shows how to update a reaction xml file with a second reaction xml file and output the result to a new xml file.
-
Version 0.10 (2011-06-13)
- New:
-
The defining XPath expressions for views may now be retrieved from
views by new API routines. Examples illustrate these new routines.
-
It is now possible to apply a user-defined deallocator routine
to data for a user-defined rate function.
- Fix:
-
A missing cast in a net view look up has been added to allow a
clean compile with g++ (fixes 3314818).
-
The default value for D_LARGE (the quantity governing how much larger
the reverse rate can be relative to the forward rate) has been
increased in Libnucnet.h.
-
Some documentation typos have been fixed.
- Reorganization:
-
The regression test script now downloads data automatically.
-
Version 0.9 (2011-05-28)
- New:
-
Code is now hosted at SourceForge.net.
-
The examples/ directory now includes a regression test script
generator.
-
It is now possible to get views of nuclide and reaction collections
and networks. New and modified examples demonstrate the use
of views.
- Reorganization:
-
Examples directory has moved to same level as src/.
-
Example codes now have descriptive names.
-
Data for example codes is now downloaded separately.
-
Extra data for user-defined rate functions are only stored in zones.
This means getDataForRateFunction() is no longer in the API.
-
It is no longer necessary to set user rate functions for the
Libnucnet__Reac structure after registering them.
This means setUserRateFunction() and
setUserRateFunctions() have been removed from the API.
-
Version 0.8 (2011-05-14)
- New:
-
The user no longer needs to make the tmp directory for compiling
example codes.
- Reorganization:
-
The prototype for computeRate() has changed and now takes extra data as
input. This is a backwards-incompatible change in the API.
-
The routine getDataForUserRateFunction() has been renamed to
getDataForRateFunction(). This is a backwards-incompatible change in
the API.
-
Version 0.7 (2010-09-06)
- New:
-
Routines to copy a zone, compute a species quantum abundance, and
a nuclear species binding energy have been added to the API.
Example codes have been added or modified to demonstrate these new
routines.
-
Darmstadtium, Roentgenium, and Copernicium have been added to the
element name list.
-
The ability to include elements with unassigned names
(for example, ubn--unbinilium--for Z = 120) has been added to the API.
- Fix:
-
A number of documentation typos have been fixed.
- Reorganization:
-
Parameters in example codes have been moved into defines.
-
Example codes that validate xml input now have flags to allow
the user to turn off validation (default is to validate).
-
Version 0.6 (2010-05-03)
- New:
-
Routines to output Libnucnet__Net and Libnucnet structures
to xml have been added to the API. New examples demonstrate
these new routines.
-
A routine to check the zone data against the webnucleo.org
zone data schema has been added.
-
The zone data schema now checks that an input mass fraction
lies between zero and one.
-
A check on the agreement between (z,a) and name of species
in input zone data has been added in the zone data parser.
-
Checks have been added on input zones for routines on species
abundances, abundance changes, and optional properties.
-
A check has been added to catch unregistered user rate function
keys.
-
It is now possible to include di-neutrons in the reaction network.
- Fix:
-
A number of documentation typos have been fixed.
-
A possible memory leak if update of user-defined properties fails
has been fixed.
-
A missing tau in usage statement of single zone network example
has been added.
-
Libnucnet__Nuc__getSpeciesByZA() no longer crashes when input Z
larger than largest Z in network.
- Reorganization:
-
Namespaces have been simplified. The prefixes have
been removed; however, the parser should still be able to handle
them in most cases.
-
Iteration over zone optional properties is now a direct scan. This
is potentially much faster than in previous versions; however, the
iteration order in no longer alphabetical by property name but rather
by the order in which the properties are stored internally,
an ordering the user does not control.
-
Version 0.5 (2010-01-11)
- New:
-
Iteration over species, reactions, and zones now uses qsort()
for ordering. This should dramatically speed up iteration of
large collections.
-
It is now possible for the user to define his/her own rate
function and to apply it to rate calculations. A new technical
report describes and the examples now illustrate how to apply such
rate functions.
- Fix:
-
Libnucnet__Nuc__writeToXmlFile() now correctly outputs isomer.
-
Old single ground state is now correctly removed if species
updated with ground and isomer.
-
Network evolution example codes now demonstrate Newton-Raphson
iterations more correctly.
-
The prototypes of accessor routines have been changed to reflect
const correctness better. This is a backwards compatible
change.
-
Version 0.4 (2009-05-18)
- New:
-
Two new examples demonstrate how to check that forward and reverse
reaction rates lie within specified bounds and how to run a single
zone network calculation with input thermodynamic and initial
mass fraction data from a text file.
-
It is now possible for the user to specify the order in which
reactions and zones are iterated over with their iterators.
The user specifies these with user-defined compare functions
that are set and cleared with API routines. The default iteration
order for both reactions and zones is now based on their internal
storage, which the user does not define. The default iteration for
reactions or zones can be considerably faster than one requiring
sorting and should be used whenever possible.
-
The routines Libnucnet__Species__updatePartitionFunctionData() and
Libnucnet__Reaction__updateRateTable() now sort the input data
by temperature before storing them.
-
The single zone evolution examples now use the new wn_matrix arrow
solver by default (though the user can still change to use the gsl
lu decomp routine). This requires an upgrade to wn_matrix 0.8 or
later. The arrow solver can run much faster than the gsl lu decomp
routine for large networks.
- Fix:
-
The argument check for the single zone evolution example has been fixed.
-
A bug that caused the routine to compute the nuclear partition function
to crash when the species only has two partition function points has
been fixed. The similar bug for computing reaction rates from rate
tables has also been fixed.
-
Some usage statements in the example codes have been fixed or
made clearer.
-
Some typos in the documentation have been fixed.
-
Version 0.3 (2009-01-27)
- New:
-
The following new API routines have been added:
Libnucnet__Nuc__clearSpeciesCompareFunction,
Libnucnet__Nuc__extractSubset,
Libnucnet__Nuc__updateSpecies,
Libnucnet__Reac__extractSubset,
Libnucnet__Reac__updateReaction,
Libnucnet__Reaction__Element__getName,
Libnucnet__Reaction__Element__isNuclide,
Libnucnet__Reaction__copy,
Libnucnet__Reaction__free,
Libnucnet__Reaction__iterateProducts,
Libnucnet__Reaction__iterateReactants,
Libnucnet__Reaction__new,
Libnucnet__Species__copy,
Libnucnet__Species__free,
Libnucnet__Species__getPartitionFunctionLog10,
Libnucnet__Species__getPartitionFunctionT9,
Libnucnet__Species__updateMassExcess,
Libnucnet__Species__updatePartitionFunctionData,
Libnucnet__Species__updateSource,
Libnucnet__Species__updateSpin,
Libnucnet__Zone__getProperty,
Libnucnet__Zone__iterateOptionalProperties,
Libnucnet__Zone__new,
Libnucnet__Zone__removeProperty,
Libnucnet__Zone__updateProperty,
Libnucnet__relabelZone,
Libnucnet__writeZoneDataToXml
-
The structure Libnucnet__Reaction__Element has been added to
the API. Reaction elements are reactants or products. API
routines allow the user to get the names of the reaction elements,
determine whether they are nuclides or not, and iterate over them.
-
Non-smoker fits now have high temperature limits. The default
is 10 billion K, but the user may set this in the data xml file.
-
It is now possible to get mass fraction data in a zone by z and a
or by the species name.
-
It is now possible to add, update, and retrieve optional properties
for a zone. It is also possible to iterate over the properties.
-
It is now possible to sort the species with a user-supplied
data compare function.
-
A number of new examples and their associated data demonstrate
the new API capabilities.
-
Generated example xml files are now included in the distribution
tarball. This allows users to run any of the examples right away.
- Fix:
-
A number of documentation typos have been fixed.
-
The usage statement for the modified reaction rate single zone
calculation has been fixed (bug reported by Tianhong Yu).
- Reorganization:
-
The prototypes of a number of API routines have changed. These
are backwards incompatibilities and users should update. The changed
routines are:
Libnucnet__Nuc__addSpecies,
Libnucnet__Nuc__removeSpecies,
Libnucnet__Reac__addReaction,
Libnucnet__Reac__new_from_xml,
Libnucnet__Reaction__addNonSmokerFit,
Libnucnet__Zone__updateAbundanceChanges,
Libnucnet__Zone__updateAbundances,
Libnucnet__addZone,
Libnucnet__new_from_xml.
-
The following routines have been removed from the API:
Libnucnet__Reaction__getNumberOfProducts,
Libnucnet__Reaction__getNumberOfReactants,
Libnucnet__assignZonesFromXml.
-
The xml zone data schema has changed.
- Internal:
-
The validity of reactions is now checked only when the network
has been updated. This results in a good speed up of network
calculations.
-
Version 0.2 (2008-08-01)
- New:
-
Libnucnet now can apply user-defined routines and data to compute
the effect of screening electrons on nuclear reaction rates.
Several examples in the distribution demonstrate how to apply
user-defined routines to reaction rate calculations and how
to use them in single-zone or multi-zone nucleosynthesis
calculations.
-
New routines allow a user to extract the abundances and abundance
changes of a zone into gsl_vector structures.
-
Libnucnet now handles mu and tau leptons as reactants and products.
-
A new API routine now returns a Libnucnet__Reac structure containing
duplicate reactions. Distribution examples demonstrate how to use
this routine and how to then remove duplicate reactions.
-
Libnucnet now handles multiple fits for a non-smoker reaction.
- Fix:
-
Re-indexing of all species after species removal has been fixed.
-
A bug that prevented a species abundance change from being updated
when it is zero has been fixed.
-
Several typos in the documentation have been fixed.
-
The symbol for Francium has been changed from incorrect fe to correct
fr (bug reported by Lih-Sin The).
- Reorganization:
-
The xml tag for the mass excess has been changed from mass to
mass_excess.
-
Species, reactions, and zones are now looped over by iterators.
A user now supplies a iterate function to be applied during the
iteration. The distribution examples have been modified to reflect
this change.
-
Libnucnet__Zone__computeFlowVector() now returns a gsl_vector.
-
Libnucnet now builds a reaction string from addReactant() and
addProduct() routines.
-
The routine to add partition function data now uses gsl_vectors.
-
The Q value calculation routine has been renamed.
-
Version 0.1 (2007-10-16)