CoSMo is a comprehensive shell model code suite designed for nuclear shell model and configuration interaction calculations. The highly structural and templated nature of the CoSMo code allows for flexibility and ease in applications, including those to open quantum systems with non-Hermitian Hamiltonians, clustering, and time-dependent dynamics.
Before installing, ensure your g++ compiler is compatible. Modify Makefile
and build.sh
as necessary to match your system's configuration.
To install:
- Run
build.sh
. This script will compile all files into the./bin
directory. - During the first run, the Eigen library will be installed via
git clone https://gitlab.com/libeigen/eigen.git
.
Before using CoSMo, source the appropriate environment variables with either source cosmovar.sh
or source cosmovar.zsh
.
To (re)compile an individual file.cpp
, use the command make file
.
See EXAMPLE* files provided, additional information can be found at www.volya.net
-
Create XML File:
- Create an XML file that identifies your system. This can be done manually, by editing a copied template, or using
cosmoxml
orxcosmo
which interact with the database of all interactions. - Command:
cosmoxml
- Create an XML file that identifies your system. This can be done manually, by editing a copied template, or using
-
Create Many-Body Basis:
- Use
Xsysmbs myfile.xml
orXsysmbsOMP
for the OpenMP version.
- Use
-
Create Many-Body Hamiltonian (Optional if using
DEXHVJTcsb
):- Command:
XHH+JJ myfile.xml
- Command:
-
Diagonalize Hamiltonian (Optional if using
DEXHVJTcsb
):- Use
davidson_file myfile.HH
for large matrices orexactev
(texactev
ortexactevEigen
) for full diagonalization.
- Use
-
Determine Spin and Isospin (Optional if using
DEXHVJTcsb
):- Command:
XSHLJT myfile.xml
- Command:
-
Compute EM Transitions:
- Command:
XSHLEMB myfile.xml -o output.xml
- Command:
-
Compute Spectroscopic Factors:
- Command:
XSHLSF myfile1.xml -f myfile2.xml
- Command:
-
Compute Occupation Numbers:
- Command:
XSHLAO myfile.xml
- Command:
-
Alternative Combined Command:
DEXHVJTcsb myfile.xml
can replace steps 3, 4, and 5.
-
Viewing and Editing XML Database:
- Use
Xlevels myfile.xml
to see an organized list of levels. - XML files are regular text files and can be edited directly for modifications or to set up new jobs.
- Use
The files included in the CoSMo distribution are listed in cosmo-main.txt
. All codes should accept command-line arguments and support -h
or --help
for help and usage instructions.
cosmoxml
: Generate an XML file for a system.Xsysmbs
: Create many-body states (*.mbs files), with support for rejections.XsysmbsOMP
: OpenMP version ofXsysmbs
.DEXHVJT
: Diagonalize Hamiltonian virtually and store states in an XML file.DEXHVJTcsb
: An alternative method for diagonalizing the Hamiltonian.- Combines
XHH+JJ
,XSHLJT
, anddavidson_vfile
.
- Combines
XHH+JJ.cpp
: Create a Hamiltonian matrix HH.davidson_vfile.cpp
: Diagonalize the Hamiltonian matrix.XSHLJT.cpp
: Process eigenvectors, determine spin, and populate the XML file.Xlevels
: Display states from the XML file.XSHLEMB
: Study electromagnetic and beta transitions.XSHLSF
: Study classic SF (no recoil).XSHLAO
: View occupation numbers.
This project is licensed under the GNU General Public License v3 (GPL v3). For the full license text, see the LICENSE
file.
For more details and acknowledgments of third-party components and libraries, please refer to the NOTICE
file.