### Install COMPAS Python Utilities Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst Installs the `compas_python_utils` package using pip. This command installs the package in the standard way. ```bash pip install . ``` -------------------------------- ### COMPAS Makefile Configuration Snippet Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst An example snippet from the COMPAS Makefile showing how include and library paths for GSL, Boost, and HDF5 are defined. These paths might need adjustment based on the user's system. ```makefile # gsl directories GSLINCDIR := /include GSLLIBDIR := /lib # boost directories BOOSTINCDIR := /include BOOSTLIBDIR := /lib # hdf5 directories HDF5INCDIR := /usr/include/hdf5/serial HDF5LIBDIR := /usr/lib/x86_64-linux-gnu/hdf5/serial ``` -------------------------------- ### Install macOS Development Tools Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst Installs Xcode command line tools on macOS, essential for C++ development and subsequent library installations. ```bash xcode-select --install ``` -------------------------------- ### Install Linux Dependencies Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst Installs necessary development packages for COMPAS on Ubuntu, Fedora, and RHEL/CentOS systems. Requires a C++ compiler and specific libraries. ```bash sudo apt-get install g++ libboost-all-dev libgsl-dev libhdf5-serial-dev ``` ```bash sudo dnf install gcc boost-devel gsl gsl-devel hdf5-devel ``` ```bash sudo yum install gcc boost-devel gsl gsl-devel hdf5-devel ``` -------------------------------- ### Locate Boost Installation Path Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst Demonstrates how to use `brew info boost` to find the installation path of the Boost library on macOS when using Homebrew. This path is needed for Makefile configuration. ```bash brew info boost ``` -------------------------------- ### Install Homebrew Package Manager Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst Installs the Homebrew package manager on macOS, used for installing GSL, Boost, and HDF5 libraries. ```bash /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ``` -------------------------------- ### Install macOS Libraries with Homebrew Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst Installs GSL, Boost, and HDF5 libraries on macOS using Homebrew. These are required dependencies for COMPAS. ```bash brew install gsl brew install boost brew install hdf5 ``` -------------------------------- ### Basic COMPAS Build Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst This command initiates a standard incremental build of the COMPAS framework using the `Makefile`. It requires specifying the Boost include and library directories. ```makefile make -f Makefile BOOSTINCDIR=/usr/local/Cellar/boost/1.72.0/include BOOSTLIBDIR=/usr/local/Cellar/boost/1.72.0/lib ``` -------------------------------- ### Clone COMPAS Repository Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst Clones the COMPAS project from its GitHub repository. This is the first step to obtain the source code. ```git git clone https://github.com/TeamCOMPAS/COMPAS ``` -------------------------------- ### Install COMPAS Python Utilities in Development Mode Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst Installs the `compas_python_utils` package in editable mode, meaning changes to the source code will be immediately reflected without reinstallation. It also includes development dependencies. ```bash pip install -e .[dev] ``` -------------------------------- ### Build COMPAS Documentation Locally Source: https://github.com/teamcompas/compas/blob/dev/online-docs/README.rst Installs COMPAS with development dependencies and builds the documentation locally. Requires navigating to the 'online-docs' directory and running 'make clean' followed by 'make html'. Results are found in 'docs/online-docs/_build/html/index.html'. ```bash pip install -e '.[dev]' cd online-docs make clean make html ``` -------------------------------- ### Example COMPAS Grid File Lines Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Running COMPAS/running-grid.rst Illustrates example lines from a COMPAS grid file, showing how to specify evolutionary parameters like metallicity, eccentricity, and remnant mass prescription for individual stellar or binary systems. ```bash --metallicity 0.001 --eccentricity 0.0 --remnant-mass-prescription fryer2012 --remnant-mass-prescription mullermandel --metallicity 0.02 --semi-major-axis 45.678 ``` -------------------------------- ### Start the Log Service Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Developer guide/Services/Logging and debugging/Base-level logging/services-base-level-logging.rst Illustrates how to initialize and start the logging service using the Start() function. The '...' indicates that parameters are required, as detailed in the function description. ```cpp LOGGING→Start(...) ``` -------------------------------- ### Clean COMPAS Build Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst This sequence first removes all existing object files and the COMPAS executable using `make clean`, ensuring a fresh build. It is then followed by a parallel build to recompile all source files. ```makefile make clean make -j 4 -f Makefile BOOSTINCDIR=/usr/local/Cellar/boost/1.72.0/include BOOSTLIBDIR=/usr/local/Cellar/boost/1.72.0/lib ``` -------------------------------- ### Mac COMPAS Build with Clang Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst This command is for Mac users experiencing linking issues. It performs a clean build using `clang++` as the C++ compiler and utilizes the system's available CPU cores for parallel processing. ```makefile make clean make CPP=clang++ -j$(sysctl -n hw.ncpu) ``` -------------------------------- ### Verify COMPAS Root Directory Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst Checks if the COMPAS_ROOT_DIR environment variable has been set correctly by displaying its value in the terminal. ```bash ECHO $COMPAS_ROOT_DIR ``` -------------------------------- ### Get COMPAS Version Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Running COMPAS/running-via-cmdline.rst Displays the installed version of the COMPAS application. This is useful for verifying the installation and compatibility. ```bash ./compas -v ``` ```bash ./compas --version ``` -------------------------------- ### Parallel COMPAS Build Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst This command performs an incremental build of COMPAS using multiple processor cores for faster compilation. The `-j` flag specifies the number of parallel jobs to run. ```makefile make -j 4 -f Makefile BOOSTINCDIR=/usr/local/Cellar/boost/1.72.0/include BOOSTLIBDIR=/usr/local/Cellar/boost/1.72.0/lib ``` -------------------------------- ### Dockerfile for COMPAS Image Construction Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/docker.rst The Dockerfile outlines the steps to build the COMPAS Docker image. It specifies the base image, working directory, dependency installation, file copying, environment variable setup, and the compilation process. It leverages layer caching for efficiency. ```dockerfile FROM ubuntu:18.04 WORKDIR /app/COMPAS RUN apt-get update && apt-get install -y \ build-essential \ git \ wget \ python3 \ python3-pip RUN pip3 install numpy COPY src/ src/ RUN mkdir obj bin logs ENV COMPAS_ROOT_DIR /app/COMPAS RUN cd src && make -f Makefile.docker -j $(nproc) ``` -------------------------------- ### Example COMPAS YAML Template Structure Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/pre-processing.rst An example illustrating the rules for a COMPAS YAML template file. It shows how headers, comments, default values, and options are processed according to COMPAS's rules. ```yaml ##~!!~## COMPAS option values ##~!!~## File Created Tue Feb 14 13:09:06 2023 by COMPAS v02.34.06 # first comment booleanChoices: ### BINARY PROPERTIES # --allow-touching-at-birth # Default: False # second comment ### STELLAR PROPERTIES --mass-loss-prescription: 'HURLEY' # Default: 'VINK' # Options: ['VINK','HURLEY','NONE'] third comment ``` -------------------------------- ### COMPAS Command-Line Execution Example Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Running COMPAS/running-via-python.rst An example of a COMPAS command-line execution with various parameters specified, such as envelope mass accretion prescription, envelope state prescription, and logfile type. These parameters control the simulation's physics and output format. ```bash stribution ZERO --common-envelope-mass-accretion-prescription ZERO --envelope-state-prescription LEGACY --logfile-type HDF5 --neutrino-mass-loss-BH-formation FIXED_MASS ``` -------------------------------- ### COMPAS Simulation Parameters Source: https://github.com/teamcompas/compas/blob/dev/misc/examples/methods_paper_plots/fig_5_HR_diagram/grid.txt This snippet shows example command-line arguments used to configure COMPAS simulations. It specifies initial stellar masses, metallicity, eccentricity, and semi-major axis. These parameters are crucial for setting up binary evolution scenarios. ```bash --initial-mass-1 0.5 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 0.65 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 0.8 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 1.0 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 1.3 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 1.6 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.0 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.5 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.2 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 4.0 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 5.2 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 6.5 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 8.2 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 10.3 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 13.0 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 16.5 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 21 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 26 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 33 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 45 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 65 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 90 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 115 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 150 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 0.5 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 0.65 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 0.8 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 1.0 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 1.3 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 1.6 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.0 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.5 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.2 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 4.0 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 5.2 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 6.5 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 8.2 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 10.3 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 13.0 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 16.5 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 21 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 26 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 33 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 45 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 65 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 90 --initial-mass-2 0.1 --metallicity 0.001 --eccentricity 0.0 --semi-major-axis 1e+20 ``` -------------------------------- ### h5view.py Example: Basic Usage Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Post-processing/hdf5/post-processing-h5view.rst Demonstrates the basic usage of the h5view.py script by providing a COMPAS HDF5 filename as input. This command typically results in a summary output of the file's structure and contents. ```python python3 h5view.py compas-output-file.h5 ``` -------------------------------- ### Example COMPAS command-line arguments (Output) Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Running COMPAS/running-via-python.rst This shows a sample output from running COMPAS via Python, illustrating the various command-line arguments that can be passed to the COMPAS executable to control simulation parameters and output. ```shell python_version = 3 ../src/COMPAS --enable-warnings False --use-mass-loss --mass-transfer --detailed-output False --evolve-unbound-systems False --population-data-printing False --rlof-printing --circularise-binary-during-mass-transfer --angular-momentum-conservation-during-circularisation False --pair-instability-supernovae --pulsational-pair-instability --quiet False --common-envelope-allow-main-sequence-survive --evolve-pulsars False --debug-to-file False --errors-to-file False --allow-rlof-at-birth --allow-touching-at-birth False --store-input-files --switch-log False --check-photon-tiring-limit False --number-of-systems 10 --metallicity 0.0142 --common-envelope-alpha 1.0 --common-envelope-lambda 0.1 --common-envelope-slope-kruckow -0.8333333333333334 --common-envelope-alpha-thermal 1.0 --common-envelope-lambda-multiplier 1.0 --luminous-blue-variable-multiplier 1.5 --overall-wind-mass-loss-multiplier 1.0 --wolf-rayet-multiplier 1.0 --cool-wind-mass-loss-multiplier 1.0 --mass-transfer-fa 0.5 --mass-transfer-jloss 1.0 --maximum-evolution-time 13700.0 --maximum-number-timestep-iterations 99999 --timestep-multiplier 1.0 --initial-mass-min 5.0 --initial-mass-max 150.0 --initial-mass-power 0.0 --semi-major-axis-min 0.01 --semi-major-axis-max 1000.0 --mass-ratio-min 0.01 --mass-ratio-max 1.0 --minimum-secondary-mass 0.1 --eccentricity-min 0.0 --eccentricity-max 1.0 --metallicity-min 0.0001 --metallicity-max 0.03 --pulsar-birth-magnetic-field-distribution-min 11.0 --pulsar-birth-magnetic-field-distribution-max 13.0 --pulsar-birth-spin-period-distribution-min 10.0 --pulsar-birth-spin-period-distribution-max 100.0 --pulsar-magnetic-field-decay-timescale 1000.0 --pulsar-magnetic-field-decay-massscale 0.025 --pulsar-minimum-magnetic-field 8.0 --orbital-period-min 1.1 --orbital-period-max 1000 --kick-magnitude-sigma-CCSN-NS 265.0 --kick-magnitude-sigma-CCSN-BH 265.0 --fix-dimensionless-kick-magnitude -1 --kick-direction-power 0.0 --mass-transfer-thermal-limit-C 10.0 --eddington-accretion-factor 1 --pisn-lower-limit 60.0 --pisn-upper-limit 135.0 --ppi-lower-limit 35.0 --ppi-upper-limit 60.0 --maximum-neutron-star-mass 2.5 --kick-magnitude-sigma-ECSN 30.0 --kick-magnitude-sigma-USSN 30.0 --kick-scaling-factor 1.0 --maximum-mass-donor-nandez-ivanova 2.0 --common-envelope-recombination-energy-density 15000000000000.0 --common-envelope-mass-accretion-max 0.1 --common-envelope-mass-accretion-min 0.04 --zeta-main-sequence 2.0 --zeta-radiative-envelope-giant 6.5 --kick-magnitude-max -1.0 --muller-mandel-kick-multiplier-BH 200.0 --muller-mandel-kick-multiplier-NS 400.0 --log-level 0 --debug-level 0 --hdf5-chunk-size 100000 --hdf5-buffer-size 1 --neutrino-mass-loss-BH-formation-value 0.1 --mode BSE --case-BB-stability-prescription ALWAYS_STABLE --chemically-homogeneous-evolution PESSIMISTIC --luminous-blue-variable-prescription HURLEY_ADD --mass-loss-prescription VINK --mass-transfer-angular-momentum-loss-prescription ISOTROPIC --mass-transfer-accretion-efficiency-prescription THERMAL --mass-transfer-rejuvenation-prescription STARTRACK --initial-mass-function KROUPA --semi-major-axis-distribution FLATINLOG --orbital-period-distribution FLATINLOG --mass-ratio-distribution FLAT --eccentricity-distribution ZERO --metallicity-distribution ZSOLAR --rotational-velocity-distribution ZERO --remnant-mass-prescription FRYER2012 --fryer-supernova-engine DELAYED --black-hole-kicks FALLBACK --kick-magnitude-distribution MAXWELLIAN --kick-direction ISOTROPIC --output-path /d/Jeff/User_Files/compas/dev/my_fork/compas/src --common-envelope-lambda-prescription LAMBDA_NANJING --stellar-zeta-prescription SOBERMAN --mass-transfer-thermal-limit-accretor CFACTOR --pulsational-pair-instability-prescription MARCHANT --neutron-star-equation-of-state SSE --pulsar-birth-magnetic-field-distribution ZERO --pulsar-birth-spin-period-di ``` -------------------------------- ### COMPAS Change Log Entry Example (C++ Comments) Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Developer guide/changelog.rst An example fragment from the COMPAS change log file, illustrating the format of entries. Each entry includes a version number, developer initials, date, and a description of changes, often referencing GitHub issues. ```cpp // 02.09.06 JR - Apr 07, 2020 - Defect repair: // - corrected calculation in return statement for Rand::Random(const double p_Lower, const double p_Upper) (issue #201) // - corrected calculation in return statement for Rand::RandomInt(const double p_Lower, const double p_Upper) (issue #201) // 02.09.07 SS - Apr 07, 2020 - Change eccentricity, semi major axis and orbital velocity pre-2nd supernove to just pre-supernova everywhere in the code // 02.09.08 SS - Apr 07, 2020 - Update zetaMainSequence=2.0 and zetaHertzsprungGap=6.5 in Options::SetToFiducialValues // 02.09.09 JR - Apr 11, 2020 - Defect repair: // - restored property names in COMPASUnorderedMap STAR_PROPERTY_LABEL in constants.h (issue #218) (was causing logfile definitions files to be parsed incorrectly) // 02.09.10 IM - Apr 12, 2020 - Minor enhancement: added Mueller & Mandel 2020 remnant mass and kick prescription, MULLERMANDEL // Defect repair: corrected spelling of output help string for MULLER2016 and MULLER2016MAXWELLIAN // 02.10.01 IM - Apr 14, 2020 - Minor enhancement: // - moved code so that SSE will also sample SN kicks, following same code branch as BSE // 02.10.02 SS - Apr 16, 2020 - Bug Fix for issue #105 ; core and envelope masses for HeHG and TPAGB stars // 02.10.03 JR - Apr 17, 2020 - Defect repair: // - added LBV and WR winds to SSE (issue #223) // 02.10.04 IM - Apr 25, 2020 - Minor enhancement: moved Mueller & Mandel prescription constants to constants.h, other cleaning of this option ``` -------------------------------- ### Compas Simulation Setup Parameters Source: https://github.com/teamcompas/compas/blob/dev/misc/examples/methods_paper_plots/fig_6_max_R/grid.txt This snippet details the command-line arguments used to configure a simulation within the Compas framework. It specifies parameters such as initial masses of two bodies, metallicity, orbital eccentricity, and semi-major axis. ```bash --initial-mass-1 2.34 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.366 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.394 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.421 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.449 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.477 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.506 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.534 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.564 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.593 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.623 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.653 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.684 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.714 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.746 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.777 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.809 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.841 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.874 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.907 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.94 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 2.974 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.008 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.043 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.078 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.113 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.149 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.185 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.222 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.259 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.297 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.334 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.373 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.412 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.451 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.49 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.531 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.571 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.612 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.654 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.696 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.738 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.781 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.825 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 --initial-mass-1 3.869 --initial-mass-2 0.1 --metallicity 0.0142 --eccentricity 0.0 --semi-major-axis 1e+20 ``` -------------------------------- ### COMPAS: Set BSE System Parameters Source: https://github.com/teamcompas/compas/blob/dev/compas_python_utils/preprocessing/COMPAS_Output_Definitions.txt Illustrates how to set the BSE system parameters specification by defining a list of binary, star, and supernova properties to be logged. This example shows both initial setting and subsequent additions. ```config bse_sysparms_rec = { # set the BSE System Parameters specification to: BINARY_PROPERTY::ID, # ID of the binary BINARY_PROPERTY::RANDOM_SEED, # RANDOM_SEED for the binary STAR_1_PROPERTY::MZAMS, # MZAMS for Star1 STAR_2_PROPERTY::MZAMS # MZAMS for Star2 } bse_sysparms_rec += { # ADD to the BSE System Parameters specification: BINARY_PROPERTY::SEMI_MAJOR_AXIS_INITIAL, # SEMI_MAJOR_AXIS_INITIAL for the binary BINARY_PROPERTY::ECCENTRICITY_INITIAL, # ECCENTRICITY_INITIAL for the binary STAR_1_PROPERTY::SUPERNOVA_THETA, STAR_1_PROPERTY::SUPERNOVA_PHI # SUPERNOVA_THETA for Star1 and SUPERNOVA_PHI for Star1 } bse_sysparms_rec += { # ADD to the BSE System Parameters specification: SUPERNOVA_PROPERTY::IS_ECSN, # IS_ECSN for the supernova star SUPERNOVA_PROPERTY::IS_CCSN, # IS_CCSN for the supernova star SUPERNOVA_PROPERTY::IS_USSN, # IS_USSN for the supernova star SUPERNOVA_PROPERTY::EXPERIENCED_PISN, # EXPERIENCED_PISN for the supernova star SUPERNOVA_PROPERTY::EXPERIENCED_PPISN, # EXPERIENCED_PPISN for the supernova star SUPERNOVA_PROPERTY::MZAMS, # MZAMS for the supernova star COMPANION_PROPERTY::MZAMS # MZAMS for the companion star } bse_sysparms_rec -= { # SUBTRACT from the BSE System Parameters specification: BINARY_PROPERTY::RANDOM_SEED, # RANDOM_SEED for the binary BINARY_PROPERTY::ID # ID for the binary } ``` -------------------------------- ### Pull Specific COMPAS Docker Image Version Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Running COMPAS/running-via-docker-installation.rst Retrieves a specific version of the COMPAS Docker image from Docker Hub by specifying the version tag. For example, to get version 2.12.0. ```shell docker pull teamcompas/compas:2.12.0 ``` -------------------------------- ### Initializing the Options Service Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Developer guide/Services/Program options/services-program-options.rst Shows the correct way to initialize the Options service with command-line arguments (argc, argv). ```C++ COMMANDLINE_STATUS programStatus = OPTIONS→Initialise(argc, argv); ``` -------------------------------- ### Set COMPAS Root Directory Environment Variable Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Getting started/getting-started.rst Defines the COMPAS_ROOT_DIR environment variable in shell configuration files (.bashrc, .zshrc, .cshrc) to point to the COMPAS installation directory. This is crucial for COMPAS to function correctly. ```bash export COMPAS_ROOT_DIR=~/codes/COMPAS source ~/.bashrc ``` ```bash setenv COMPAS_ROOT_DIR ~/codes/COMPAS ``` -------------------------------- ### List COMPAS Command-Line Options with Descriptions and Defaults Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Running COMPAS/running-via-cmdline.rst Provides a comprehensive list of COMPAS command-line options, including their brief descriptions and default values. This is essential for configuring COMPAS runs. ```bash ./compas --help ``` -------------------------------- ### List Keys within COMPAS Datasets Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Post-processing/CHE_paper_tutorial/CHE_evolution_demo.ipynb Shows how to list the specific parameters available within the 'DoubleCompactObjects', 'SystemParameters', and 'Supernovae' datasets of the COMPAS HDF5 file. This helps in understanding the structure and content of the simulation output. ```python print(list(fdata['DoubleCompactObjects'].keys())) print() print(list(fdata['SystemParameters'].keys())) print() print(list(fdata['Supernovae'].keys())) ``` -------------------------------- ### List Files in Directory Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Post-processing/CHE_paper_tutorial/CHE_evolution_demo.ipynb Lists all files and directories in the current working directory. This command is used to verify the presence of necessary COMPAS scripts and output files before running simulations. ```bash !ls ``` -------------------------------- ### Run COMPAS with specific binary evolution parameters Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Running COMPAS/running-via-cmdline.rst This command executes the COMPAS simulator to evolve five binary systems with specified initial masses, metallicity, and stellar evolution prescriptions. It demonstrates how to set custom parameters for mass-loss and common-envelope evolution. ```bash ./compas --number-of-systems 5 --initial-mass-1 8.5 --initial-mass-2 13.7 --metallicity 0.015 --mass-loss-prescription VINK --common-envelope-alpha 0.8 --common-envelope-lambda 0.2 ``` -------------------------------- ### Running COMPAS with a Grid File Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Running COMPAS/running-grid.rst Demonstrates the command-line execution of COMPAS, specifying a grid file named 'grid_demo.txt' to control the initial conditions for multiple evolutionary runs. ```bash COMPAS --grid grid_demo.txt ``` -------------------------------- ### K&R Brace Style Example in C++ Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/Developer guide/Programming style/programming-style-style-braces.rst Demonstrates the K&R style for brace placement in C++ code, where the opening brace follows the control statement on the same line. This style is preferred for enhancing code readability, including spacing around operators and keywords. ```C++ while (x == y) { call_something(); var1 = var2 call_somethingelse(); } ``` -------------------------------- ### List COMPAS Command-Line Options Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Running COMPAS/running-via-cmdline.rst Outputs a list of all available command-line options for COMPAS. This helps users understand the parameters they can control. ```bash ./compas -h ``` -------------------------------- ### Install Libraries for HDF5 Processing Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Post-processing/hdf5/WorkingWithHDF5.ipynb Installs necessary Python libraries including numpy, h5py, and pandas, which are essential for handling HDF5 data and performing analysis. ```python ! pip install numpy h5py pandas ``` -------------------------------- ### COMPAS Help and Version Source: https://github.com/teamcompas/compas/blob/dev/online-docs/pages/User guide/Program options/program-options-list-defaults.rst Displays help information and the version string for the COMPAS program. ```bash --help [ -h ] --version [ -v ] ```