diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/.DS_Store differ diff --git a/.github/workflows/cmake-single-platform.yml b/.github/workflows/cmake-single-platform.yml new file mode 100644 index 0000000..1e888bb --- /dev/null +++ b/.github/workflows/cmake-single-platform.yml @@ -0,0 +1,41 @@ +name: CMake + +on: + push: + branches: [ "beta" ] + pull_request: + branches: [ "beta" ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + EIGEN3_INCLUDE_DIR: /usr/include/eigen3 + +jobs: + build: + # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. + # You can convert this to a matrix build if you need cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Install Dependencies + run: | + sudo apt-get update + sudo apt-get install -y gnuplot + sudo apt-get install -y libeigen3-dev + sudo apt-get install -y libboost-all-dev + sudo apt-get install -y libgsl-dev + sudo apt-get install -y build-essential + sudo apt-get install -y cmake + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} diff --git a/.github/workflows/cmake_UbuntuMac.yml b/.github/workflows/cmake_UbuntuMac.yml new file mode 100644 index 0000000..4a49227 --- /dev/null +++ b/.github/workflows/cmake_UbuntuMac.yml @@ -0,0 +1,42 @@ +name: CMake + +on: + push: + branches: [ "beta" ] + pull_request: + branches: [ "beta" ] + +env: + BUILD_TYPE: Release + EIGEN3_INCLUDE_DIR: /usr/include/eigen3 + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + steps: + - uses: actions/checkout@v3 + + - name: Install Dependencies (Ubuntu) + if: startsWith(runner.os, 'Linux') + run: | + sudo apt-get update + sudo apt-get install -y gnuplot + sudo apt-get install -y libeigen3-dev + sudo apt-get install -y libboost-all-dev + sudo apt-get install -y libgsl-dev + sudo apt-get install -y build-essential + sudo apt-get install -y cmake + + - name: Install Dependencies (macOS) + if: startsWith(runner.os, 'macOS') + run: | + brew install gnuplot eigen boost gsl cmake + + - name: Configure CMake + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..4ed9c6b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,84 @@ +{ + "files.associations": { + "__bit_reference": "cpp", + "__bits": "cpp", + "__config": "cpp", + "__debug": "cpp", + "__errc": "cpp", + "__hash_table": "cpp", + "__locale": "cpp", + "__mutex_base": "cpp", + "__node_handle": "cpp", + "__nullptr": "cpp", + "__split_buffer": "cpp", + "__string": "cpp", + "__threading_support": "cpp", + "__tuple": "cpp", + "array": "cpp", + "atomic": "cpp", + "bit": "cpp", + "bitset": "cpp", + "cctype": "cpp", + "chrono": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "compare": "cpp", + "complex": "cpp", + "concepts": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "exception": "cpp", + "fstream": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "ios": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "locale": "cpp", + "memory": "cpp", + "mutex": "cpp", + "new": "cpp", + "numeric": "cpp", + "optional": "cpp", + "ostream": "cpp", + "random": "cpp", + "ratio": "cpp", + "sstream": "cpp", + "stack": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "string": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "typeinfo": "cpp", + "unordered_map": "cpp", + "variant": "cpp", + "vector": "cpp", + "__functional_base": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "utility": "cpp", + "__tree": "cpp", + "__verbose_abort": "cpp", + "charconv": "cpp", + "map": "cpp", + "queue": "cpp", + "set": "cpp", + "thread": "cpp", + "any": "cpp", + "condition_variable": "cpp" + } +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..4ede37a --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,29 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: clang build active file", + "command": "/usr/bin/clang", + "args": [ + "-fcolor-diagnostics", + "-fansi-escape-codes", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..5535dbe --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,135 @@ +cmake_minimum_required(VERSION 3.5) + +project(specsim VERSION 1.1) + +# Check for macOS +if(APPLE) + set(MACOS 1) +else() + set(MACOS 0) +endif() + +# Check for Linux +if(CMAKE_COMPILER_IS_GNUCXX) + set(LINUX 1) +else() + set(LINUX 0) +endif() + +if(NOT CMAKE_COMPILER_IS_GNUCXX AND NOT MACOS) + message(FATAL_ERROR "This program works only on Mac or Linux") +endif() + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(Boost_USE_MULTITHREADED TRUE) +option(WITH_OPENMP "OpenMP Library" ON) +option(BUILD_ON_DALMA "Building for NYU DALMA Supercomputer" OFF) + +# Configure the header file +# configure_file(rgen_config.h.in rgen_config.h) + +if(NOT BUILD_ON_DALMA) + if(CMAKE_COMPILER_IS_GNUCXX) + set(CMAKE_CXX_FLAGS "-O2") + #set(CMAKE_CXX_FLAGS "-O2 -fopenmp") + endif() + if (APPLE) + set(CMAKE_CXX_FLAGS "-O2") + #set(CMAKE_CXX_FLAGS "-O2 -fopenmp=libomp") + endif() +else() + message(STATUS "Building for NYU DALMA Supercomputer...") + message(WARNING " - Remember to load the modules required for DALMA before running cmake") + message(STATUS " - Adding optimisation flags for DALMA...") + # SSE / AVX switch + option(USE_AVX "Build with AVX support" ON) + if(USE_AVX) + set(CMAKE_CXX_FLAGS "-fopenmp -O3 -mavx2 -mfma -march=haswell") + else() + set(CMAKE_CXX_FLAGS "-O3 -msse4.2 -march=westmere") + endif() +endif() + + +#Bring the core program sources into the project +set(SOURCES_MAIN #_COMMON + iterative_artificial_spectrum.cpp + artificial_spectrum.cpp + models_database.cpp + derivatives_handler.cpp + interpol.cpp + linfit.cpp + linspace.cpp + plots_diags.cpp + build_lorentzian.cpp + function_rot.cpp + io_star_params.cpp + io_star_common.cpp + noise_models.cpp + ioproc.cpp + random_JB.cpp + combi.cpp + stellar_models.cpp + models_database_grid.cpp + format.cpp + acoefs.cpp + external/Alm/Alm_cpp/activity.cpp + external/ARMM/bump_DP.cpp + external/ARMM/solver_mm.cpp + external/rescale/rescale_freqs.cpp + external/rescale/decompose_nu.cpp + external/rescale/data.h + ) + +set(SOURCES_TEST_LORENTZIAN + test_fct/lorentzian_tests.cpp + function_rot.cpp + ioproc.cpp + build_lorentzian.cpp + linspace.cpp + acoefs.cpp + external/Alm/Alm_cpp/activity.cpp + ) + + +# Check and Load dependencies +find_package(Gnuplot REQUIRED) +if(NOT GNUPLOT_FOUND) + message(FATAL_ERROR "Gnuplot is required for rendering. Cannot pursue. Please install gnuplot") +endif() + +if (WITH_OPENMP) + find_package(OpenMP) + if (OPENMP_FOUND) + #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + #set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}") + if(WITH_OPENMP) + string(APPEND CMAKE_CXX_FLAGS_RELEASE " -fopenmp") + endif() + endif() +endif() + + +# +include_directories() + + +#Dependencies that are not portable (BOOST) +set(Boost_USE_MULTITHREADED=OFF) +find_package(Boost COMPONENTS system filesystem iostreams program_options REQUIRED) +include_directories(${Boost_INCLUDE_DIRS}) +link_directories(${Boost_LIBRARY_DIRS}) + +add_executable(${CMAKE_PROJECT_NAME} ${SOURCES_MAIN}) +if(MACOS) + find_package(Eigen3 REQUIRED NO_MODULE) + target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE MACOS) + target_link_libraries(${CMAKE_PROJECT_NAME} Eigen3::Eigen ${Boost_LIBRARIES} "-framework CoreFoundation") +elseif(LINUX) + #Look for eigen and explicitly specify to use it. EIGEN3_INCLUDE_DIR Must be specified in the bashrc + include_directories( "$ENV{EIGEN3_INCLUDE_DIR}" ) + target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE LINUX) + target_link_libraries(${CMAKE_PROJECT_NAME} ${Boost_LIBRARIES} rt) +endif() diff --git a/Configurations/MixedModes_models/Readme.txt b/Configurations/MixedModes_models/Readme.txt new file mode 100644 index 0000000..1202012 --- /dev/null +++ b/Configurations/MixedModes_models/Readme.txt @@ -0,0 +1,16 @@ +Directory that contains 'star_params.theoretical', used to compute a stellar model of an evolved stars, +from frequencies, Dnu, DPl, q, alpha_g provided by the user in that file. +The expected format is: + +# use_nu_nl : 0 = false, 1 = true +0 +# Global frequency parameters +Dnu=[Value] +DPl=[Value] +q =[Value] +alpha_g=[Value] +# Frequencies l, nu_nl +[l] [Value] +... +... +[l] [Value] diff --git a/Configurations/MixedModes_models/star_params.theoretical.EXAMPLE b/Configurations/MixedModes_models/star_params.theoretical.EXAMPLE new file mode 100644 index 0000000..f0a310b --- /dev/null +++ b/Configurations/MixedModes_models/star_params.theoretical.EXAMPLE @@ -0,0 +1,31 @@ +# use_nu_nl : 0 = false / 1 = true +1 +# Global frequency parameters +Dnu=15 +DPl=80 +q=0.2 +alpha_g=0.5 +# Frequencies l, nu_nl +0 100 +0 115 +0 130 +0 145 +1 90 +1 93 +1 95 +1 105 +1 108 +1 110 +1 121 +1 123 +1 125 +1 135 +1 138 +1 140 +2 98 +2 113 +2 128 +2 143 +3 106 +3 121 +3 136 diff --git a/Configurations/common_modelfile/Readme.txt b/Configurations/common_modelfile/Readme.txt new file mode 100644 index 0000000..bd3780e --- /dev/null +++ b/Configurations/common_modelfile/Readme.txt @@ -0,0 +1,5 @@ +This directory must contain templates which specify what to write as common global parameters (at the end of a .model file). +This is an alternative solution to using presets defined by functions inside io_star_common.cpp +To use a template instead of the default, this directory must contain a file named use_template.cfg with two lines: +First line: A boolean that specify if we use the template +Second line: The name of the template to be used. The file is expected into this directory diff --git a/Configurations/common_modelfile/aj_model.common b/Configurations/common_modelfile/aj_model.common new file mode 100644 index 0000000..5fd9a02 --- /dev/null +++ b/Configurations/common_modelfile/aj_model.common @@ -0,0 +1,23 @@ +# Configuration for all common parameters. Check the program for a list of known keywords + model_fullname model_MS_Global_aj_HarveyLike + freq_smoothness bool 1.000 2.000 + a1_0 Uniform 1.000 0.000 1.500 + a1_1 Fix 0.000 + a2_0 Uniform 0.000 -0.220 0.270 + a2_1 Fix 0.000 + a3_0 Fix 0.000 + a3_1 Fix 0.000 + a4_0 Uniform 0.000 -0.040 0.040 + a4_1 Fix 0.000 + a5_0 Fix 0.000 + a5_1 Fix 0.000 + a6_0 Fix 0.000 + a6_1 Fix 0.000 + Asymetry Fix 0.000 + Inclination Uniform 45.000 0 90.00 + Visibility_l1 Gaussian 1.5 1.5 0.05 + Visibility_l2 Gaussian 0.53 0.53 0.05 + Visibility_l3 Gaussian 0.08 0.08 0.02 + Height Jeffreys 1.000 10000. + Width Fix_Auto 1 + trunc_c Fix 30 diff --git a/Configurations/common_modelfile/use_template.cfg b/Configurations/common_modelfile/use_template.cfg new file mode 100644 index 0000000..7b31cdb --- /dev/null +++ b/Configurations/common_modelfile/use_template.cfg @@ -0,0 +1,2 @@ +True +aj_model.common diff --git a/Configurations/examples_cfg/main.cfg.Alm b/Configurations/examples_cfg/main.cfg.Alm new file mode 100644 index 0000000..7bdd3bb --- /dev/null +++ b/Configurations/examples_cfg/main.cfg.Alm @@ -0,0 +1,24 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +grid 10 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +generate_cfg_from_synthese_file_Wscaled_Alm /Users/obenomar/tmp/Simulator/Spectra-Simulator-C-1.0.0/Configurations/infiles/8379927.in +NONE # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates + HNR a1ovGamma Gamma_at_numax epsilon_nl theta0 delta a3 beta_asym i #Variable names + 10 0.6 1. 0.0001 5.0 15.0 -0.100 40.0 1.50 #val_min, put -1 to use the values of the synthese file for a1, a3 + 10 0.6 1. 0.0011 90.0 45.0 -0.100 40.0 3.0 #val_max + 0. 0.0 0. 0.0005 0. 15. 0. 0. 1.5 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +100 120 1 1 +1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +0 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? +1 # Limit Data to mode range? +1 model_MS_Global_a1etaAlma3_HarveyLike # Do .model files? If yes, use the name provided here to define the used model name within the .model file diff --git a/Configurations/examples_cfg/main.cfg.aj b/Configurations/examples_cfg/main.cfg.aj new file mode 100644 index 0000000..e383e0a --- /dev/null +++ b/Configurations/examples_cfg/main.cfg.aj @@ -0,0 +1,24 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +grid 10 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +generate_cfg_from_synthese_file_Wscaled_aj /Users/obenomar/Work/Spectra-Simulator-C/Configurations/infiles/8379927.in +NONE # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates +Dnu epsilon delta0l_percent HNR a1ovGamma Gamma_at_numax a2 a3 a4 a5 a6 beta_asym i H_spread nu_spread Gamma_spread do_flat_noise #Variable names +70 0.5 1. 10 0.6 1. 0.1 -0.1 0.15 0.2 0.05 10 0.0 5 0.2 5 1 #val_min +70 0.5 1. 10 0.6 1. 0.1 -0.1 0.3 0.2 0.10 10 20 5 0.2 5 1 #val_max +0 0 0 0. 0.0 0. 0 0. 0.15 0. 0.05 0 10 0 0 0 0 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +100 120 1 1 +1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +0 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? +0 # Limit Data to mode range? +0 model_MS_Global_aj_HarveyLike # Do .model files? If yes, use the name provided here to define the used model name within the .model file diff --git a/Configurations/examples_cfg/main.cfg.aj_GRANscaledKallinger b/Configurations/examples_cfg/main.cfg.aj_GRANscaledKallinger new file mode 100644 index 0000000..d2ec753 --- /dev/null +++ b/Configurations/examples_cfg/main.cfg.aj_GRANscaledKallinger @@ -0,0 +1,26 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +# This is a template with a Noise described by Kallinger relations and three Harvey-like. +# The configuration for the noise in Kallinger is given by an ANOTHER file: noise_Kallinger2014.cfg. See that file for more details +random 1 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +generate_cfg_from_synthese_file_Wscaled_aj_GRANscaled_Kallinger2014 /Users/obenomar/Work/dev/Spectra-Simulator-C/Configurations/infiles/12069424.in +NONE # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates +Dnu epsilon delta0l_percent HNR a1ovGamma Gamma_at_numax a2 a3 a4 a5 a6 beta_asym i numax_spread H_spread nu_spread #Variable names +100 0.5 5. 30 0.5 1. 0. 0.0 0.0 0 0.0 0 55.0 0 0 0.0 #val_min +100 0.5 5. 30 1.0 1. 0. 0.0 0.0 0 0.0 0 55 0 0 0.0 #val_max +0 0 0 1. 1 0 0 0 0 0. 0 0 0 0 0 0 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +300 120 1 1 +0 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +1 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? +1 # Limit Data to mode range? +0 model_MS_Global_aj_HarveyLike # Do .model files? If yes, use the name provided here to define the used model name within the .model file diff --git a/Configurations/examples_cfg/main.cfg.freeDP_curvepmodes.v3_GRANscaled b/Configurations/examples_cfg/main.cfg.freeDP_curvepmodes.v3_GRANscaled new file mode 100644 index 0000000..aea16bf --- /dev/null +++ b/Configurations/examples_cfg/main.cfg.freeDP_curvepmodes.v3_GRANscaled @@ -0,0 +1,28 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +# WARNING : DO NOT USE a2_core AND a2_l1_env ! Let it to 0. IT IS HERE FOR FUTURE UPGRADE OF THE FUNCTIONS +# BUT IT IS NOT USED IN THE CURRENT VERSION OF THE CODE +# NOTE ON a-coefficients: +# - If you want a2_l2_env = a2_l3_env, then SET A RANGE FOR a2_l2_env and FIX a2_l3_env to -9999 +# - If you want a3_l2_env = a3_l3_env, then SET A RANGE FOR a3_l2_env and FIX a3_l3_env to -9999 +# - If you want a4_l2_env = a4_l3_env, then SET A RANGE FOR a4_l2_env and FIX a4_l3_env to -9999 +random 1 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +asymptotic_mm_freeDp_numaxspread_curvepmodes_v3_GRANscaled_Kallinger2014 # Name of the model. asymptotic_mm_freeDp_curvepmodes_v1 is a model iterating on what was learnt from asymptotic_v1, v2, v3 to generate a star with mixed modes +all # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates +nurot_env nurot_core a2_l1_core a2_l1_env a2_l2_env a2_l3_env a3_l2_env a3_l3_env a4_l2_env a4_l3_env a5_l3_env a6_l3_env Dnu epsilon delta0l_percent beta_p_star nmax_spread DP1 alpha q SNR maxGamma numax_spread Vl1 Vl2 Vl3 H0_spread Hfactor Wfactor +0.1286 0.1286 0 0 -0.1 -0.1 -0.05 -0.05 -0.1 -0.1 -0.05 -0.05 20. 0. -0.5 0.00 5 75 0.00 0.1 1000. 0.1 15 1 0.25 0.0 10 0.0 0.0 #val_min +0.3858 3.858 0 0. 0.1 0.1 0.05 0.05 0.1 0.1 0.05 0.05 30. 1. 3 0.10 5 400 1.00 0.5 5000. 1.5 15 1.75 0.80 0.1 10 1.0 1.0 #val_max +1. 1. 0 0 1 1 1 1 1 1 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1 1 0. 1. 1. 1. 0 1 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +100. 120 1 4 +1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +1 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/examples_cfg/obselete/main.cfg.CRASHSOMETIMES.TO.TEST b/Configurations/examples_cfg/obselete/main.cfg.CRASHSOMETIMES.TO.TEST new file mode 100644 index 0000000..a81dd82 --- /dev/null +++ b/Configurations/examples_cfg/obselete/main.cfg.CRASHSOMETIMES.TO.TEST @@ -0,0 +1,28 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +# WARNING : DO NOT USE a2_core AND a2_l1_env ! Let it to 0. IT IS HERE FOR FUTURE UPGRADE OF THE FUNCTIONS +# BUT IT IS NOT USED IN THE CURRENT VERSION OF THE CODE +# NOTE ON a-coefficients: +# - If you want a2_l2_env = a2_l3_env, then SET A RANGE FOR a2_l2_env and FIX a2_l3_env to -9999 +# - If you want a3_l2_env = a3_l3_env, then SET A RANGE FOR a3_l2_env and FIX a3_l3_env to -9999 +# - If you want a4_l2_env = a4_l3_env, then SET A RANGE FOR a4_l2_env and FIX a4_l3_env to -9999 +random 1 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +asymptotic_mm_freeDp_numaxspread_curvepmodes_v3 # Name of the model. asymptotic_mm_freeDp_curvepmodes_v1 is a model iterating on what was learnt from asymptotic_v1, v2, v3 to generate a star with mixed modes +all # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates +nurot_env nurot_core a2_l1_core a2_l1_env a2_l2_env a2_l3_env a3_l2_env a3_l3_env a4_l2_env a4_l3_env a5_l3_env a6_l3_env Dnu epsilon delta0l_percent beta_p_star nmax_spread DP1 alpha q SNR maxGamma numax_spread Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 Hfactor Wfactor +0.1286 0.1286 0 0 -0.1 -0.1 -0.05 -0.05 -0.1 -0.1 -0.05 -0.05 20. 0. -3 0.00 5 75 0.00 0.1 1000. 0.1 15 1 0.25 0.0 10 0.8 -2.2 0. 0.8 -1.2 0. 1.8 0.1 0.0 0.0 #val_min +0.3858 3.858 0 0. 0.1 0.1 0.05 0.05 0.1 0.1 0.05 0.05 30. 1. 0.5 0.10 5 400 1.00 0.5 5000. 1.5 15 1.75 0.80 0.1 10 1.2 -1.8 0.5 1.2 -0.8 0.5 2.2 0.4 1.0 1.0 #val_max +1. 1. 0 0 1 1 1 1 1 1 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1 1 0. 1. 1. 1. 0 1. 1. 1. 1. 1 1 1 1 1 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +100. 120 1 4 +1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +1 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/main.cfg b/Configurations/examples_cfg/obselete/main.cfg.LAST old mode 100644 new mode 100755 similarity index 100% rename from Configurations/main.cfg rename to Configurations/examples_cfg/obselete/main.cfg.LAST diff --git a/Configurations/examples_cfg/obselete/main.cfg.MS.a1a2a3.scaled b/Configurations/examples_cfg/obselete/main.cfg.MS.a1a2a3.scaled new file mode 100644 index 0000000..edd0d49 --- /dev/null +++ b/Configurations/examples_cfg/obselete/main.cfg.MS.a1a2a3.scaled @@ -0,0 +1,22 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +random 4 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +generate_cfg_from_synthese_file_Wscaled_a1a2a3asymovGamma /Users/obenomar/Documents/GitHub/Spectra-Simulator-C/Configurations/infiles/8379927_1111kasoc_synthese.in +NONE # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates + HNR a1ovGamma Gamma_at_numax a2_0 a2_1 a2_2 a3_0 a3_1 a3_2 beta_asym i #Variable names (Beware of units for a2 and a3 coef: coefs have for units [microHz, nanoHz, picoHz]) + 30 0.1 1. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.00 #val_min, put -1 to use the values of the synthese file for a1, a3 + 30 0.1 1. 10.0 0.0 0.0 10.0 0.0 0.0 0.0 90.00 #val_max + 1. 1. 0. 1. 0. 0. 1. 1. 0. 0. 1. #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +100. 120 1 4 +1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +1 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/examples_cfg/obselete/main.cfg.MS.curvepmodes b/Configurations/examples_cfg/obselete/main.cfg.MS.curvepmodes new file mode 100644 index 0000000..a8f9e27 --- /dev/null +++ b/Configurations/examples_cfg/obselete/main.cfg.MS.curvepmodes @@ -0,0 +1,22 @@ + # Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +random 1 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +asymptotic_mm_freeDp_numaxspread_curvepmodes_v2 # Name of the model. asymptotic_mm_freeDp_curvepmodes_v1 is a model iterating on what was learnt from asymptotic_v1, v2, v3 to generate a star with mixed modes +all # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates +nurot_env nurot_ratio Dnu epsilon delta0l_percent beta_p_star nmax_spread DP1 alpha q SNR maxGamma numax_spread Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 +0.1 1 60. 0. 0.5 0.00 5 10000 0.00 0.001 1. 0.5 15 1.25 0.4 0.0 10 0.8 -2.2 0. 0.8 -1.2 0. 1.8 0.1 #val_min +4.0 1 150. 1. 3 0.10 5 10000 0.00 0.001 25. 3. 15 1.75 0.60 0.1 10 1.2 -1.8 0.5 1.2 -0.8 0.5 2.2 0.4 #val_max +1. 0 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 0. 1. 1. 1. 0 1. 1. 1. 1. 1 1 1 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +1000. 100 1 4 +1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +0 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/examples_cfg/obselete/main.cfg.MS.scaled b/Configurations/examples_cfg/obselete/main.cfg.MS.scaled new file mode 100644 index 0000000..c30ee06 --- /dev/null +++ b/Configurations/examples_cfg/obselete/main.cfg.MS.scaled @@ -0,0 +1,22 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +random 4 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +generate_cfg_from_synthese_file_Wscaled_act_asym_a1ovGamma /Users/obenomar/Documents/GitHub/Spectra-Simulator-C/Configurations/infiles/8379927_1111kasoc_synthese.in +NONE # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates + HNR a1ovGamma Gamma_at_numax a3 beta_asym i #Variable names + 30 0.1 1. 0.0 0 0.0 #val_min, put -1 to use the values of the synthese file for a1, a3 + 30 1.0 1. 0.0 0 90.0 #val_max + 1. 1. 0. 1. 1. 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +1000. 120 1 4 +1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +0 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/examples_cfg/obselete/main.cfg.aj_GRANscaled b/Configurations/examples_cfg/obselete/main.cfg.aj_GRANscaled new file mode 100644 index 0000000..1beb573 --- /dev/null +++ b/Configurations/examples_cfg/obselete/main.cfg.aj_GRANscaled @@ -0,0 +1,24 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +random 1 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +generate_cfg_from_synthese_file_Wscaled_aj_GRANscaled /Users/obenomar/Work/dev/Spectra-Simulator-C/Configurations/infiles/16CygA_mixture.in +NONE # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates +Dnu epsilon delta0l_percent HNR a1ovGamma Gamma_at_numax a2 a3 a4 a5 a6 beta_asym i A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 numax_spread H_spread nu_spread #Variable names +70 0.5 -5. 5 0.5 1. 0.1 0.05 0.0 0 0.010 10 0.0 0.8 -2.2 0. 0.8 -1.2 0. 1.8 1 0 5 0.2 #val_min +70 0.5 -5. 20 0.72 1. 0.1 0.05 0.0 0 0.020 10 90 1.2 -1.8 0.5 1.2 -0.8 0.5 2.2 1 0 5 0.2 #val_max +0 0 0 1. 1 0 0 0 0 0. 1 0 1 1. 1. 1. 1. 1 1 1 0 0 0 0 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +300 120 1 1 +0 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +1 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? +1 # Limit Data to mode range? +0 model_MS_Global_aj_HarveyLike # Do .model files? If yes, use the name provided here to define the used model name within the .model file diff --git a/Configurations/main.cfg.freeDP_curvepmodes.v1 b/Configurations/examples_cfg/obselete/main.cfg.freeDP_curvepmodes.v1 similarity index 86% rename from Configurations/main.cfg.freeDP_curvepmodes.v1 rename to Configurations/examples_cfg/obselete/main.cfg.freeDP_curvepmodes.v1 index b583395..f694376 100644 --- a/Configurations/main.cfg.freeDP_curvepmodes.v1 +++ b/Configurations/examples_cfg/obselete/main.cfg.freeDP_curvepmodes.v1 @@ -11,10 +11,10 @@ random 100 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples asymptotic_mm_freeDp_numaxspread_curvepmodes_v1 # Name of the model. asymptotic_mm_freeDp_curvepmodes_v1 is a model iterating on what was learnt from asymptotic_v1, v2, v3 to generate a star with mixed modes all # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates -Teff Dnu epsilon delta0l_percent beta_p_star nmax_spread DP1 alpha q SNR maxGamma numax_spread Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 -4500. 20.00 0.00000 0.5 0.00 5 75 0.00 0.1 2. 0.1 15 1 0.25 0.0 10 0.8 -2.2 0. 0.8 -1.2 0. 1.8 0.1 #val_min -5500. 140.00 1.00000 3 0.10 5 400 1.0 0.5 100. 1.5 15 1.75 0.80 0.1 10 1.2 -1.8 0.5 1.2 -0.8 0.5 2.2 0.4 #val_max -1 1. 1. 1 1 0 1. 1. 1 1 1 0 1. 1. 1. 0. 1. 1. 1. 1. 1 1 1 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Teff Dnu epsilon delta0l_percent beta_p_star nmax_spread DP1 alpha q SNR maxGamma numax_spread Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 Hfactor Wfactor +4500. 20.00 0.00000 0.5 0.00 5 75 0.00 0.1 2. 0.1 15 1 0.25 0.0 10 0.8 -2.2 0. 0.8 -1.2 0. 1.8 0.1 0.0 0.0 #val_min +5500. 140.00 1.00000 3 0.10 5 400 1.0 0.5 100. 1.5 15 1.75 0.80 0.1 10 1.2 -1.8 0.5 1.2 -0.8 0.5 2.2 0.4 1.0 1.0 #val_max +1 1. 1. 1 1 0 1. 1. 1 1 1 0 1. 1. 1. 0. 1. 1. 1. 1. 1 1 1 1 1 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid Tobs Cadence Naverage Nrealisation 1000. 120 1 4 1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt diff --git a/Configurations/examples_cfg/obselete/main.cfg.freeDP_curvepmodes.v2 b/Configurations/examples_cfg/obselete/main.cfg.freeDP_curvepmodes.v2 new file mode 100644 index 0000000..8b7a55c --- /dev/null +++ b/Configurations/examples_cfg/obselete/main.cfg.freeDP_curvepmodes.v2 @@ -0,0 +1,28 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +# WARNING : DO NOT USE a2_core AND a2_l1_env ! Let it to 0. IT IS HERE FOR FUTURE UPGRADE OF THE FUNCTIONS +# BUT IT IS NOT USED IN THE CURRENT VERSION OF THE CODE +# NOTE ON a-coefficients: +# - If you want a2_l2_env = a2_l3_env, then SET A RANGE FOR a2_l2_env and FIX a2_l3_env to -9999 +# - If you want a3_l2_env = a3_l3_env, then SET A RANGE FOR a3_l2_env and FIX a3_l3_env to -9999 +# - If you want a4_l2_env = a4_l3_env, then SET A RANGE FOR a4_l2_env and FIX a4_l3_env to -9999 +random 1 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +asymptotic_mm_freeDp_numaxspread_curvepmodes_v2 # Name of the model. asymptotic_mm_freeDp_curvepmodes_v1 is a model iterating on what was learnt from asymptotic_v1, v2, v3 to generate a star with mixed modes +all # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates +nurot_env nurot_ratio a2_l1_core a2_l1_env a2_l2_env a2_l3_env a3_l2_env a3_l3_env a4_l2_env a4_l3_env a5_l3_env a6_l3_env Dnu epsilon delta0l_percent beta_p_star nmax_spread DP1 alpha q SNR maxGamma numax_spread Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 Hfactor Wfactor +0.1286 0.1 0 0 -0.1 -0.1 -0.05 -0.05 -0.1 -0.1 -0.05 -0.05 30. 0. -3 0.00 5 75 0.00 0.1 900. 0.1 15 1 0.25 0.0 10 0.8 -2.2 0. 0.8 -1.2 0. 1.8 0.1 0.0 0.0 #val_min +0.3858 10. 0 0 0.1 0.1 0.05 0.05 0.1 0.1 0.05 0.05 35. 1. 0.5 0.10 5 400 1.00 0.5 1000. 1.5 15 1.75 0.80 0.1 10 1.2 -1.8 0.5 1.2 -0.8 0.5 2.2 0.4 1.0 1.0 #val_max +1. 1. 0 0 1 1 1 1 1 1 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1 1 0. 1. 1. 1. 0 1. 1. 1. 1. 1 1 1 1 1 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +1000. 120 1 2 +1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +1 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/examples_cfg/obselete/main.cfg.freeDP_curvepmodes.v3 b/Configurations/examples_cfg/obselete/main.cfg.freeDP_curvepmodes.v3 new file mode 100644 index 0000000..a81dd82 --- /dev/null +++ b/Configurations/examples_cfg/obselete/main.cfg.freeDP_curvepmodes.v3 @@ -0,0 +1,28 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +# WARNING : DO NOT USE a2_core AND a2_l1_env ! Let it to 0. IT IS HERE FOR FUTURE UPGRADE OF THE FUNCTIONS +# BUT IT IS NOT USED IN THE CURRENT VERSION OF THE CODE +# NOTE ON a-coefficients: +# - If you want a2_l2_env = a2_l3_env, then SET A RANGE FOR a2_l2_env and FIX a2_l3_env to -9999 +# - If you want a3_l2_env = a3_l3_env, then SET A RANGE FOR a3_l2_env and FIX a3_l3_env to -9999 +# - If you want a4_l2_env = a4_l3_env, then SET A RANGE FOR a4_l2_env and FIX a4_l3_env to -9999 +random 1 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +asymptotic_mm_freeDp_numaxspread_curvepmodes_v3 # Name of the model. asymptotic_mm_freeDp_curvepmodes_v1 is a model iterating on what was learnt from asymptotic_v1, v2, v3 to generate a star with mixed modes +all # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates +nurot_env nurot_core a2_l1_core a2_l1_env a2_l2_env a2_l3_env a3_l2_env a3_l3_env a4_l2_env a4_l3_env a5_l3_env a6_l3_env Dnu epsilon delta0l_percent beta_p_star nmax_spread DP1 alpha q SNR maxGamma numax_spread Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 Hfactor Wfactor +0.1286 0.1286 0 0 -0.1 -0.1 -0.05 -0.05 -0.1 -0.1 -0.05 -0.05 20. 0. -3 0.00 5 75 0.00 0.1 1000. 0.1 15 1 0.25 0.0 10 0.8 -2.2 0. 0.8 -1.2 0. 1.8 0.1 0.0 0.0 #val_min +0.3858 3.858 0 0. 0.1 0.1 0.05 0.05 0.1 0.1 0.05 0.05 30. 1. 0.5 0.10 5 400 1.00 0.5 5000. 1.5 15 1.75 0.80 0.1 10 1.2 -1.8 0.5 1.2 -0.8 0.5 2.2 0.4 1.0 1.0 #val_max +1. 1. 0 0 1 1 1 1 1 1 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1 1 0. 1. 1. 1. 0 1. 1. 1. 1. 1 1 1 1 1 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +100. 120 1 4 +1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +1 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/main.cfg.hgauss b/Configurations/examples_cfg/obselete/main.cfg.hgauss similarity index 100% rename from Configurations/main.cfg.hgauss rename to Configurations/examples_cfg/obselete/main.cfg.hgauss diff --git a/Configurations/examples_cfg/obselete/main.cfg.test.KIC8751420 b/Configurations/examples_cfg/obselete/main.cfg.test.KIC8751420 new file mode 100644 index 0000000..9f493f3 --- /dev/null +++ b/Configurations/examples_cfg/obselete/main.cfg.test.KIC8751420 @@ -0,0 +1,22 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +random 1 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +asymptotic_mm_freeDp_numaxspread_curvepmodes_v2 # Name of the model. asymptotic_mm_freeDp_curvepmodes_v1 is a model iterating on what was learnt from asymptotic_v1, v2, v3 to generate a star with mixed modes +all # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates +nurot_env nurot_ratio Dnu epsilon delta0l_percent beta_p_star nmax_spread DP1 alpha q SNR maxGamma numax_spread Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 +0.102 15.1 34.6 0.44453570 1.75 0.00 0 134.2 0.05 0.20 100. 0.25 15 1 0.25 0.0 0.1 1 -2 0 1 -1 0. 2 0.1 #val_min +0.102 15.1 34.6 0.44453570 1.75 0.00 0 134.2 0.05 0.20 100. 0.25 15 1.75 0.80 0.1 0.1 1 -2 0 1 -1 0. 2 0.1 #val_max +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 0 0 0 0 0 0 0 0 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +1000. 120 1 4 +1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +0 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/examples_cfg/obselete/main.cfg.test.KIC9574283 b/Configurations/examples_cfg/obselete/main.cfg.test.KIC9574283 new file mode 100644 index 0000000..a989f95 --- /dev/null +++ b/Configurations/examples_cfg/obselete/main.cfg.test.KIC9574283 @@ -0,0 +1,22 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +random 1 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +asymptotic_mm_freeDp_numaxspread_curvepmodes_v2 # Name of the model. asymptotic_mm_freeDp_curvepmodes_v1 is a model iterating on what was learnt from asymptotic_v1, v2, v3 to generate a star with mixed modes +all # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates +nurot_env nurot_ratio Dnu epsilon delta0l_percent beta_p_star nmax_spread DP1 alpha q SNR maxGamma numax_spread Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 +0.075 20. 29.78 0.44395779 2. 0.01 0 111 0.00 0.15 100. 0.25 15 1 0.25 0.0 0.1 1 -2 0 1 -1 0. 2 0.1 #val_min +0.075 20. 29.78 0.44395779 2. 0.01 0 111 0.00 0.15 100. 0.25 15 1.75 0.80 0.1 0.1 1 -2 0 1 -1 0. 2 0.1 #val_max +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 0 0 0 0 0 0 0 0 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +1000. 120 1 4 +1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +0 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/main.cfg.v1 b/Configurations/examples_cfg/obselete/main.cfg.v1 similarity index 86% rename from Configurations/main.cfg.v1 rename to Configurations/examples_cfg/obselete/main.cfg.v1 index 2716d9d..4172e6f 100644 --- a/Configurations/main.cfg.v1 +++ b/Configurations/examples_cfg/obselete/main.cfg.v1 @@ -11,10 +11,10 @@ random 100 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples asymptotic_mm_v1 # Name of the model. asymptotic_mm_v1 is a basic model to generate a star with mixed modes all # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates -Teff Dnu epsilon delta0l_percent beta_p_star nmax_spread DP_var_percent alpha q SNR maxGamma Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 -4000. 20. 0.00 0.5 0.00 5 2.5 0.00 0.1 2. 0.1 1 0.25 0.0 10 0.8 -2.2 0. 0.8 -1.2 0. 1.8 0.1 #val_min -5500. 60. 1.00 3.0 0.10 5 2.5 1.0 0.5 100. 1.5 1.75 0.80 0.1 10 1.2 -1.8 0.5 1.2 -0.8 0.5 2.2 0.4 #val_max -1 1. 1. 1 1 0 0. 1 1 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1 1 1 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Teff Dnu epsilon delta0l_percent beta_p_star nmax_spread DP_var_percent alpha q SNR maxGamma Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 Hfactor Wfactor +4000. 20. 0.00 0.5 0.00 5 2.5 0.00 0.1 2. 0.1 1 0.25 0.0 10 0.8 -2.2 0. 0.8 -1.2 0. 1.8 0.1 0.0 0.0 #val_min +5500. 60. 1.00 3.0 0.10 5 2.5 1.0 0.5 100. 1.5 1.75 0.80 0.1 10 1.2 -1.8 0.5 1.2 -0.8 0.5 2.2 0.4 1.0 1.0 #val_max +1 1. 1. 1 1 0 0. 1 1 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1 1 1 1 1 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid Tobs Cadence Naverage Nrealisation 1000. 120 1 4 1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt diff --git a/Configurations/main.cfg.v2 b/Configurations/examples_cfg/obselete/main.cfg.v2 similarity index 85% rename from Configurations/main.cfg.v2 rename to Configurations/examples_cfg/obselete/main.cfg.v2 index dbcd9e1..199a9d4 100644 --- a/Configurations/main.cfg.v2 +++ b/Configurations/examples_cfg/obselete/main.cfg.v2 @@ -11,10 +11,10 @@ random 1 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples asymptotic_mm_v2 # Name of the model. asymptotic_mm_v2 is a basic model to generate a star with mixed modes all # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates -nurot_env nurot_ratio Dnu epsilon delta0l_percent beta_p_star nmax_spread DP_var_percent alpha q SNR maxGamma Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 -0.1286 0.1 20. 0. 0.5 0.000 1 2.5 0. 0.1 2 0.1 1 0.25 0.0 10 0.8 -2.2 0. 0.8 -1.2 0. 1.8 0.1 #val_min -0.3858 10. 140. 1. 3 0.010 1 2.5 1. 0.5 100. 1.5 1.75 0.80 0.1 10 1.2 -1.8 0.5 1.2 -0.8 0.5 2.2 0.4 #val_max -1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1 1 1 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +nurot_env nurot_ratio Dnu epsilon delta0l_percent beta_p_star nmax_spread DP_var_percent alpha q SNR maxGamma Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 Hfactor Wfactor +0.1286 0.1 20. 0. 0.5 0.000 1 2.5 0. 0.1 2 0.1 1 0.25 0.0 10 0.8 -2.2 0. 0.8 -1.2 0. 1.8 0.1 0.0 0.0 #val_min +0.3858 10. 140. 1. 3 0.010 1 2.5 1. 0.5 100. 1.5 1.75 0.80 0.1 10 1.2 -1.8 0.5 1.2 -0.8 0.5 2.2 0.4 1.0 1.0 #val_max +1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1 1 1 1 1 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid Tobs Cadence Naverage Nrealisation 1000. 120 1 4 1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt diff --git a/Configurations/main.cfg.v3 b/Configurations/examples_cfg/obselete/main.cfg.v3 similarity index 84% rename from Configurations/main.cfg.v3 rename to Configurations/examples_cfg/obselete/main.cfg.v3 index a15eebd..e14a39f 100644 --- a/Configurations/main.cfg.v3 +++ b/Configurations/examples_cfg/obselete/main.cfg.v3 @@ -11,12 +11,12 @@ random 1 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples asymptotic_mm_v3 # Name of the model. asymptotic_mm_v3 is a basic model to generate a star with mixed modes all # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates -nurot_env nurot_core Dnu epsilon delta0l_percent beta_p_star nmax_spread DP_var_percent alpha q SNR maxGamma Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 -0.1286 0.1286 20. 0. 0.5 0.000 5 2.5 0. 0.1 2 0.1 1 0.25 0.0 10 0.8 -2.2 0. 0.8 -1.2 0. 1.8 0.1 #val_min -0.3858 3.858 140. 1. 3 0.010 5 2.5 1.0 0.5 100. 1.5 1.75 0.80 0.1 10 1.2 -1.8 0.5 1.2 -0.8 0.5 2.2 0.4 #val_max -1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1 1 1 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +nurot_env nurot_core Dnu epsilon delta0l_percent beta_p_star nmax_spread DP_var_percent alpha q SNR maxGamma Vl1 Vl2 Vl3 H0_spread A_Pgran B_Pgran C_Pgran A_taugran B_taugran C_taugran P N0 Hfactor Wfactor +0.1286 0.1286 20. 0. 0.5 0.000 5 2.5 0. 0.1 2 0.1 1 0.25 0.0 10 0.8 -2.2 0. 0.8 -1.2 0. 1.8 0.1 0.0 0.0 #val_min +0.3858 3.858 140. 1. 3 0.010 5 2.5 1.0 0.5 100. 1.5 1.75 0.80 0.1 10 1.2 -1.8 0.5 1.2 -0.8 0.5 2.2 0.4 1.0 1.0 #val_max +1. 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1 1 1 1 1 1 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid Tobs Cadence Naverage Nrealisation 1000. 120 1 4 1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt 1 # Do you want plots ? 0 = No, 1 = Yes -1 # Do you list values of the input model in the output ascii file? \ No newline at end of file +1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/examples_cfg/obselete/main.generate_cfg_asymptotic_act_asym_Hgauss b/Configurations/examples_cfg/obselete/main.generate_cfg_asymptotic_act_asym_Hgauss new file mode 100755 index 0000000..535fdce --- /dev/null +++ b/Configurations/examples_cfg/obselete/main.generate_cfg_asymptotic_act_asym_Hgauss @@ -0,0 +1,22 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +grid 10 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +generate_cfg_asymptotic_act_asym_Hgauss # Name of the model +NONE # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates +numax Dnu epsilon D0 maxH Gamma lmax Nmax a1 a3 b alfa beta i Hnoise1 tau1 p1 Hnoise2 tau2 p2 N0 +3000. 100. 0. 2.00 1. 1. 2. 10. 0.2 0.03 0. 1 0 0. 0.01 10 2 0.001 30 2 0.02 #val_min +3000. 100. 0. 2.00 1. 1. 2. 10. 1. 0.03 0. 1 0 90. 0.01 10 2 0.001 30 2 0.02 #val_max + 0. 0. 0. 0. 0. 0. 0. 0. 0. 0 0 0 0 1 0 0 0 0 0 0 0 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +100. 120 1 1 +1 # It is erase_old_files +1 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/examples_cfg/obselete/main.generate_cfg_from_refstar_HWscaled b/Configurations/examples_cfg/obselete/main.generate_cfg_from_refstar_HWscaled new file mode 100755 index 0000000..6e6ebc0 --- /dev/null +++ b/Configurations/examples_cfg/obselete/main.generate_cfg_from_refstar_HWscaled @@ -0,0 +1,22 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +grid 10 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +generate_cfg_from_refstar_HWscaled # Name of the model +NONE # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates +Model_i maxHNR Gamma_maxHNR a1 i Hnoise1 tau1 p1 Hnoise2 tau2 p2 N0 +0. 10. 1. 0.2 0. 0.01 10 2 0.001 30 2 1. #val_min +2. 100. 1. 1. 90. 0.01 10 2 0.001 30 2 1. #val_max +1. 10. 0. 0. 30. 0. 0. 0. 0. 0 0 0 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +100. 120 1 1 +1 # It is erase_old_files +1 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/infiles/12069424.in b/Configurations/infiles/12069424.in new file mode 100644 index 0000000..085128b --- /dev/null +++ b/Configurations/infiles/12069424.in @@ -0,0 +1,92 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) +-1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination + 0 1287.7378 0.43002206 0.81382075 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1391.6472 0.57919905 0.66843567 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1494.9822 1.0561653 0.76340052 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1598.7040 1.2720441 0.94761560 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1700.9117 1.8095614 1.0351044 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1802.3264 3.1660368 0.98478045 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1904.5894 4.6474355 0.99649416 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2007.5698 6.7184649 0.99950613 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2110.8952 8.7121034 1.0788852 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2214.2624 7.6455132 1.2322003 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2317.2959 4.8872829 1.5354940 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2420.9247 2.6154045 1.9713043 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2524.9409 1.0578662 2.9706241 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2629.3219 0.45623723 3.6817983 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2734.3085 0.22393687 4.9109655 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2839.1342 0.084068007 6.3972608 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2944.6692 0.041473324 7.1327241 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 3048.5000 0.010000000 10.0000000 0.00000000 0.0000000000 0.00000 0 0 0.00000 0.0000000 + 1 1334.1481 0.62326858 0.74809166 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1437.7227 0.83951082 0.71105648 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1541.9739 1.5326199 0.84823175 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1644.9908 1.8440937 0.98725592 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1747.1738 2.6226760 1.0124610 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1849.0120 4.5863581 0.99053311 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1952.0236 6.7292735 0.99794255 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2055.4881 9.7313251 1.0361733 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2159.1390 12.627343 1.1507398 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2262.5176 11.072803 1.3743812 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2366.1802 7.0797880 1.7414257 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2470.2896 3.7891896 2.4481327 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2574.7077 1.5327583 3.3121289 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2679.4912 0.66107875 4.2705002 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2784.2952 0.32461789 5.6231937 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2890.0152 0.12177273 6.7655613 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2995.1098 0.060119340 7.4562630 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1279.5453 0.28319571 0.82705926 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1383.9922 0.38247189 0.67992343 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1487.7844 0.69652430 0.75737280 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1591.2323 0.83868864 0.93465404 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1694.0395 1.1919224 1.0292791 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1795.8284 2.0867683 0.98810557 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1898.3264 3.0624058 0.99586980 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2001.7400 4.4289445 0.99938307 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2105.3332 5.7391074 1.0744751 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2208.9378 5.0402307 1.2243813 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2312.4974 3.2178249 1.5215235 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2416.3217 1.7239335 1.9520526 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2520.5174 0.69726538 2.9286039 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2624.8247 0.30092180 3.6520736 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2730.0274 0.14755212 4.8608444 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2836.0081 0.055328129 6.3556133 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2942.1468 0.027332655 7.1162705 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 3046.5000 0.00500000 10.0000000 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 1427.44580 0.09032 0.26850 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 1530.34899 0.14734 0.31533 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 1632.59738 0.11641 0.75956 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 1735.49943 0.17580 0.96066 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 1838.42350 0.30536 0.93168 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 1941.60645 0.45811 0.87509 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2045.80496 0.61920 0.96463 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2149.91448 1.00981 0.83507 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2253.57221 0.84437 1.02475 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2357.48682 0.51441 1.20489 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2461.82262 0.22659 1.81916 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2566.53772 0.09991 2.60490 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2670.15963 0.04100 3.89962 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2774.16196 0.02104 5.11377 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +3.9332665 1.7627664 2.2003473 +0.085692058 \ No newline at end of file diff --git a/Configurations/infiles/6508366.in b/Configurations/infiles/6508366.in new file mode 100644 index 0000000..eb6d6ca --- /dev/null +++ b/Configurations/infiles/6508366.in @@ -0,0 +1,77 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination +0 574.211213 0.956106 2.331931 0 0 0. -6.7884935 85.692332 +0 623.707598 1.304467 3.136829 0 0 0. -6.7884935 85.692332 +0 672.116690 1.660000 3.965965 0 0 0. -6.7884935 85.692332 +0 723.126931 2.549866 3.106037 0 0 0. -6.7884935 85.692332 +0 775.434589 2.594849 3.732892 0 0 0. -6.7884935 85.692332 +0 827.370343 3.431094 3.576065 0 0 0. -6.7884935 85.692332 +0 878.288164 3.580425 4.374449 0 0 0. -6.7884935 85.692332 +0 929.729778 3.967231 4.926549 0 0 0. -6.7884935 85.692332 +0 980.017032 3.303785 5.336770 0 0 0. -6.7884935 85.692332 +0 1030.741093 3.644398 4.656605 0 0 0. -6.7884935 85.692332 +0 1083.550904 2.646549 4.684982 0 0 0. -6.7884935 85.692332 +0 1136.079425 1.840297 5.607985 0 0 0. -6.7884935 85.692332 +0 1189.281388 1.473601 5.698278 0 0 0. -6.7884935 85.692332 +0 1241.864266 0.888522 7.416039 0 0 0. -6.7884935 85.692332 +0 1293.541001 0.679662 6.257754 0 0 0. -6.7884935 85.692332 +0 1346.927289 0.289377 9.366288 0 0 0. -6.7884935 85.692332 +0 1401.538352 0.202276 12.039031 0 0 0. -6.7884935 85.692332 +1 545.586683 1.406167 1.831449 2.2546976 0 0. -6.7884935 85.692332 +1 596.197152 1.918756 2.687027 2.2546976 0 0. -6.7884935 85.692332 +1 645.891316 2.444420 3.587141 2.2546976 0 0. -6.7884935 85.692332 +1 694.425432 3.753619 3.609813 2.2546976 0 0. -6.7884935 85.692332 +1 745.320928 3.816761 3.382239 2.2546976 0 0. -6.7884935 85.692332 +1 797.104232 5.053807 3.684613 2.2546976 0 0. -6.7884935 85.692332 +1 849.344204 5.276149 3.933797 2.2546976 0 0. -6.7884935 85.692332 +1 900.657619 5.842021 4.628400 2.2546976 0 0. -6.7884935 85.692332 +1 951.747228 4.864561 5.111761 2.2546976 0 0. -6.7884935 85.692332 +1 1002.910344 5.357788 5.032774 2.2546976 0 0. -6.7884935 85.692332 +1 1054.609802 3.897716 4.677585 2.2546976 0 0. -6.7884935 85.692332 +1 1107.290736 2.703538 5.103746 2.2546976 0 0. -6.7884935 85.692332 +1 1159.993992 2.164628 5.660251 2.2546976 0 0. -6.7884935 85.692332 +1 1213.294032 1.307363 6.521712 2.2546976 0 0. -6.7884935 85.692332 +1 1266.060265 0.998746 6.916267 2.2546976 0 0. -6.7884935 85.692332 +1 1319.037062 0.425742 7.773213 2.2546976 0 0. -6.7884935 85.692332 +1 1370.914134 0.298121 10.569111 2.2546976 0 0. -6.7884935 85.692332 +2 568.368222 0.843220 2.232350 2.2546976 0 0. -6.7884935 85.692332 +2 619.575450 1.148525 3.071725 2.2546976 0 0. -6.7884935 85.692332 +2 669.902645 1.459834 3.929592 2.2546976 0 0. -6.7884935 85.692332 +2 719.850002 2.242063 3.167777 2.2546976 0 0. -6.7884935 85.692332 +2 771.514308 2.285047 3.686175 2.2546976 0 0. -6.7884935 85.692332 +2 824.129228 3.017225 3.586359 2.2546976 0 0. -6.7884935 85.692332 +2 874.658866 3.157416 4.318554 2.2546976 0 0. -6.7884935 85.692332 +2 924.777117 3.487772 4.875008 2.2546976 0 0. -6.7884935 85.692332 +2 976.552646 2.908101 5.308319 2.2546976 0 0. -6.7884935 85.692332 +2 1029.145539 3.203855 4.677903 2.2546976 0 0. -6.7884935 85.692332 +2 1081.581518 2.329249 4.681990 2.2546976 0 0. -6.7884935 85.692332 +2 1133.568626 1.617899 5.564722 2.2546976 0 0. -6.7884935 85.692332 +2 1186.425599 1.293691 5.693086 2.2546976 0 0. -6.7884935 85.692332 +2 1238.874796 0.781059 7.313652 2.2546976 0 0. -6.7884935 85.692332 +2 1290.866174 0.597174 6.332562 2.2546976 0 0. -6.7884935 85.692332 +2 1344.292918 0.254620 9.186833 2.2546976 0 0. -6.7884935 85.692332 +2 1398.460131 0.178510 11.885616 2.2546976 0 0. -6.7884935 85.692332 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 + 781.614 79.4671 4 + 11.0012 3.64092 2.34315 +0.861442 \ No newline at end of file diff --git a/Configurations/infiles/6603624.in b/Configurations/infiles/6603624.in new file mode 100644 index 0000000..1334c18 --- /dev/null +++ b/Configurations/infiles/6603624.in @@ -0,0 +1,68 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination +0 1489.1728 0.283973 1.698628 0.384981788 0 0. -20.490860 6.1181442 +0 1599.8405 0.657434 1.011868 0.384981788 0 0. -20.490860 6.1181442 +0 1710.0378 1.090890 0.824111 0.384981788 0 0. -20.490860 6.1181442 +0 1819.6997 1.552000 0.731073 0.384981788 0 0. -20.490860 6.1181442 +0 1928.3631 3.232826 0.743003 0.384981788 0 0. -20.490860 6.1181442 +0 2037.0401 5.463944 0.719518 0.384981788 0 0. -20.490860 6.1181442 +0 2146.7698 10.231499 0.655283 0.384981788 0 0. -20.490860 6.1181442 +0 2256.9944 14.309373 0.663758 0.384981788 0 0. -20.490860 6.1181442 +0 2367.0763 16.345826 0.705399 0.384981788 0 0. -20.490860 6.1181442 +0 2477.0440 10.391128 0.882568 0.384981788 0 0. -20.490860 6.1181442 +0 2587.5176 5.450967 1.228132 0.384981788 0 0. -20.490860 6.1181442 +0 2698.1700 1.654923 1.966378 0.384981788 0 0. -20.490860 6.1181442 +0 2808.8019 0.544198 3.935861 0.384981788 0 0. -20.490860 6.1181442 +0 2919.9099 0.339245 3.837100 0.384981788 0 0. -20.490860 6.1181442 +1 1539.2508 0.402166 1.391283 0.384981788 0 0. -20.490860 6.1181442 +1 1649.7904 0.928502 0.931917 0.384981788 0 0. -20.490860 6.1181442 +1 1760.5916 1.542122 0.780052 0.384981788 0 0. -20.490860 6.1181442 +1 1869.7967 2.195273 0.736728 0.384981788 0 0. -20.490860 6.1181442 +1 1978.7699 4.569324 0.731759 0.384981788 0 0. -20.490860 6.1181442 +1 2088.3084 7.730321 0.689784 0.384981788 0 0. -20.490860 6.1181442 +1 2198.4584 14.460831 0.659344 0.384981788 0 0. -20.490860 6.1181442 +1 2308.9560 20.221700 0.683669 0.384981788 0 0. -20.490860 6.1181442 +1 2419.3970 23.103519 0.789729 0.384981788 0 0. -20.490860 6.1181442 +1 2529.6530 14.697020 1.047671 0.384981788 0 0. -20.490860 6.1181442 +1 2640.3670 7.704957 1.581746 0.384981788 0 0. -20.490860 6.1181442 +1 2751.5646 2.338927 2.925900 0.384981788 0 0. -20.490860 6.1181442 +1 2862.7377 0.769318 3.913781 0.384981788 0 0. -20.490860 6.1181442 +1 2974.7850 0.478964 3.760618 0.384981788 0 0. -20.490860 6.1181442 +2 1483.2709 0.247833 1.733834 0.384981788 0 0. -20.490860 6.1181442 +2 1592.8776 0.574064 1.058760 0.384981788 0 0. -20.490860 6.1181442 +2 1702.8571 0.952021 0.833170 0.384981788 0 0. -20.490860 6.1181442 +2 1812.6968 1.357117 0.736845 0.384981788 0 0. -20.490860 6.1181442 +2 1921.9601 2.820773 0.742701 0.384981788 0 0. -20.490860 6.1181442 +2 2031.0097 4.776839 0.720986 0.384981788 0 0. -20.490860 6.1181442 +2 2141.0739 8.920861 0.658647 0.384981788 0 0. -20.490860 6.1181442 +2 2251.6111 12.470984 0.663384 0.384981788 0 0. -20.490860 6.1181442 +2 2362.0114 14.267377 0.703552 0.384981788 0 0. -20.490860 6.1181442 +2 2472.3634 9.076242 0.875032 0.384981788 0 0. -20.490860 6.1181442 +2 2583.0479 4.754339 1.213821 0.384981788 0 0. -20.490860 6.1181442 +2 2693.8987 1.444444 1.937628 0.384981788 0 0. -20.490860 6.1181442 +2 2806.1057 0.474423 3.888580 0.384981788 0 0. -20.490860 6.1181442 +2 2918.5352 0.295067 3.835300 0.384981788 0 0. -20.490860 6.1181442 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +225.85000 11.058000 4.0000000 +3.3170645 1.4251575 2.1641859 +0.73759129 \ No newline at end of file diff --git a/Configurations/infiles/8006161.in b/Configurations/infiles/8006161.in new file mode 100644 index 0000000..d9d7e37 --- /dev/null +++ b/Configurations/infiles/8006161.in @@ -0,0 +1,68 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) -14.979842 + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination +0 2476.471576 0.365960 0.458251 0.573077885 0 0. 63.300380 36.697097 +0 2626.300759 0.481088 0.628713 0.573077885 0 0. 63.300380 36.697097 +0 2774.762726 0.591634 0.558896 0.573077885 0 0. 63.300380 36.697097 +0 2922.850751 1.199748 0.635218 0.573077885 0 0. 63.300380 36.697097 +0 3071.160114 1.310842 0.747353 0.573077885 0 0. 63.300380 36.697097 +0 3220.114571 1.646194 0.835082 0.573077885 0 0. 63.300380 36.697097 +0 3369.571707 1.968325 0.931728 0.573077885 0 0. 63.300380 36.697097 +0 3518.589809 2.132052 1.063449 0.573077885 0 0. 63.300380 36.697097 +0 3667.829881 1.799756 1.373817 0.573077885 0 0. 63.300380 36.697097 +0 3817.562845 1.028350 1.969723 0.573077885 0 0. 63.300380 36.697097 +0 3967.224246 0.599356 2.709537 0.573077885 0 0. 63.300380 36.697097 +0 4117.965392 0.289545 3.412587 0.573077885 0 0. 63.300380 36.697097 +0 4268.707402 0.195861 5.089781 0.573077885 0 0. 63.300380 36.697097 +0 4419.532330 0.105445 5.297795 0.573077885 0 0. 63.300380 36.697097 +1 2397.186146 0.601122 0.366861 0.573077885 0 0. 63.300380 36.697097 +1 2547.542517 0.791080 0.541169 0.573077885 0 0. 63.300380 36.697097 +1 2696.879171 0.974615 0.595549 0.573077885 0 0. 63.300380 36.697097 +1 2844.853425 1.975448 0.595614 0.573077885 0 0. 63.300380 36.697097 +1 2993.218606 2.157601 0.688732 0.573077885 0 0. 63.300380 36.697097 +1 3142.145322 2.709521 0.788912 0.573077885 0 0. 63.300380 36.697097 +1 3291.384462 3.241066 0.881815 0.573077885 0 0. 63.300380 36.697097 +1 3440.785361 3.510354 0.994997 0.573077885 0 0. 63.300380 36.697097 +1 3590.377766 2.960372 1.213244 0.573077885 0 0. 63.300380 36.697097 +1 3739.745510 1.692606 1.660163 0.573077885 0 0. 63.300380 36.697097 +1 3889.347778 0.986100 2.324933 0.573077885 0 0. 63.300380 36.697097 +1 4039.785596 0.476408 3.052147 0.573077885 0 0. 63.300380 36.697097 +1 4190.532886 0.322377 4.226253 0.573077885 0 0. 63.300380 36.697097 +1 4341.295879 0.173549 5.165412 0.573077885 0 0. 63.300380 36.697097 +2 2466.436631 0.297174 0.446548 0.573077885 0 0. 63.300380 36.697097 +2 2614.196909 0.390541 0.615395 0.573077885 0 0. 63.300380 36.697097 +2 2762.955429 0.481738 0.564560 0.573077885 0 0. 63.300380 36.697097 +2 2911.813986 0.977390 0.629597 0.573077885 0 0. 63.300380 36.697097 +2 3060.573450 1.067174 0.739459 0.573077885 0 0. 63.300380 36.697097 +2 3209.733447 1.340041 0.828938 0.573077885 0 0. 63.300380 36.697097 +2 3359.322825 1.604201 0.925049 0.573077885 0 0. 63.300380 36.697097 +2 3508.972873 1.736297 1.055016 0.573077885 0 0. 63.300380 36.697097 +2 3658.457511 1.465576 1.354141 0.573077885 0 0. 63.300380 36.697097 +2 3808.335825 0.836356 1.933307 0.573077885 0 0. 63.300380 36.697097 +2 3958.145721 0.487725 2.664830 0.573077885 0 0. 63.300380 36.697097 +2 4108.850755 0.235440 3.370974 0.573077885 0 0. 63.300380 36.697097 +2 4259.774477 0.159168 4.990325 0.573077885 0 0. 63.300380 36.697097 +2 4410.023930 0.085750 5.274212 0.573077885 0 0. 63.300380 36.697097 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +21.276500 42.697400 4.0000000 +2.0234308 1.1234829 2.3085127 +0.18063151 \ No newline at end of file diff --git a/Configurations/infiles/8379927.in b/Configurations/infiles/8379927.in new file mode 100644 index 0000000..9e23d95 --- /dev/null +++ b/Configurations/infiles/8379927.in @@ -0,0 +1,77 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination +0 1728.01169 0.10540 1.27502 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 1847.38684 0.17238 1.16395 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 1967.94988 0.28711 1.33716 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2087.86222 0.39026 1.75644 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2206.66104 0.56023 1.85124 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2324.43943 0.83228 1.81334 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2443.13208 1.11118 1.88539 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2563.57580 1.37510 2.03115 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2683.95554 1.48699 2.22804 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2804.48468 1.30823 2.43151 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2924.42603 0.94932 2.88386 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 3044.80576 0.60403 3.62174 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 3165.45271 0.34807 4.57470 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 3286.65229 0.20147 5.79057 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 3408.90504 0.12262 6.52212 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 3530.65228 0.06776 7.45899 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 3651.09760 0.04346 9.05888 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 1783.57685 0.15621 1.22710 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 1903.81554 0.25577 1.24571 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2023.89005 0.42575 1.53296 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2143.26582 0.57872 1.80157 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2261.39510 0.83044 1.83392 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2380.00253 1.23616 1.84794 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2499.58610 1.64774 1.95408 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2620.13231 2.03847 2.12421 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2740.65744 2.20440 2.32481 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2861.25712 1.94047 2.64560 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2981.50840 1.40835 3.23554 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 3102.26455 0.89583 4.07926 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 3223.35515 0.51552 5.15126 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 3345.22157 0.29867 6.14181 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 3466.89336 0.18184 6.96585 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 3588.91851 0.10049 8.24262 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 3711.27774 0.06442 9.85075 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 1712.71093 0.06908 1.28751 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 1834.49740 0.11310 1.17766 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 1955.83255 0.18829 1.31905 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2076.28531 0.25579 1.71642 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2195.17430 0.36737 1.84292 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2313.17137 0.54562 1.81706 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2432.55898 0.72835 1.87870 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2552.44629 0.90205 2.01831 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2673.28936 0.97488 2.21058 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2793.68385 0.85751 2.41324 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2914.25361 0.62235 2.84543 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 3034.50763 0.39610 3.55907 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 3155.41621 0.22812 4.49653 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 3277.02203 0.13209 5.69162 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 3398.38215 0.08039 6.46064 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 3519.49017 0.04443 7.37313 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 3641.37332 0.02849 8.92486 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +-1.00000 -1.00000 -1.00000 +1.03121 1.34514 2.08329 +0.13447 \ No newline at end of file diff --git a/Configurations/infiles/9139151.in b/Configurations/infiles/9139151.in new file mode 100644 index 0000000..1ab77d2 --- /dev/null +++ b/Configurations/infiles/9139151.in @@ -0,0 +1,65 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) -14.979842 + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination +0 1804.413362 0.293786 0.800381 1.006704871 0 0. -8.2536785 71.424193 +0 1922.136431 0.748746 1.151596 1.006704871 0 0. -8.2536785 71.424193 +0 2038.802023 0.821746 1.306285 1.006704871 0 0. -8.2536785 71.424193 +0 2154.390082 1.131956 1.625482 1.006704871 0 0. -8.2536785 71.424193 +0 2269.370471 1.233440 1.960192 1.006704871 0 0. -8.2536785 71.424193 +0 2385.768961 2.064410 1.910053 1.006704871 0 0. -8.2536785 71.424193 +0 2502.807041 2.637234 1.885688 1.006704871 0 0. -8.2536785 71.424193 +0 2620.221839 2.991658 1.930596 1.006704871 0 0. -8.2536785 71.424193 +0 2737.485949 2.798988 1.983772 1.006704871 0 0. -8.2536785 71.424193 +0 2854.895018 1.804130 2.663070 1.006704871 0 0. -8.2536785 71.424193 +0 2972.517880 1.078238 3.067332 1.006704871 0 0. -8.2536785 71.424193 +0 3089.807611 0.614841 3.550705 1.006704871 0 0. -8.2536785 71.424193 +0 3207.309069 0.324916 5.224397 1.006704871 0 0. -8.2536785 71.424193 +1 1858.819705 0.445481 0.965483 1.006704871 0 0. -8.2536785 71.424193 +1 1976.125513 1.137354 1.225413 1.006704871 0 0. -8.2536785 71.424193 +1 2092.760441 1.246106 1.454579 1.006704871 0 0. -8.2536785 71.424193 +1 2208.054041 1.716132 1.781950 1.006704871 0 0. -8.2536785 71.424193 +1 2323.768667 1.871204 1.938450 1.006704871 0 0. -8.2536785 71.424193 +1 2440.384775 3.131683 1.899784 1.006704871 0 0. -8.2536785 71.424193 +1 2557.993804 4.000072 1.907627 1.006704871 0 0. -8.2536785 71.424193 +1 2675.600448 4.532012 1.956477 1.006704871 0 0. -8.2536785 71.424193 +1 2792.866173 4.242880 2.304867 1.006704871 0 0. -8.2536785 71.424193 +1 2909.980857 2.732452 2.857433 1.006704871 0 0. -8.2536785 71.424193 +1 3028.159374 1.635763 3.308448 1.006704871 0 0. -8.2536785 71.424193 +1 3146.536964 0.931742 4.381740 1.006704871 0 0. -8.2536785 71.424193 +1 3264.922277 0.492601 6.025757 1.006704871 0 0. -8.2536785 71.424193 +2 1793.030999 0.257233 0.762409 1.006704871 0 0. -8.2536785 71.424193 +2 1910.947080 0.658845 1.121290 1.006704871 0 0. -8.2536785 71.424193 +2 2028.303234 0.721535 1.293658 1.006704871 0 0. -8.2536785 71.424193 +2 2142.854093 0.993320 1.593640 1.006704871 0 0. -8.2536785 71.424193 +2 2258.289267 1.083164 1.927658 1.006704871 0 0. -8.2536785 71.424193 +2 2375.000638 1.811544 1.915600 1.006704871 0 0. -8.2536785 71.424193 +2 2492.466256 2.314336 1.887793 1.006704871 0 0. -8.2536785 71.424193 +2 2610.112665 2.626108 1.926733 1.006704871 0 0. -8.2536785 71.424193 +2 2727.994670 2.458832 1.979205 1.006704871 0 0. -8.2536785 71.424193 +2 2844.678346 1.581038 2.604535 1.006704871 0 0. -8.2536785 71.424193 +2 2962.900589 0.947986 3.033783 1.006704871 0 0. -8.2536785 71.424193 +2 3081.547782 0.539481 3.518343 1.006704871 0 0. -8.2536785 71.424193 +2 3199.764286 0.285014 5.120099 1.006704871 0 0. -8.2536785 71.424193 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +73.258300 57.280100 4.0000000 +1.7187191 1.3689736 1.9988366 +0.84651896 \ No newline at end of file diff --git a/Configurations/infiles/9139163.in b/Configurations/infiles/9139163.in new file mode 100644 index 0000000..d073c23 --- /dev/null +++ b/Configurations/infiles/9139163.in @@ -0,0 +1,86 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) -14.979842 + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination +0 985.845981 0.473371 1.048264 0 0. 3.5285147 -14.979842 24.673869 +0 1065.001980 0.589323 2.382962 0 0. 3.5285147 -14.979842 24.673869 +0 1143.125391 0.785571 1.810511 0 0. 3.5285147 -14.979842 24.673869 +0 1221.435610 0.811306 3.712531 0 0. 3.5285147 -14.979842 24.673869 +0 1301.879049 1.191346 2.789458 0 0. 3.5285147 -14.979842 24.673869 +0 1383.386958 1.272304 3.399297 0 0. 3.5285147 -14.979842 24.673869 +0 1464.743333 1.585765 4.242145 0 0. 3.5285147 -14.979842 24.673869 +0 1544.839515 1.956003 4.240859 0 0. 3.5285147 -14.979842 24.673869 +0 1624.515817 1.880729 4.789467 0 0. 3.5285147 -14.979842 24.673869 +0 1704.394261 1.735299 5.434701 0 0. 3.5285147 -14.979842 24.673869 +0 1785.810713 1.852104 4.439329 0 0. 3.5285147 -14.979842 24.673869 +0 1867.683125 1.264250 5.460151 0 0. 3.5285147 -14.979842 24.673869 +0 1949.770903 1.151659 5.047525 0 0. 3.5285147 -14.979842 24.673869 +0 2033.225780 0.705964 6.822597 0 0. 3.5285147 -14.979842 24.673869 +0 2115.173056 0.627376 7.128204 0 0. 3.5285147 -14.979842 24.673869 +0 2195.985462 0.386741 8.156124 0 0. 3.5285147 -14.979842 24.673869 +0 2278.037767 0.325197 7.057531 0 0. 3.5285147 -14.979842 24.673869 +0 2360.613096 0.135285 11.871817 0 0. 3.5285147 -14.979842 24.673869 +0 2444.786602 0.156932 7.883257 0 0. 3.5285147 -14.979842 24.673869 +0 2529.527136 0.074993 5.396720 0 0. 3.5285147 -14.979842 24.673869 +1 943.058908 0.713249 0.674832 0 0. 3.5285147 -14.979842 24.673869 +1 1023.243576 0.887600 1.692060 0 0. 3.5285147 -14.979842 24.673869 +1 1102.129194 1.184039 2.123041 0 0. 3.5285147 -14.979842 24.673869 +1 1179.779597 1.221563 2.720273 0 0. 3.5285147 -14.979842 24.673869 +1 1258.936892 1.793254 3.296833 0 0. 3.5285147 -14.979842 24.673869 +1 1340.041372 1.916902 3.085264 0 0. 3.5285147 -14.979842 24.673869 +1 1421.751308 2.386536 3.808864 0 0. 3.5285147 -14.979842 24.673869 +1 1502.312476 2.945531 4.248602 0 0. 3.5285147 -14.979842 24.673869 +1 1582.310325 2.831263 4.501474 0 0. 3.5285147 -14.979842 24.673869 +1 1662.021207 2.614427 5.103203 0 0. 3.5285147 -14.979842 24.673869 +1 1742.806974 2.788585 4.978454 0 0. 3.5285147 -14.979842 24.673869 +1 1824.712122 1.905085 4.933141 0 0. 3.5285147 -14.979842 24.673869 +1 1906.955424 1.733524 5.266549 0 0. 3.5285147 -14.979842 24.673869 +1 1989.366649 1.062658 5.895737 0 0. 3.5285147 -14.979842 24.673869 +1 2072.065475 0.945171 6.985997 0 0. 3.5285147 -14.979842 24.673869 +1 2153.577138 0.582381 7.637161 0 0. 3.5285147 -14.979842 24.673869 +1 2235.721577 0.489276 7.657167 0 0. 3.5285147 -14.979842 24.673869 +1 2317.948342 0.203712 9.398459 0 0. 3.5285147 -14.979842 24.673869 +1 2401.321404 0.236614 9.989759 0 0. 3.5285147 -14.979842 24.673869 +1 2486.341937 0.112851 6.661392 0 0. 3.5285147 -14.979842 24.673869 +2 982.225273 0.390249 1.002816 0 0. 3.5285147 -14.979842 24.673869 +2 1059.999267 0.484150 2.308592 0 0. 3.5285147 -14.979842 24.673869 +2 1138.347365 0.646415 1.850887 0 0. 3.5285147 -14.979842 24.673869 +2 1216.569270 0.666755 3.597650 0 0. 3.5285147 -14.979842 24.673869 +2 1296.513875 0.980420 2.854550 0 0. 3.5285147 -14.979842 24.673869 +2 1377.505109 1.044810 3.357048 0 0. 3.5285147 -14.979842 24.673869 +2 1458.856779 1.300855 4.180947 0 0. 3.5285147 -14.979842 24.673869 +2 1539.380419 1.608258 4.243859 0 0. 3.5285147 -14.979842 24.673869 +2 1619.370616 1.544541 4.756687 0 0. 3.5285147 -14.979842 24.673869 +2 1698.689470 1.426761 5.391190 0 0. 3.5285147 -14.979842 24.673869 +2 1780.175352 1.523019 4.511033 0 0. 3.5285147 -14.979842 24.673869 +2 1862.031760 1.040108 5.390723 0 0. 3.5285147 -14.979842 24.673869 +2 1943.911272 0.946712 5.075068 0 0. 3.5285147 -14.979842 24.673869 +2 2025.559052 0.579905 6.656846 0 0. 3.5285147 -14.979842 24.673869 +2 2107.758451 0.515354 7.103963 0 0. 3.5285147 -14.979842 24.673869 +2 2189.362564 0.317663 8.069435 0 0. 3.5285147 -14.979842 24.673869 +2 2270.855992 0.266804 7.164684 0 0. 3.5285147 -14.979842 24.673869 +2 2353.565618 0.111213 11.449422 0 0. 3.5285147 -14.979842 24.673869 +2 2436.889965 0.129053 8.248049 0 0. 3.5285147 -14.979842 24.673869 +2 2520.285051 0.061767 5.630567 0 0. 3.5285147 -14.979842 24.673869 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +41.225300 47.562700 4.0000000 +3.7505100 2.0680072 2.1733630 +0.37810383 \ No newline at end of file diff --git a/Configurations/infiles/obselete/100002741_Madjp_data_enhanced.in b/Configurations/infiles/obselete/100002741_Madjp_data_enhanced.in new file mode 100644 index 0000000..9e450ae --- /dev/null +++ b/Configurations/infiles/obselete/100002741_Madjp_data_enhanced.in @@ -0,0 +1,65 @@ +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination +0 1391.62917 1.11740 0.26850 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +0 1494.98697 1.82462 0.31533 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +0 1598.65899 1.44104 0.75956 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +0 1700.89058 2.17818 0.96066 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +0 1802.28949 3.78304 0.93168 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +0 1904.58551 5.67270 0.87509 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +0 2007.55442 7.65962 0.96463 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +0 2110.93592 12.50525 0.83507 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +0 2214.21018 10.45185 1.02475 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +0 2317.33199 6.36888 1.20489 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +0 2420.92615 2.80901 1.81916 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +0 2525.18818 1.23916 2.60490 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +0 2629.41124 0.50783 3.89962 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +0 2734.00654 0.26064 5.11377 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 1437.76965 1.55447 0.26850 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 1541.92781 2.53305 0.31533 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 1645.02007 2.00104 0.75956 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 1747.16728 3.01993 0.96066 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 1849.00231 5.25421 0.93168 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 1951.97744 7.87657 0.87509 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 2055.52119 10.64417 0.96463 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 2159.13750 17.36990 0.83507 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 2262.57157 14.51221 1.02475 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 2366.28220 8.83625 1.20489 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 2470.33494 3.89932 1.81916 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 2574.69723 1.72031 2.60490 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 2679.67601 0.70515 3.89962 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +1 2784.42610 0.36219 5.11377 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 1384.26703 0.71558 0.26850 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 1487.48867 1.16619 0.31533 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 1591.34435 0.92167 0.75956 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 1694.03635 1.39191 0.96066 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 1795.71246 2.42110 0.93168 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 1898.30376 3.62748 0.87509 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 2001.69391 4.89631 0.96463 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 2105.31920 7.98101 0.83507 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 2208.91814 6.68114 1.02475 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 2312.53185 4.06914 1.20489 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 2416.21455 1.79398 1.81916 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 2520.53662 0.79145 2.60490 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 2624.40586 0.32454 3.89962 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +2 2729.61318 0.16668 5.11377 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 1427.44580 0.09032 0.26850 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 1530.34899 0.14734 0.31533 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 1632.59738 0.11641 0.75956 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 1735.49943 0.17580 0.96066 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 1838.42350 0.30536 0.93168 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 1941.60645 0.45811 0.87509 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 2045.80496 0.61920 0.96463 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 2149.91448 1.00981 0.83507 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 2253.57221 0.84437 1.02475 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 2357.48682 0.51441 1.20489 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 2461.82262 0.22659 1.81916 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 2566.53772 0.09991 2.60490 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 2670.15963 0.04100 3.89962 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +3 2774.16196 0.02104 5.11377 0.4600 0.0000000000 0.00000 0 0 0.00000 58.175 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +3.26588 1.54067 2.22477 +0.06881 \ No newline at end of file diff --git a/Configurations/infiles/obselete/16CygA_Shoya.in b/Configurations/infiles/obselete/16CygA_Shoya.in new file mode 100644 index 0000000..5ef6401 --- /dev/null +++ b/Configurations/infiles/obselete/16CygA_Shoya.in @@ -0,0 +1,60 @@ +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination + 0 1287.7378 0.43002206 0.81382075 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1391.6472 0.57919905 0.66843567 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1494.9822 1.0561653 0.76340052 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1598.7040 1.2720441 0.94761560 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1700.9117 1.8095614 1.0351044 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1802.3264 3.1660368 0.98478045 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1904.5894 4.6474355 0.99649416 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2007.5698 6.7184649 0.99950613 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2110.8952 8.7121034 1.0788852 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2214.2624 7.6455132 1.2322003 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2317.2959 4.8872829 1.5354940 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2420.9247 2.6154045 1.9713043 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2524.9409 1.0578662 2.9706241 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2629.3219 0.45623723 3.6817983 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2734.3085 0.22393687 4.9109655 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2839.1342 0.084068007 6.3972608 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2944.6692 0.041473324 7.1327241 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1334.1481 0.62326858 0.74809166 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1437.7227 0.83951082 0.71105648 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1541.9739 1.5326199 0.84823175 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1644.9908 1.8440937 0.98725592 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1747.1738 2.6226760 1.0124610 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1849.0120 4.5863581 0.99053311 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1952.0236 6.7292735 0.99794255 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2055.4881 9.7313251 1.0361733 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2159.1390 12.627343 1.1507398 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2262.5176 11.072803 1.3743812 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2366.1802 7.0797880 1.7414257 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2470.2896 3.7891896 2.4481327 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2574.7077 1.5327583 3.3121289 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2679.4912 0.66107875 4.2705002 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2784.2952 0.32461789 5.6231937 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2890.0152 0.12177273 6.7655613 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2995.1098 0.060119340 7.4562630 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1279.5453 0.28319571 0.82705926 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1383.9922 0.38247189 0.67992343 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1487.7844 0.69652430 0.75737280 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1591.2323 0.83868864 0.93465404 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1694.0395 1.1919224 1.0292791 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1795.8284 2.0867683 0.98810557 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1898.3264 3.0624058 0.99586980 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2001.7400 4.4289445 0.99938307 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2105.3332 5.7391074 1.0744751 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2208.9378 5.0402307 1.2243813 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2312.4974 3.2178249 1.5215235 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2416.3217 1.7239335 1.9520526 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2520.5174 0.69726538 2.9286039 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2624.8247 0.30092180 3.6520736 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2730.0274 0.14755212 4.8608444 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2836.0081 0.055328129 6.3556133 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2942.1468 0.027332655 7.1162705 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +3.9332665 1.7627664 2.2003473 +0.085692058 \ No newline at end of file diff --git a/Configurations/infiles/obselete/16CygA_mixture.in b/Configurations/infiles/obselete/16CygA_mixture.in new file mode 100644 index 0000000..1d8ba6e --- /dev/null +++ b/Configurations/infiles/obselete/16CygA_mixture.in @@ -0,0 +1,86 @@ +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) +-1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination + 0 1287.7378 0.43002206 0.81382075 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1391.6472 0.57919905 0.66843567 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1494.9822 1.0561653 0.76340052 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1598.7040 1.2720441 0.94761560 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1700.9117 1.8095614 1.0351044 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1802.3264 3.1660368 0.98478045 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 1904.5894 4.6474355 0.99649416 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2007.5698 6.7184649 0.99950613 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2110.8952 8.7121034 1.0788852 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2214.2624 7.6455132 1.2322003 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2317.2959 4.8872829 1.5354940 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2420.9247 2.6154045 1.9713043 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2524.9409 1.0578662 2.9706241 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2629.3219 0.45623723 3.6817983 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2734.3085 0.22393687 4.9109655 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2839.1342 0.084068007 6.3972608 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 2944.6692 0.041473324 7.1327241 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 0 3048.5000 0.010000000 10.0000000 0.00000000 0.0000000000 0.00000 0 0 0.00000 0.0000000 + 1 1334.1481 0.62326858 0.74809166 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1437.7227 0.83951082 0.71105648 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1541.9739 1.5326199 0.84823175 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1644.9908 1.8440937 0.98725592 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1747.1738 2.6226760 1.0124610 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1849.0120 4.5863581 0.99053311 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 1952.0236 6.7292735 0.99794255 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2055.4881 9.7313251 1.0361733 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2159.1390 12.627343 1.1507398 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2262.5176 11.072803 1.3743812 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2366.1802 7.0797880 1.7414257 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2470.2896 3.7891896 2.4481327 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2574.7077 1.5327583 3.3121289 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2679.4912 0.66107875 4.2705002 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2784.2952 0.32461789 5.6231937 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2890.0152 0.12177273 6.7655613 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 1 2995.1098 0.060119340 7.4562630 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1279.5453 0.28319571 0.82705926 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1383.9922 0.38247189 0.67992343 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1487.7844 0.69652430 0.75737280 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1591.2323 0.83868864 0.93465404 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1694.0395 1.1919224 1.0292791 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1795.8284 2.0867683 0.98810557 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 1898.3264 3.0624058 0.99586980 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2001.7400 4.4289445 0.99938307 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2105.3332 5.7391074 1.0744751 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2208.9378 5.0402307 1.2243813 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2312.4974 3.2178249 1.5215235 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2416.3217 1.7239335 1.9520526 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2520.5174 0.69726538 2.9286039 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2624.8247 0.30092180 3.6520736 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2730.0274 0.14755212 4.8608444 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2836.0081 0.055328129 6.3556133 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 2942.1468 0.027332655 7.1162705 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 2 3046.5000 0.00500000 10.0000000 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 1427.44580 0.09032 0.26850 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 1530.34899 0.14734 0.31533 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 1632.59738 0.11641 0.75956 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 1735.49943 0.17580 0.96066 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 1838.42350 0.30536 0.93168 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 1941.60645 0.45811 0.87509 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2045.80496 0.61920 0.96463 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2149.91448 1.00981 0.83507 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2253.57221 0.84437 1.02475 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2357.48682 0.51441 1.20489 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2461.82262 0.22659 1.81916 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2566.53772 0.09991 2.60490 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2670.15963 0.04100 3.89962 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 + 3 2774.16196 0.02104 5.11377 0.50349461 0.0000000000 0.00000 0 0 0.00000 52.032524 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +3.9332665 1.7627664 2.2003473 +0.085692058 \ No newline at end of file diff --git a/Configurations/infiles/obselete/6508366.in b/Configurations/infiles/obselete/6508366.in new file mode 100644 index 0000000..0e1e24a --- /dev/null +++ b/Configurations/infiles/obselete/6508366.in @@ -0,0 +1,71 @@ +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination +0 574.211213 0.956106 2.331931 0 0 0. -6.7884935 85.692332 +0 623.707598 1.304467 3.136829 0 0 0. -6.7884935 85.692332 +0 672.116690 1.660000 3.965965 0 0 0. -6.7884935 85.692332 +0 723.126931 2.549866 3.106037 0 0 0. -6.7884935 85.692332 +0 775.434589 2.594849 3.732892 0 0 0. -6.7884935 85.692332 +0 827.370343 3.431094 3.576065 0 0 0. -6.7884935 85.692332 +0 878.288164 3.580425 4.374449 0 0 0. -6.7884935 85.692332 +0 929.729778 3.967231 4.926549 0 0 0. -6.7884935 85.692332 +0 980.017032 3.303785 5.336770 0 0 0. -6.7884935 85.692332 +0 1030.741093 3.644398 4.656605 0 0 0. -6.7884935 85.692332 +0 1083.550904 2.646549 4.684982 0 0 0. -6.7884935 85.692332 +0 1136.079425 1.840297 5.607985 0 0 0. -6.7884935 85.692332 +0 1189.281388 1.473601 5.698278 0 0 0. -6.7884935 85.692332 +0 1241.864266 0.888522 7.416039 0 0 0. -6.7884935 85.692332 +0 1293.541001 0.679662 6.257754 0 0 0. -6.7884935 85.692332 +0 1346.927289 0.289377 9.366288 0 0 0. -6.7884935 85.692332 +0 1401.538352 0.202276 12.039031 0 0 0. -6.7884935 85.692332 +1 545.586683 1.406167 1.831449 2.2546976 0 0. -6.7884935 85.692332 +1 596.197152 1.918756 2.687027 2.2546976 0 0. -6.7884935 85.692332 +1 645.891316 2.444420 3.587141 2.2546976 0 0. -6.7884935 85.692332 +1 694.425432 3.753619 3.609813 2.2546976 0 0. -6.7884935 85.692332 +1 745.320928 3.816761 3.382239 2.2546976 0 0. -6.7884935 85.692332 +1 797.104232 5.053807 3.684613 2.2546976 0 0. -6.7884935 85.692332 +1 849.344204 5.276149 3.933797 2.2546976 0 0. -6.7884935 85.692332 +1 900.657619 5.842021 4.628400 2.2546976 0 0. -6.7884935 85.692332 +1 951.747228 4.864561 5.111761 2.2546976 0 0. -6.7884935 85.692332 +1 1002.910344 5.357788 5.032774 2.2546976 0 0. -6.7884935 85.692332 +1 1054.609802 3.897716 4.677585 2.2546976 0 0. -6.7884935 85.692332 +1 1107.290736 2.703538 5.103746 2.2546976 0 0. -6.7884935 85.692332 +1 1159.993992 2.164628 5.660251 2.2546976 0 0. -6.7884935 85.692332 +1 1213.294032 1.307363 6.521712 2.2546976 0 0. -6.7884935 85.692332 +1 1266.060265 0.998746 6.916267 2.2546976 0 0. -6.7884935 85.692332 +1 1319.037062 0.425742 7.773213 2.2546976 0 0. -6.7884935 85.692332 +1 1370.914134 0.298121 10.569111 2.2546976 0 0. -6.7884935 85.692332 +2 568.368222 0.843220 2.232350 2.2546976 0 0. -6.7884935 85.692332 +2 619.575450 1.148525 3.071725 2.2546976 0 0. -6.7884935 85.692332 +2 669.902645 1.459834 3.929592 2.2546976 0 0. -6.7884935 85.692332 +2 719.850002 2.242063 3.167777 2.2546976 0 0. -6.7884935 85.692332 +2 771.514308 2.285047 3.686175 2.2546976 0 0. -6.7884935 85.692332 +2 824.129228 3.017225 3.586359 2.2546976 0 0. -6.7884935 85.692332 +2 874.658866 3.157416 4.318554 2.2546976 0 0. -6.7884935 85.692332 +2 924.777117 3.487772 4.875008 2.2546976 0 0. -6.7884935 85.692332 +2 976.552646 2.908101 5.308319 2.2546976 0 0. -6.7884935 85.692332 +2 1029.145539 3.203855 4.677903 2.2546976 0 0. -6.7884935 85.692332 +2 1081.581518 2.329249 4.681990 2.2546976 0 0. -6.7884935 85.692332 +2 1133.568626 1.617899 5.564722 2.2546976 0 0. -6.7884935 85.692332 +2 1186.425599 1.293691 5.693086 2.2546976 0 0. -6.7884935 85.692332 +2 1238.874796 0.781059 7.313652 2.2546976 0 0. -6.7884935 85.692332 +2 1290.866174 0.597174 6.332562 2.2546976 0 0. -6.7884935 85.692332 +2 1344.292918 0.254620 9.186833 2.2546976 0 0. -6.7884935 85.692332 +2 1398.460131 0.178510 11.885616 2.2546976 0 0. -6.7884935 85.692332 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 + 781.614 79.4671 4 + 11.0012 3.64092 2.34315 +0.861442 \ No newline at end of file diff --git a/Configurations/infiles/obselete/6603624.in b/Configurations/infiles/obselete/6603624.in new file mode 100644 index 0000000..31bcaab --- /dev/null +++ b/Configurations/infiles/obselete/6603624.in @@ -0,0 +1,62 @@ +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination +0 1489.1728 0.283973 1.698628 0.384981788 0 0. -20.490860 6.1181442 +0 1599.8405 0.657434 1.011868 0.384981788 0 0. -20.490860 6.1181442 +0 1710.0378 1.090890 0.824111 0.384981788 0 0. -20.490860 6.1181442 +0 1819.6997 1.552000 0.731073 0.384981788 0 0. -20.490860 6.1181442 +0 1928.3631 3.232826 0.743003 0.384981788 0 0. -20.490860 6.1181442 +0 2037.0401 5.463944 0.719518 0.384981788 0 0. -20.490860 6.1181442 +0 2146.7698 10.231499 0.655283 0.384981788 0 0. -20.490860 6.1181442 +0 2256.9944 14.309373 0.663758 0.384981788 0 0. -20.490860 6.1181442 +0 2367.0763 16.345826 0.705399 0.384981788 0 0. -20.490860 6.1181442 +0 2477.0440 10.391128 0.882568 0.384981788 0 0. -20.490860 6.1181442 +0 2587.5176 5.450967 1.228132 0.384981788 0 0. -20.490860 6.1181442 +0 2698.1700 1.654923 1.966378 0.384981788 0 0. -20.490860 6.1181442 +0 2808.8019 0.544198 3.935861 0.384981788 0 0. -20.490860 6.1181442 +0 2919.9099 0.339245 3.837100 0.384981788 0 0. -20.490860 6.1181442 +1 1539.2508 0.402166 1.391283 0.384981788 0 0. -20.490860 6.1181442 +1 1649.7904 0.928502 0.931917 0.384981788 0 0. -20.490860 6.1181442 +1 1760.5916 1.542122 0.780052 0.384981788 0 0. -20.490860 6.1181442 +1 1869.7967 2.195273 0.736728 0.384981788 0 0. -20.490860 6.1181442 +1 1978.7699 4.569324 0.731759 0.384981788 0 0. -20.490860 6.1181442 +1 2088.3084 7.730321 0.689784 0.384981788 0 0. -20.490860 6.1181442 +1 2198.4584 14.460831 0.659344 0.384981788 0 0. -20.490860 6.1181442 +1 2308.9560 20.221700 0.683669 0.384981788 0 0. -20.490860 6.1181442 +1 2419.3970 23.103519 0.789729 0.384981788 0 0. -20.490860 6.1181442 +1 2529.6530 14.697020 1.047671 0.384981788 0 0. -20.490860 6.1181442 +1 2640.3670 7.704957 1.581746 0.384981788 0 0. -20.490860 6.1181442 +1 2751.5646 2.338927 2.925900 0.384981788 0 0. -20.490860 6.1181442 +1 2862.7377 0.769318 3.913781 0.384981788 0 0. -20.490860 6.1181442 +1 2974.7850 0.478964 3.760618 0.384981788 0 0. -20.490860 6.1181442 +2 1483.2709 0.247833 1.733834 0.384981788 0 0. -20.490860 6.1181442 +2 1592.8776 0.574064 1.058760 0.384981788 0 0. -20.490860 6.1181442 +2 1702.8571 0.952021 0.833170 0.384981788 0 0. -20.490860 6.1181442 +2 1812.6968 1.357117 0.736845 0.384981788 0 0. -20.490860 6.1181442 +2 1921.9601 2.820773 0.742701 0.384981788 0 0. -20.490860 6.1181442 +2 2031.0097 4.776839 0.720986 0.384981788 0 0. -20.490860 6.1181442 +2 2141.0739 8.920861 0.658647 0.384981788 0 0. -20.490860 6.1181442 +2 2251.6111 12.470984 0.663384 0.384981788 0 0. -20.490860 6.1181442 +2 2362.0114 14.267377 0.703552 0.384981788 0 0. -20.490860 6.1181442 +2 2472.3634 9.076242 0.875032 0.384981788 0 0. -20.490860 6.1181442 +2 2583.0479 4.754339 1.213821 0.384981788 0 0. -20.490860 6.1181442 +2 2693.8987 1.444444 1.937628 0.384981788 0 0. -20.490860 6.1181442 +2 2806.1057 0.474423 3.888580 0.384981788 0 0. -20.490860 6.1181442 +2 2918.5352 0.295067 3.835300 0.384981788 0 0. -20.490860 6.1181442 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +225.85000 11.058000 4.0000000 +3.3170645 1.4251575 2.1641859 +0.73759129 \ No newline at end of file diff --git a/Configurations/infiles/obselete/8006161.in b/Configurations/infiles/obselete/8006161.in new file mode 100644 index 0000000..98f2e07 --- /dev/null +++ b/Configurations/infiles/obselete/8006161.in @@ -0,0 +1,62 @@ +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) -14.979842 + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination +0 2476.471576 0.365960 0.458251 0.573077885 0 0. 63.300380 36.697097 +0 2626.300759 0.481088 0.628713 0.573077885 0 0. 63.300380 36.697097 +0 2774.762726 0.591634 0.558896 0.573077885 0 0. 63.300380 36.697097 +0 2922.850751 1.199748 0.635218 0.573077885 0 0. 63.300380 36.697097 +0 3071.160114 1.310842 0.747353 0.573077885 0 0. 63.300380 36.697097 +0 3220.114571 1.646194 0.835082 0.573077885 0 0. 63.300380 36.697097 +0 3369.571707 1.968325 0.931728 0.573077885 0 0. 63.300380 36.697097 +0 3518.589809 2.132052 1.063449 0.573077885 0 0. 63.300380 36.697097 +0 3667.829881 1.799756 1.373817 0.573077885 0 0. 63.300380 36.697097 +0 3817.562845 1.028350 1.969723 0.573077885 0 0. 63.300380 36.697097 +0 3967.224246 0.599356 2.709537 0.573077885 0 0. 63.300380 36.697097 +0 4117.965392 0.289545 3.412587 0.573077885 0 0. 63.300380 36.697097 +0 4268.707402 0.195861 5.089781 0.573077885 0 0. 63.300380 36.697097 +0 4419.532330 0.105445 5.297795 0.573077885 0 0. 63.300380 36.697097 +1 2397.186146 0.601122 0.366861 0.573077885 0 0. 63.300380 36.697097 +1 2547.542517 0.791080 0.541169 0.573077885 0 0. 63.300380 36.697097 +1 2696.879171 0.974615 0.595549 0.573077885 0 0. 63.300380 36.697097 +1 2844.853425 1.975448 0.595614 0.573077885 0 0. 63.300380 36.697097 +1 2993.218606 2.157601 0.688732 0.573077885 0 0. 63.300380 36.697097 +1 3142.145322 2.709521 0.788912 0.573077885 0 0. 63.300380 36.697097 +1 3291.384462 3.241066 0.881815 0.573077885 0 0. 63.300380 36.697097 +1 3440.785361 3.510354 0.994997 0.573077885 0 0. 63.300380 36.697097 +1 3590.377766 2.960372 1.213244 0.573077885 0 0. 63.300380 36.697097 +1 3739.745510 1.692606 1.660163 0.573077885 0 0. 63.300380 36.697097 +1 3889.347778 0.986100 2.324933 0.573077885 0 0. 63.300380 36.697097 +1 4039.785596 0.476408 3.052147 0.573077885 0 0. 63.300380 36.697097 +1 4190.532886 0.322377 4.226253 0.573077885 0 0. 63.300380 36.697097 +1 4341.295879 0.173549 5.165412 0.573077885 0 0. 63.300380 36.697097 +2 2466.436631 0.297174 0.446548 0.573077885 0 0. 63.300380 36.697097 +2 2614.196909 0.390541 0.615395 0.573077885 0 0. 63.300380 36.697097 +2 2762.955429 0.481738 0.564560 0.573077885 0 0. 63.300380 36.697097 +2 2911.813986 0.977390 0.629597 0.573077885 0 0. 63.300380 36.697097 +2 3060.573450 1.067174 0.739459 0.573077885 0 0. 63.300380 36.697097 +2 3209.733447 1.340041 0.828938 0.573077885 0 0. 63.300380 36.697097 +2 3359.322825 1.604201 0.925049 0.573077885 0 0. 63.300380 36.697097 +2 3508.972873 1.736297 1.055016 0.573077885 0 0. 63.300380 36.697097 +2 3658.457511 1.465576 1.354141 0.573077885 0 0. 63.300380 36.697097 +2 3808.335825 0.836356 1.933307 0.573077885 0 0. 63.300380 36.697097 +2 3958.145721 0.487725 2.664830 0.573077885 0 0. 63.300380 36.697097 +2 4108.850755 0.235440 3.370974 0.573077885 0 0. 63.300380 36.697097 +2 4259.774477 0.159168 4.990325 0.573077885 0 0. 63.300380 36.697097 +2 4410.023930 0.085750 5.274212 0.573077885 0 0. 63.300380 36.697097 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +21.276500 42.697400 4.0000000 +2.0234308 1.1234829 2.3085127 +0.18063151 \ No newline at end of file diff --git a/Configurations/infiles/obselete/8379927_1111kasoc_synthese.in b/Configurations/infiles/obselete/8379927_1111kasoc_synthese.in new file mode 100644 index 0000000..87f10b8 --- /dev/null +++ b/Configurations/infiles/obselete/8379927_1111kasoc_synthese.in @@ -0,0 +1,71 @@ +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination +0 1728.01169 0.10540 1.27502 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 1847.38684 0.17238 1.16395 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 1967.94988 0.28711 1.33716 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2087.86222 0.39026 1.75644 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2206.66104 0.56023 1.85124 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2324.43943 0.83228 1.81334 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2443.13208 1.11118 1.88539 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2563.57580 1.37510 2.03115 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2683.95554 1.48699 2.22804 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2804.48468 1.30823 2.43151 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 2924.42603 0.94932 2.88386 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 3044.80576 0.60403 3.62174 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 3165.45271 0.34807 4.57470 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 3286.65229 0.20147 5.79057 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 3408.90504 0.12262 6.52212 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 3530.65228 0.06776 7.45899 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +0 3651.09760 0.04346 9.05888 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 1783.57685 0.15621 1.22710 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 1903.81554 0.25577 1.24571 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2023.89005 0.42575 1.53296 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2143.26582 0.57872 1.80157 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2261.39510 0.83044 1.83392 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2380.00253 1.23616 1.84794 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2499.58610 1.64774 1.95408 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2620.13231 2.03847 2.12421 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2740.65744 2.20440 2.32481 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2861.25712 1.94047 2.64560 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 2981.50840 1.40835 3.23554 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 3102.26455 0.89583 4.07926 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 3223.35515 0.51552 5.15126 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 3345.22157 0.29867 6.14181 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 3466.89336 0.18184 6.96585 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 3588.91851 0.10049 8.24262 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +1 3711.27774 0.06442 9.85075 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 1712.71093 0.06908 1.28751 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 1834.49740 0.11310 1.17766 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 1955.83255 0.18829 1.31905 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2076.28531 0.25579 1.71642 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2195.17430 0.36737 1.84292 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2313.17137 0.54562 1.81706 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2432.55898 0.72835 1.87870 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2552.44629 0.90205 2.01831 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2673.28936 0.97488 2.21058 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2793.68385 0.85751 2.41324 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 2914.25361 0.62235 2.84543 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 3034.50763 0.39610 3.55907 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 3155.41621 0.22812 4.49653 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 3277.02203 0.13209 5.69162 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 3398.38215 0.08039 6.46064 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 3519.49017 0.04443 7.37313 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +2 3641.37332 0.02849 8.92486 1.1850 0.0001440100 0.05377 0 0 -41.77017 67.774 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +-1.00000 -1.00000 -1.00000 +1.03121 1.34514 2.08329 +0.13447 \ No newline at end of file diff --git a/Configurations/infiles/obselete/9139151.in b/Configurations/infiles/obselete/9139151.in new file mode 100644 index 0000000..8885602 --- /dev/null +++ b/Configurations/infiles/obselete/9139151.in @@ -0,0 +1,59 @@ +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) -14.979842 + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination +0 1804.413362 0.293786 0.800381 1.006704871 0 0. -8.2536785 71.424193 +0 1922.136431 0.748746 1.151596 1.006704871 0 0. -8.2536785 71.424193 +0 2038.802023 0.821746 1.306285 1.006704871 0 0. -8.2536785 71.424193 +0 2154.390082 1.131956 1.625482 1.006704871 0 0. -8.2536785 71.424193 +0 2269.370471 1.233440 1.960192 1.006704871 0 0. -8.2536785 71.424193 +0 2385.768961 2.064410 1.910053 1.006704871 0 0. -8.2536785 71.424193 +0 2502.807041 2.637234 1.885688 1.006704871 0 0. -8.2536785 71.424193 +0 2620.221839 2.991658 1.930596 1.006704871 0 0. -8.2536785 71.424193 +0 2737.485949 2.798988 1.983772 1.006704871 0 0. -8.2536785 71.424193 +0 2854.895018 1.804130 2.663070 1.006704871 0 0. -8.2536785 71.424193 +0 2972.517880 1.078238 3.067332 1.006704871 0 0. -8.2536785 71.424193 +0 3089.807611 0.614841 3.550705 1.006704871 0 0. -8.2536785 71.424193 +0 3207.309069 0.324916 5.224397 1.006704871 0 0. -8.2536785 71.424193 +1 1858.819705 0.445481 0.965483 1.006704871 0 0. -8.2536785 71.424193 +1 1976.125513 1.137354 1.225413 1.006704871 0 0. -8.2536785 71.424193 +1 2092.760441 1.246106 1.454579 1.006704871 0 0. -8.2536785 71.424193 +1 2208.054041 1.716132 1.781950 1.006704871 0 0. -8.2536785 71.424193 +1 2323.768667 1.871204 1.938450 1.006704871 0 0. -8.2536785 71.424193 +1 2440.384775 3.131683 1.899784 1.006704871 0 0. -8.2536785 71.424193 +1 2557.993804 4.000072 1.907627 1.006704871 0 0. -8.2536785 71.424193 +1 2675.600448 4.532012 1.956477 1.006704871 0 0. -8.2536785 71.424193 +1 2792.866173 4.242880 2.304867 1.006704871 0 0. -8.2536785 71.424193 +1 2909.980857 2.732452 2.857433 1.006704871 0 0. -8.2536785 71.424193 +1 3028.159374 1.635763 3.308448 1.006704871 0 0. -8.2536785 71.424193 +1 3146.536964 0.931742 4.381740 1.006704871 0 0. -8.2536785 71.424193 +1 3264.922277 0.492601 6.025757 1.006704871 0 0. -8.2536785 71.424193 +2 1793.030999 0.257233 0.762409 1.006704871 0 0. -8.2536785 71.424193 +2 1910.947080 0.658845 1.121290 1.006704871 0 0. -8.2536785 71.424193 +2 2028.303234 0.721535 1.293658 1.006704871 0 0. -8.2536785 71.424193 +2 2142.854093 0.993320 1.593640 1.006704871 0 0. -8.2536785 71.424193 +2 2258.289267 1.083164 1.927658 1.006704871 0 0. -8.2536785 71.424193 +2 2375.000638 1.811544 1.915600 1.006704871 0 0. -8.2536785 71.424193 +2 2492.466256 2.314336 1.887793 1.006704871 0 0. -8.2536785 71.424193 +2 2610.112665 2.626108 1.926733 1.006704871 0 0. -8.2536785 71.424193 +2 2727.994670 2.458832 1.979205 1.006704871 0 0. -8.2536785 71.424193 +2 2844.678346 1.581038 2.604535 1.006704871 0 0. -8.2536785 71.424193 +2 2962.900589 0.947986 3.033783 1.006704871 0 0. -8.2536785 71.424193 +2 3081.547782 0.539481 3.518343 1.006704871 0 0. -8.2536785 71.424193 +2 3199.764286 0.285014 5.120099 1.006704871 0 0. -8.2536785 71.424193 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +73.258300 57.280100 4.0000000 +1.7187191 1.3689736 1.9988366 +0.84651896 \ No newline at end of file diff --git a/Configurations/infiles/obselete/9139163.in b/Configurations/infiles/obselete/9139163.in new file mode 100644 index 0000000..0844f48 --- /dev/null +++ b/Configurations/infiles/obselete/9139163.in @@ -0,0 +1,80 @@ +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 8006161 7.36 3575 Simple 1.17 5488. +# This file contains the results converted from an IDL sav file for the star with unknown ID: +-1 +# Spectrum parameters. Observation duration (days) / Cadence (seconds) -14.979842 + -1 -1 +# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b / alfa / beta asym /inclination +0 985.845981 0.473371 1.048264 0 0. 3.5285147 -14.979842 24.673869 +0 1065.001980 0.589323 2.382962 0 0. 3.5285147 -14.979842 24.673869 +0 1143.125391 0.785571 1.810511 0 0. 3.5285147 -14.979842 24.673869 +0 1221.435610 0.811306 3.712531 0 0. 3.5285147 -14.979842 24.673869 +0 1301.879049 1.191346 2.789458 0 0. 3.5285147 -14.979842 24.673869 +0 1383.386958 1.272304 3.399297 0 0. 3.5285147 -14.979842 24.673869 +0 1464.743333 1.585765 4.242145 0 0. 3.5285147 -14.979842 24.673869 +0 1544.839515 1.956003 4.240859 0 0. 3.5285147 -14.979842 24.673869 +0 1624.515817 1.880729 4.789467 0 0. 3.5285147 -14.979842 24.673869 +0 1704.394261 1.735299 5.434701 0 0. 3.5285147 -14.979842 24.673869 +0 1785.810713 1.852104 4.439329 0 0. 3.5285147 -14.979842 24.673869 +0 1867.683125 1.264250 5.460151 0 0. 3.5285147 -14.979842 24.673869 +0 1949.770903 1.151659 5.047525 0 0. 3.5285147 -14.979842 24.673869 +0 2033.225780 0.705964 6.822597 0 0. 3.5285147 -14.979842 24.673869 +0 2115.173056 0.627376 7.128204 0 0. 3.5285147 -14.979842 24.673869 +0 2195.985462 0.386741 8.156124 0 0. 3.5285147 -14.979842 24.673869 +0 2278.037767 0.325197 7.057531 0 0. 3.5285147 -14.979842 24.673869 +0 2360.613096 0.135285 11.871817 0 0. 3.5285147 -14.979842 24.673869 +0 2444.786602 0.156932 7.883257 0 0. 3.5285147 -14.979842 24.673869 +0 2529.527136 0.074993 5.396720 0 0. 3.5285147 -14.979842 24.673869 +1 943.058908 0.713249 0.674832 0 0. 3.5285147 -14.979842 24.673869 +1 1023.243576 0.887600 1.692060 0 0. 3.5285147 -14.979842 24.673869 +1 1102.129194 1.184039 2.123041 0 0. 3.5285147 -14.979842 24.673869 +1 1179.779597 1.221563 2.720273 0 0. 3.5285147 -14.979842 24.673869 +1 1258.936892 1.793254 3.296833 0 0. 3.5285147 -14.979842 24.673869 +1 1340.041372 1.916902 3.085264 0 0. 3.5285147 -14.979842 24.673869 +1 1421.751308 2.386536 3.808864 0 0. 3.5285147 -14.979842 24.673869 +1 1502.312476 2.945531 4.248602 0 0. 3.5285147 -14.979842 24.673869 +1 1582.310325 2.831263 4.501474 0 0. 3.5285147 -14.979842 24.673869 +1 1662.021207 2.614427 5.103203 0 0. 3.5285147 -14.979842 24.673869 +1 1742.806974 2.788585 4.978454 0 0. 3.5285147 -14.979842 24.673869 +1 1824.712122 1.905085 4.933141 0 0. 3.5285147 -14.979842 24.673869 +1 1906.955424 1.733524 5.266549 0 0. 3.5285147 -14.979842 24.673869 +1 1989.366649 1.062658 5.895737 0 0. 3.5285147 -14.979842 24.673869 +1 2072.065475 0.945171 6.985997 0 0. 3.5285147 -14.979842 24.673869 +1 2153.577138 0.582381 7.637161 0 0. 3.5285147 -14.979842 24.673869 +1 2235.721577 0.489276 7.657167 0 0. 3.5285147 -14.979842 24.673869 +1 2317.948342 0.203712 9.398459 0 0. 3.5285147 -14.979842 24.673869 +1 2401.321404 0.236614 9.989759 0 0. 3.5285147 -14.979842 24.673869 +1 2486.341937 0.112851 6.661392 0 0. 3.5285147 -14.979842 24.673869 +2 982.225273 0.390249 1.002816 0 0. 3.5285147 -14.979842 24.673869 +2 1059.999267 0.484150 2.308592 0 0. 3.5285147 -14.979842 24.673869 +2 1138.347365 0.646415 1.850887 0 0. 3.5285147 -14.979842 24.673869 +2 1216.569270 0.666755 3.597650 0 0. 3.5285147 -14.979842 24.673869 +2 1296.513875 0.980420 2.854550 0 0. 3.5285147 -14.979842 24.673869 +2 1377.505109 1.044810 3.357048 0 0. 3.5285147 -14.979842 24.673869 +2 1458.856779 1.300855 4.180947 0 0. 3.5285147 -14.979842 24.673869 +2 1539.380419 1.608258 4.243859 0 0. 3.5285147 -14.979842 24.673869 +2 1619.370616 1.544541 4.756687 0 0. 3.5285147 -14.979842 24.673869 +2 1698.689470 1.426761 5.391190 0 0. 3.5285147 -14.979842 24.673869 +2 1780.175352 1.523019 4.511033 0 0. 3.5285147 -14.979842 24.673869 +2 1862.031760 1.040108 5.390723 0 0. 3.5285147 -14.979842 24.673869 +2 1943.911272 0.946712 5.075068 0 0. 3.5285147 -14.979842 24.673869 +2 2025.559052 0.579905 6.656846 0 0. 3.5285147 -14.979842 24.673869 +2 2107.758451 0.515354 7.103963 0 0. 3.5285147 -14.979842 24.673869 +2 2189.362564 0.317663 8.069435 0 0. 3.5285147 -14.979842 24.673869 +2 2270.855992 0.266804 7.164684 0 0. 3.5285147 -14.979842 24.673869 +2 2353.565618 0.111213 11.449422 0 0. 3.5285147 -14.979842 24.673869 +2 2436.889965 0.129053 8.248049 0 0. 3.5285147 -14.979842 24.673869 +2 2520.285051 0.061767 5.630567 0 0. 3.5285147 -14.979842 24.673869 +# Input noise parameters. H0, tau_0, p0 / H1, tau_1, p1 / N0. Set at -1 if not used. +-1.00000 -1.00000 -1.00000 +41.225300 47.562700 4.0000000 +3.7505100 2.0680072 2.1733630 +0.37810383 \ No newline at end of file diff --git a/Configurations/main.cfg.aj_GRANscaledKallinger b/Configurations/main.cfg.aj_GRANscaledKallinger new file mode 100644 index 0000000..d2ec753 --- /dev/null +++ b/Configurations/main.cfg.aj_GRANscaledKallinger @@ -0,0 +1,26 @@ +# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space +# Seven inputs are required: +# - model_name : Name of the model, as defined in models_database.pro +# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] +# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters +# - val_max: vector of same size as [val_min] with the final parameters of the model. +# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) +# - forest_type: either grid or random. Currently, only random (uniform) is implemented. +# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. +# If 0, then (1) append the combination file and (2) model number = last model number + 1 +# This is a template with a Noise described by Kallinger relations and three Harvey-like. +# The configuration for the noise in Kallinger is given by an ANOTHER file: noise_Kallinger2014.cfg. See that file for more details +random 1 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples +generate_cfg_from_synthese_file_Wscaled_aj_GRANscaled_Kallinger2014 /Users/obenomar/Work/dev/Spectra-Simulator-C/Configurations/infiles/12069424.in +NONE # Used template(s) name(s). If several, randomly select one/iteration. If set to 'all', will use all *.template files in Configuration/templates +Dnu epsilon delta0l_percent HNR a1ovGamma Gamma_at_numax a2 a3 a4 a5 a6 beta_asym i numax_spread H_spread nu_spread #Variable names +100 0.5 5. 30 0.5 1. 0. 0.0 0.0 0 0.0 0 55.0 0 0 0.0 #val_min +100 0.5 5. 30 1.0 1. 0. 0.0 0.0 0 0.0 0 55 0 0 0.0 #val_max +0 0 0 1. 1 0 0 0 0 0. 0 0 0 0 0 0 #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid +Tobs Cadence Naverage Nrealisation +300 120 1 1 +0 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt +1 # Do you want plots ? 0 = No, 1 = Yes +1 # Do you list values of the input model in the output ascii file? +1 # Limit Data to mode range? +0 model_MS_Global_aj_HarveyLike # Do .model files? If yes, use the name provided here to define the used model name within the .model file diff --git a/Configurations/main.cfg.freeDP_curvepmodes.v2 b/Configurations/main.cfg.freeDP_curvepmodes.v2 deleted file mode 100644 index 4a166dd..0000000 --- a/Configurations/main.cfg.freeDP_curvepmodes.v2 +++ /dev/null @@ -1,21 +0,0 @@ -# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space -# Seven inputs are required: -# - model_name : Name of the model, as defined in models_database.pro -# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] -# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters -# - val_max: vector of same size as [val_min] with the final parameters of the model. -# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) -# - forest_type: either grid or random. Currently, only random (uniform) is implemented. -# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. -# If 0, then (1) append the combination file and (2) model number = last model number + 1 -random 4 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples -asymptotic_mm_freeDp_numaxspread_curvepmodes_v2 # Name of the model. asymptotic_mm_freeDp_curvepmodes_v1 is a model iterating on what was learnt from asymptotic_v1, v2, v3 to generate a star with mixed modes -nurot_env nurot_ratio Dnu epsilon DP1 alpha q SNR maxGamma numax_spread -0.1286 0.1286 10. 0. 50 0.00 0.1 5. 0.1 0.2 #val_min -0.3858 3.858 30. 0.2 200 0.04 0.3 100. 0.5 0.2 #val_max -1. 1. 1. 1. 1. 1. 1. 1. 1. 0. #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid -Tobs Cadence Naverage -1460. 300 1 -1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt -0 # Do you want plots ? 0 = No, 1 = Yes -1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/main.cfg.freeDP_curvepmodes.v3 b/Configurations/main.cfg.freeDP_curvepmodes.v3 deleted file mode 100644 index 2ccee49..0000000 --- a/Configurations/main.cfg.freeDP_curvepmodes.v3 +++ /dev/null @@ -1,21 +0,0 @@ -# Configuration in order to generate an ensemble of spectra automatically using [val_min] and [val_max] as the limits of the parameter space -# Seven inputs are required: -# - model_name : Name of the model, as defined in models_database.pro -# - The name of the parameters as defined in models_database.pro, for the subfunction [model_name] -# - val_min : vector listing the initial parameters of the model [model_name]. See models_database.pro for more information about those parameters -# - val_max: vector of same size as [val_min] with the final parameters of the model. -# - Tobs and Cadence: Observation duration (in days) and the Cadence of observation (in seconds) -# - forest_type: either grid or random. Currently, only random (uniform) is implemented. -# - erase_old_file: If 1, then (1) the combination file is overwritten and (2) the model number (identifier) is reset to 0. -# If 0, then (1) append the combination file and (2) model number = last model number + 1 -random 4 # forest_type, followed by the forest_params. If forest_type=random, then forest_params is a single value that corresponds to the Number of samples -asymptotic_mm_freeDp_numaxspread_curvepmodes_v3 # Name of the model. asymptotic_mm_freeDp_curvepmodes_v1 is a model iterating on what was learnt from asymptotic_v1, v2, v3 to generate a star with mixed modes -nurot_env nurot_core Dnu epsilon DP1 alpha q SNR maxGamma numax_spread -0.3858 0.1286 10. 0. 50 0.00 0.1 5. 0.1 0.2 #val_min -0.1286 3.858 30. 0.2 200 0.04 0.3 100. 0.5 0.2 #val_max -1. 1. 1. 1. 1. 1. 1. 1. 1. 0. #If forest_type="random" ==> 1=Variable OR 0=Constant. If forest_type="grid" then must be the stepsize of the grid -Tobs Cadence Naverage -1460. 300 1 -1 # It is erase_old_files. If set to 1, will remove old Combination.txt and restart counting from 1. Otherwise append Combination.txt -0 # Do you want plots ? 0 = No, 1 = Yes -1 # Do you list values of the input model in the output ascii file? diff --git a/Configurations/noise_Kallinger2014.cfg b/Configurations/noise_Kallinger2014.cfg new file mode 100644 index 0000000..2dc3f6e --- /dev/null +++ b/Configurations/noise_Kallinger2014.cfg @@ -0,0 +1,31 @@ +# Configuration for the noise parameters, following Kallinger+2014 relations +# The noise parameters are all generated following a Gaussian or Uniform distribution. For Gaussian distributions you can control the +# enlargement coefficient kerror (last line) to enlarge uncertainties to kerror-sigma +# The parameters are in the following order: +# forest_type: key to indicate what kind of generator is concerned. Either "random" or "grid". The "grid" DOES NOT ALLOW Gaussian distributions. +# Note that we HIGHLY recommend to not use a grid for this noise model as it is data-driven and has many parameters. +# line 1: name of the parameters +# line 2: type of distribution +# line 3: +# - if Uniform distribution: minimum value of to draw +# - if Gaussian distribution: mean of the distribution +# - if Fix distribution: Fix the value of the parameter +# line 4: +# - if Uniform distribution: maximum value of to draw +# - if Gaussian distribution: standard deviation of the distribution +# - if Fix distribution: Not used +# line 5: +# - IF forest_type is "random", this is the kerror coefficient that enlarge the uncertainty. Then relevant ONLY for Gaussian distribution +# - IF forest_type is "grid", this is the step of the grid +forest_type = random + k_Agran s_Agran k_taugran s_taugran c0 ka ks k1 s1 c1 k2 s2 c2 N0 + Gaussian Gaussian Gaussian Gaussian Uniform Gaussian Gaussian Gaussian Gaussian Uniform Gaussian Gaussian Uniform Fix + 3335.000000 -0.564000 836.000000 -0.886000 2.000000 3382 -0.609 0.317000 0.970000 2.000000 0.948000 0.992000 2.000000 1 + 9.000000 0.0020000 4.000000 0.0020000 4.000000 9 0.002 0.002000 0.002000 4.000000 0.003000 0.002000 4.000000 1 + 10 10 10 10 0 10 10 2 2 0 2 2 0 0 +forest_type = grid + k_Agran s_Agran k_taugran s_taugran c0 ka ks k1 s1 c1 k2 s2 c2 N0 + Uniform Uniform Uniform Uniform Uniform Uniform Uniform Uniform Uniform Uniform Uniform Uniform Uniform Fix + 2885.00 -0.563990 816.0000 -0.896000 2.000000 3337 -0.611 0.307000 0.960000 2.000000 0.938000 0.982000 2.000000 1 + 3785.00 -0.564010 856.0000 -0.876000 4.000000 3427 -0.607 0.327000 0.980000 4.000000 0.958000 1.002000 4.000000 1 + 9 2 4 0.002 1.000000 9 0.002 0.002000 0.002 1.000000 0.002 0.002 1.000000 0 \ No newline at end of file diff --git a/Configurations/templates/.DS_Store b/Configurations/templates/.DS_Store new file mode 100644 index 0000000..ea8181c Binary files /dev/null and b/Configurations/templates/.DS_Store differ diff --git a/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC12069424.template b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC12069424.template new file mode 100644 index 0000000..1a7855e --- /dev/null +++ b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC12069424.template @@ -0,0 +1,89 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 12069424 +Dnu_ref= 103.110 +epsilon_ref= 0.487371 +numax_ref= 2188 +# Frequency (microHz) Height (ppm^2/microhz) Width +1250.0000 0.05000000 +1287.7378 0.43002206 0.81382075 +1391.6472 0.57919905 0.66843567 +1494.9822 1.0561653 0.76340052 +1598.7040 1.2720441 0.94761560 +1700.9117 1.8095614 1.0351044 +1802.3264 3.1660368 0.98478045 +1904.5894 4.6474355 0.99649416 +2007.5698 6.7184649 0.99950613 +2110.8952 8.7121034 1.0788852 +2214.2624 7.6455132 1.2322003 +2317.2959 4.8872829 1.5354940 +2420.9247 2.6154045 1.9713043 +2524.9409 1.0578662 2.9706241 +2629.3219 0.45623723 3.6817983 +2734.3085 0.22393687 4.9109655 +2839.1342 0.084068007 6.3972608 +2944.6692 0.041473324 7.1327241 +3048.5000 0.010000000 10.0000000 +1334.1481 0.62326858 0.74809166 +1437.7227 0.83951082 0.71105648 +1541.9739 1.5326199 0.84823175 +1644.9908 1.8440937 0.98725592 +1747.1738 2.6226760 1.0124610 +1849.0120 4.5863581 0.99053311 +1952.0236 6.7292735 0.99794255 +2055.4881 9.7313251 1.0361733 +2159.1390 12.627343 1.1507398 +2262.5176 11.072803 1.3743812 +2366.1802 7.0797880 1.7414257 +2470.2896 3.7891896 2.4481327 +2574.7077 1.5327583 3.3121289 +2679.4912 0.66107875 4.2705002 +2784.2952 0.32461789 5.6231937 +2890.0152 0.12177273 6.7655613 +2995.1098 0.060119340 7.4562630 +1279.5453 0.28319571 0.82705926 +1383.9922 0.38247189 0.67992343 +1487.7844 0.69652430 0.75737280 +1591.2323 0.83868864 0.93465404 +1694.0395 1.1919224 1.0292791 +1795.8284 2.0867683 0.98810557 +1898.3264 3.0624058 0.99586980 +2001.7400 4.4289445 0.99938307 +2105.3332 5.7391074 1.0744751 +2208.9378 5.0402307 1.2243813 +2312.4974 3.2178249 1.5215235 +2416.3217 1.7239335 1.9520526 +2520.5174 0.69726538 2.9286039 +2624.8247 0.30092180 3.6520736 +2730.0274 0.14755212 4.8608444 +2836.0081 0.055328129 6.3556133 +2942.1468 0.027332655 7.1162705 +3046.5000 0.00500000 10.0000000 +1427.44580 0.09032 0.26850 +1530.34899 0.14734 0.31533 +1632.59738 0.11641 0.75956 +1735.49943 0.17580 0.96066 +1838.42350 0.30536 0.93168 +1941.60645 0.45811 0.87509 +2045.80496 0.61920 0.96463 +2149.91448 1.00981 0.83507 +2253.57221 0.84437 1.02475 +2357.48682 0.51441 1.20489 +2461.82262 0.22659 1.81916 +2566.53772 0.09991 2.60490 +2670.15963 0.04100 3.89962 +2774.16196 0.02104 5.11377 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC6508366.template b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC6508366.template new file mode 100644 index 0000000..ebc5d79 --- /dev/null +++ b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC6508366.template @@ -0,0 +1,46 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 6508366 +Dnu_ref= 51.710 +epsilon_ref= 0.022204 +numax_ref= 958 +# Frequency (microHz) Height (ppm^2/microhz) Width +200 0 0 +300 0.0 0.01 +450 0.0 0.1 +500 0.1 1 +574.211213 0.956106 2.331931 +623.707598 1.304467 3.136829 +672.116690 1.660000 3.965965 +723.126931 2.549866 3.106037 +775.434589 2.594849 3.732892 +827.370343 3.431094 3.576065 +878.288164 3.580425 4.374449 +929.729778 3.967231 4.926549 +980.017032 3.303785 5.336770 +1030.741093 3.644398 4.656605 +1083.550904 2.646549 4.684982 +1136.079425 1.840297 5.607985 +1189.281388 1.473601 5.698278 +1241.864266 0.888522 7.416039 +1293.541001 0.679662 6.257754 +1346.927289 0.289377 9.366288 +1401.538352 0.202276 12.039031 +1450 0.025 12 +1500 0 12.5 +1700 0.0 13 +2000 0 13 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC6603624.template b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC6603624.template new file mode 100644 index 0000000..60d6d90 --- /dev/null +++ b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC6603624.template @@ -0,0 +1,43 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 6603624 +Dnu_ref= 109.857 +epsilon_ref= 0.557387 +numax_ref= 2384 +# Frequency (microHz) Height (ppm^2/microhz) Width + 800 0 0 + 1100 0.0 0.01 + 1400 0.0 0.1 + 1450 0.1 1 + 1489.1728 0.283973 1.698628 + 1599.8405 0.657434 1.011868 + 1710.0378 1.090890 0.824111 + 1819.6997 1.552000 0.731073 + 1928.3631 3.232826 0.743003 + 2037.0401 5.463944 0.719518 + 2146.7698 10.231499 0.655283 + 2256.9944 14.309373 0.663758 + 2367.0763 16.345826 0.705399 + 2477.0440 10.391128 0.882568 + 2587.5176 5.450967 1.228132 + 2698.1700 1.654923 1.966378 + 2808.8019 0.544198 3.935861 + 2919.9099 0.339245 3.837100 + 2950 0.05 3.9 + 3000 0 4 + 3300 0.0 4 + 3500 0 4 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC8006161.template b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC8006161.template new file mode 100644 index 0000000..a56a36f --- /dev/null +++ b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC8006161.template @@ -0,0 +1,43 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 8006161 +Dnu_ref= 149.335 +epsilon_ref= 0.573047 +numax_ref= 3575 +# Frequency (microHz) Height (ppm^2/microhz) Width +1700 0 0 +2000 0 0.001 +2380 0 0.01 +2420 0.05 0.1 +2476.471576 0.365960 0.458251 +2626.300759 0.481088 0.628713 +2774.762726 0.591634 0.558896 +2922.850751 1.199748 0.635218 +3071.160114 1.310842 0.747353 +3220.114571 1.646194 0.835082 +3369.571707 1.968325 0.931728 +3518.589809 2.132052 1.063449 +3667.829881 1.799756 1.373817 +3817.562845 1.028350 1.969723 +3967.224246 0.599356 2.709537 +4117.965392 0.289545 3.412587 +4268.707402 0.195861 5.089781 +4419.532330 0.105445 5.297795 +4450 0.01 5.5 +4500 0 6 +4800 0 6.5 +5100 0 6.5 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC8379927.template b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC8379927.template new file mode 100644 index 0000000..dae5976 --- /dev/null +++ b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC8379927.template @@ -0,0 +1,44 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 8379927 +Dnu_ref= 120.125 +epsilon_ref= 0.364227 +numax_ref= 2795 +# Frequency (microHz) Height (ppm^2/microhz) Width +1600.00000 0.00000 0.00000 +1650.00000 0.00000 0.00000 +1700.00000 0.01000 0.10000 +1728.01169 0.10540 1.27502 +1847.38684 0.17238 1.16395 +1967.94988 0.28711 1.33716 +2087.86222 0.39026 1.75644 +2206.66104 0.56023 1.85124 +2324.43943 0.83228 1.81334 +2443.13208 1.11118 1.88539 +2563.57580 1.37510 2.03115 +2683.95554 1.48699 2.22804 +2804.48468 1.30823 2.43151 +2924.42603 0.94932 2.88386 +3044.80576 0.60403 3.62174 +3165.45271 0.34807 4.57470 +3286.65229 0.20147 5.79057 +3408.90504 0.12262 6.52212 +3530.65228 0.06776 7.45899 +3651.09760 0.04346 9.05888 +3700.00000 0.01000 9.00000 +3750.00000 0.00000 9.00000 +3800.00000 0.00000 9.00000 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC9139151.template b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC9139151.template new file mode 100644 index 0000000..90c475b --- /dev/null +++ b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC9139151.template @@ -0,0 +1,42 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 9139151 +Dnu_ref= 116.833 +epsilon_ref= 0.437526 +numax_ref= 2690 +# Frequency (microHz) Height (ppm^2/microhz) Width +1200 0 0 +1500 0 0.01 +1700 0 0.1 +1750 0.01 0.2 +1804.413362 0.293786 0.800381 +1922.136431 0.748746 1.151596 +2038.802023 0.821746 1.306285 +2154.390082 1.131956 1.625482 +2269.370471 1.233440 1.960192 +2385.768961 2.064410 1.910053 +2502.807041 2.637234 1.885688 +2620.221839 2.991658 1.930596 +2737.485949 2.798988 1.983772 +2854.895018 1.804130 2.663070 +2972.517880 1.078238 3.067332 +3089.807611 0.614841 3.550705 +3207.309069 0.324916 5.224397 +3250 0.05 5.5 +3300 0 6 +3500 0 6.5 +3800 0 6.5 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC9139163.template b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC9139163.template new file mode 100644 index 0000000..74ae1a7 --- /dev/null +++ b/Configurations/templates/ExampleTemplatesMS28Feb2024/KIC9139163.template @@ -0,0 +1,49 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 9139163 +Dnu_ref= 81.185 +epsilon_ref= 0.051119 +numax_ref= 1730 +# Frequency (microHz) Height (ppm^2/microhz) Width +500 0 0 +700 0 0 +900 0 0.1 +950 0.04 0.5 +985.845981 0.473371 1.048264 +1065.001980 0.589323 2.382962 +1143.125391 0.785571 1.810511 +1221.435610 0.811306 3.712531 +1301.879049 1.191346 2.789458 +1383.386958 1.272304 3.399297 +1464.743333 1.585765 4.242145 +1544.839515 1.956003 4.240859 +1624.515817 1.880729 4.789467 +1704.394261 1.735299 5.434701 +1785.810713 1.852104 4.439329 +1867.683125 1.264250 5.460151 +1949.770903 1.151659 5.047525 +2033.225780 0.705964 6.822597 +2115.173056 0.627376 7.128204 +2195.985462 0.386741 8.156124 +2278.037767 0.325197 7.057531 +2360.613096 0.135285 11.871817 +2444.786602 0.156932 7.883257 +2529.527136 0.074993 5.396720 +2550 0.001 10 +2600 0.0 10 +2900 0.0 10 +3300 0 10 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesRGB/10147635.template b/Configurations/templates/ExampleTemplatesRGB/10147635.template new file mode 100644 index 0000000..e2347d7 --- /dev/null +++ b/Configurations/templates/ExampleTemplatesRGB/10147635.template @@ -0,0 +1,41 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies and Heights of the Subgiants and early Red Giants +# Using the Coupled Oscilator Model (COscM) on Kepler Q0-7 data on 2011. Better templates can certainly +# be made nowadays using latest Kepler data release, but these may offer already a good diversity of +# Width and Height profiles for l=0 modes. Note that this table is extrapolated at the edge to +# avoid the interpolation routine in python crashes (if numax_ref is too different from numax_star) +# If you note remaining crashes, try to 0s heights and widths at the edges. +ID_ref= 10147635 +Dnu_ref= 37.38972294545455 +epsilon_ref= 0.17105125457901593 +numax_ref= 607.4704135524956 +# Frequency (microHz) Height (ppm^2/microhz) Width +150 0.0 0.01 +200 0.001 0.01 +230 0.01 0.01 +269.18 0.10 0.075000 +306.57 0.30 0.100000 +343.96 0.75 0.250000 +381.35 1.50 0.500000 +418.74 4.00 0.750000 +456.139472 11.476616 1.047491 +493.137502 5.946117 1.536766 +530.099942 16.801203 1.633771 +567.229201 34.078794 1.940353 +603.135791 27.688428 1.608436 +640.597745 14.027174 2.322543 +678.850311 15.628150 2.255344 +716.569913 8.167997 2.444258 +754.022867 6.553822 3.124394 +792.280807 5.726700 2.483511 +830.165789 3.222952 2.568487 +867.55 1.6 3.000 +904.94 0.5 4.0 +942.334 0.2 5.0 +979.72 0.1 6.0 +1017.11 0.01 7.0 +1050 0.001 8 +1100 0.0 10 +1150 0.0 10 +1200 0.0 10 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesRGB/11026764.template b/Configurations/templates/ExampleTemplatesRGB/11026764.template new file mode 100644 index 0000000..5cddb17 --- /dev/null +++ b/Configurations/templates/ExampleTemplatesRGB/11026764.template @@ -0,0 +1,36 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies and Heights of the Subgiants and early Red Giants +# Using the Coupled Oscilator Model (COscM) on Kepler Q0-7 data on 2011. Better templates can certainly +# be made nowadays using latest Kepler data release, but these may offer already a good diversity of +# Width and Height profiles for l=0 modes. Note that this table is extrapolated at the edge to +# avoid the interpolation routine in python crashes (if numax_ref is too different from numax_star) +# If you note remaining crashes, try to 0s heights and widths at the edges. +ID_ref= 11026764 +Dnu_ref= 50.09669236363635 +epsilon_ref= 0.45599870269788667 +numax_ref= 843.8410291900406 +# Frequency (microHz) Height (ppm^2/microhz) Width +274.2 0.001 0.010000 +324.3 0.1 0.010000 +374.4 0.50000 0.050000 +424.5 1.00000 0.100000 +474.6 2.00000 0.150000 +524.6999999 3.00000 0.250000 + 574.807313 5.554164 0.581769 + 624.985613 5.206764 0.886870 + 674.531521 6.570983 0.710240 + 723.701324 7.527697 0.993823 + 773.003815 7.487714 0.880175 + 823.212854 24.106925 0.809455 + 873.753575 26.849562 0.856720 + 924.043379 21.828367 0.951015 + 974.527722 12.711686 1.207617 +1025.482466 5.992221 1.580103 +1076.252568 1.612970 2.643377 +1126.35 0.80 4.643377 +1176.45 0.40 6.643377 +1226.55 0.10 8.643377 +1276.60 0.05 10.643377 +1326.75 0.01 12 +1376.85 0.001 14 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesRGB/11414712.template b/Configurations/templates/ExampleTemplatesRGB/11414712.template new file mode 100644 index 0000000..72249a4 --- /dev/null +++ b/Configurations/templates/ExampleTemplatesRGB/11414712.template @@ -0,0 +1,38 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies and Heights of the Subgiants and early Red Giants +# Using the Coupled Oscilator Model (COscM) on Kepler Q0-7 data on 2011. Better templates can certainly +# be made nowadays using latest Kepler data release, but these may offer already a good diversity of +# Width and Height profiles for l=0 modes. Note that this table is extrapolated at the edge to +# avoid the interpolation routine in python crashes (if numax_ref is too different from numax_star) +# If you note remaining crashes, try to 0s heights and widths at the edges. +ID_ref= 11414712 +Dnu_ref= 43.845435283216794 +epsilon_ref= 0.37487587485641605 +numax_ref= 729.1185941862176 +# Frequency (microHz) Height (ppm^2/microhz) Width +236.90 0.0 0.01 +280.74 0.01 0.01 +324.58 0.1 0.1 +368.42 0.795160 0.25 +412.26 1.295160 0.5 +456.1 2.295160 0.75 +499.941566 3.295160 1.053182 +543.684887 3.942242 1.067247 +586.684406 8.294804 0.990888 +629.186432 11.018861 0.998501 +674.333495 9.361599 1.182815 +716.895674 28.819053 0.940912 +760.667262 28.783642 1.089215 +804.429387 18.857820 1.265510 +848.476650 8.779924 1.943340 +893.283778 4.188417 2.183697 +937.980029 1.910262 3.042292 +983.071771 0.673829 3.882622 +1026.91 0.373829 4.882622 +1070.76 0.173829 5.882622 +1114.60 0.073829 6.882622 +1158.45 0.0073829 7.882622 +1202.297 0.001 8.882622 +1246.14 0.0 10.882622 +1289.99 0.0 10.882622 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesRGB/11771760.template b/Configurations/templates/ExampleTemplatesRGB/11771760.template new file mode 100644 index 0000000..e890d18 --- /dev/null +++ b/Configurations/templates/ExampleTemplatesRGB/11771760.template @@ -0,0 +1,37 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies and Heights of the Subgiants and early Red Giants +# Using the Coupled Oscilator Model (COscM) on Kepler Q0-7 data on 2011. Better templates can certainly +# be made nowadays using latest Kepler data release, but these may offer already a good diversity of +# Width and Height profiles for l=0 modes. Note that this table is extrapolated at the edge to +# avoid the interpolation routine in python crashes (if numax_ref is too different from numax_star) +# If you note remaining crashes, try to 0s heights and widths at the edges. +ID_ref= 11771760 +Dnu_ref= 32.26211478787879 +epsilon_ref= 0.19773560505324994 +numax_ref= 509.39037038226525 +# Frequency (microHz) Height (ppm^2/microhz) Width +200.00 0. 0.01 +232.26 0.01 0.05 +264.52 0.1 0.1 +296.79 1.00 0.25 +329.04 5.00 0.5 +361.31199 14.090924 1.399878 +394.36761 25.440476 0.495627 +426.63225 19.996703 1.008862 +457.61940 29.412393 1.046457 +488.98464 36.914712 0.739228 +521.62625 39.332155 1.019560 +554.63588 88.231929 0.919862 +587.04188 12.348582 1.609272 +619.96165 10.801918 1.565156 +652.23993 16.220101 1.250749 +684.5 5.220101 2.250749 +716.7 2.220101 3.250749 +749.0 1.220101 4.250749 +781.29 0.50101 5.250749 +813.55 0.20101 6.250749 +845.81 0.10 7.250749 +878.07 0.01 8.250749 +910.33 0.0 10 +942.60 0.0 10 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesRGB/12508433.template b/Configurations/templates/ExampleTemplatesRGB/12508433.template new file mode 100644 index 0000000..87d5a30 --- /dev/null +++ b/Configurations/templates/ExampleTemplatesRGB/12508433.template @@ -0,0 +1,35 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies and Heights of the Subgiants and early Red Giants +# Using the Coupled Oscilator Model (COscM) on Kepler Q0-7 data on 2011. Better templates can certainly +# be made nowadays using latest Kepler data release, but these may offer already a good diversity of +# Width and Height profiles for l=0 modes. Note that this table is extrapolated at the edge to +# avoid the interpolation routine in python crashes (if numax_ref is too different from numax_star) +# If you note remaining crashes, try to 0s heights and widths at the edges. +ID_ref= 12508433 +Dnu_ref= 45.10782921212115 +epsilon_ref= 0.40220860779096057 +numax_ref= 786.2485450988863 +# Frequency (microHz) Height (ppm^2/microhz) Width +335.62 0.00 0.01 +380.72 0.01 0.01 +425.82 0.100000 0.1 +470.92 1.000000 0.25 +516.0 3.000000 0.5 +561.12 5.000000 0.7 + 606.222842 7.953971 0.779516 + 649.903327 14.861701 0.718227 + 694.390360 24.407026 0.642597 + 739.405096 51.633101 0.577738 + 784.162081 146.267895 0.401991 + 829.084028 41.229985 0.632301 + 874.225897 48.374248 0.623434 + 919.782828 11.008553 0.997622 + 965.658514 4.295549 1.277962 +1012.462711 0.713719 3.741551 +1057.56 0.50 4.7 +1102.66 0.3 5.7 +1147.76 0.15 6.7 +1192.86 0.01 7.0 +1237.96 0.0 10 +1283.06 0.0 10 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesRGB/6370489.template b/Configurations/templates/ExampleTemplatesRGB/6370489.template new file mode 100644 index 0000000..c7eb334 --- /dev/null +++ b/Configurations/templates/ExampleTemplatesRGB/6370489.template @@ -0,0 +1,40 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies and Heights of the Subgiants and early Red Giants +# Using the Coupled Oscilator Model (COscM) on Kepler Q0-7 data on 2011. Better templates can certainly +# be made nowadays using latest Kepler data release, but these may offer already a good diversity of +# Width and Height profiles for l=0 modes. Note that this table is extrapolated at the edge to +# avoid the interpolation routine in python crashes (if numax_ref is too different from numax_star) +# If you note remaining crashes, try to 0s heights and widths at the edges. +ID_ref= 6370489 +Dnu_ref= 51.62232350000002 +epsilon_ref= 0.2674517926636568 +numax_ref= 863.0457824171551 +# Frequency (microHz) Height (ppm^2/microhz) Width + 222.16 0.0 0.01 + 273.78 0.0 0.01 + 325.40 0.01 0.1 + 377.03 0.1 0.5 + 428.65 0.50 0.75 + 480.27 1.00 1.0 + 531.90 1.75 1.50 + 583.517551 4.176039 2.091092 + 634.721051 2.854616 2.973314 + 685.994786 4.986088 3.350406 + 736.325615 16.120276 1.549059 + 786.555821 7.790910 2.897599 + 836.946778 10.925145 2.747676 + 889.349112 17.024020 1.871883 + 941.683348 18.582776 1.712074 + 993.842237 7.727850 3.821755 + 1047.017423 6.031542 3.265558 + 1099.512537 3.736163 3.920952 + 1150.791470 1.261942 5.581146 + 1201.760043 1.032199 4.368525 + 1253.38 0.50 5.3 + 1305.0 0.40 6.3 + 1356.62 0.20 7.3 + 1408.248 0.10 8.3 + 1459.87 0.01 9.3 + 1511.49 0.0 10 + 1563.11 0.0 10 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesRGB/8026226.template b/Configurations/templates/ExampleTemplatesRGB/8026226.template new file mode 100644 index 0000000..440e2bc --- /dev/null +++ b/Configurations/templates/ExampleTemplatesRGB/8026226.template @@ -0,0 +1,44 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies and Heights of the Subgiants and early Red Giants +# Using the Coupled Oscilator Model (COscM) on Kepler Q0-7 data on 2011. Better templates can certainly +# be made nowadays using latest Kepler data release, but these may offer already a good diversity of +# Width and Height profiles for l=0 modes. Note that this table is extrapolated at the edge to +# avoid the interpolation routine in python crashes (if numax_ref is too different from numax_star) +# If you note remaining crashes, try to 0s heights and widths at the edges. +ID_ref= 8026226 +Dnu_ref= 34.310408210714286 +epsilon_ref= 0.06779155769795686 +numax_ref= 545.4642697285955 +# Frequency (microHz) Height (ppm^2/microhz) Width +41.0 0.0 0.01 +75.3 0.0 0.01 +109.6 0.01 0.01 +143.9 0.1 0.1 +178.2 0.5 0.25 +212.5 1.00 0.5 +246.8 1.50 0.75 +281.1 2.00 1.00 +315.4 3.00 1.75 +349.781055 4.809783 1.943708 +381.904874 7.382682 2.206807 +413.500365 3.446883 2.542894 +446.462725 21.351165 1.249448 +481.171317 13.579158 1.515202 +516.035473 14.486697 2.924620 +550.446797 19.835646 3.014481 +584.020926 9.895151 2.772152 +617.890063 9.973675 3.253782 +652.203002 7.449054 4.243349 +688.030807 10.065188 2.623870 +723.092117 3.565086 4.092937 +758.072577 2.915208 3.492569 +792.943846 3.539929 1.121730 +828.487490 1.607108 1.714828 +862.8 0.7 2.0 +897.1 0.35 2.5 +931.4 0.2 3.0 +965.7 0.1 3.5 +1000.0 0.01 5 +1034.3 0.0 5 +1068.6 0.0 5 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesRGB/Sun-mod.template b/Configurations/templates/ExampleTemplatesRGB/Sun-mod.template new file mode 100644 index 0000000..4fd4c12 --- /dev/null +++ b/Configurations/templates/ExampleTemplatesRGB/Sun-mod.template @@ -0,0 +1,52 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies and Heights of the Sun on VIRGO/SPM data and have been +# carefully extrapolated at the edges to avoid rescaling issues. +# Widths are determined using the equation given by Appourchaux+2014 for the width profile, after checking +# the the VIRGO/SPM widths are compatible with the relation. +# Parameters for that relation are: +# alfa=4.97 +# Gamma_alfa=4.65 +# Wdip=4646. # depth of the dip +# nu_dip=3083. +# Ddip=4.66 +ID_ref= Sun +Dnu_ref= 135.1 +epsilon_ref= 0.5 +numax_ref= 2900 +# Frequency (microHz) Height (ppm^2/microhz) Width +1250 0.01 6.43192518e-02 +1350 0.0125 9.26330330e-02 +1450 0.025 1.29391921e-01 +1550 0.05 1.75808932e-01 +1650 0.1 2.32846828e-01 +1750 0.15 3.01008096e-01 +1850 0.20 3.80065972e-01 +1957.4748 0.55633623 4.75700046e-01 +2093.5983 0.71080326 6.07296081e-01 +2228.8442 0.84916942 7.38656433e-01 +2362.8797 1.0309479 8.54018032e-01 +2496.3328 1.3676815 9.39915062e-01 +2629.8436 2.0930273 9.93255574e-01 +2764.3597 2.8720608 1.03191217e+00 +2899.2249 3.9032770 1.09915710e+00 +3033.9623 3.3750000 1.25782336e+00 +3168.9156 2.4766400 1.58287456e+00 +3303.8225 1.5351112 2.15522240e+00 +3439.3876 0.73280086 3.06024826e+00 +3575.2118 0.35220902 4.36666158e+00 +3711.6045 0.10741088 6.13045328e+00 +3848.5361 0.051894268 8.39132326e+00 +3984.6612 0.024985109 1.11537058e+01 +4180 0.0045 1.60742135e+01 +4280 0.00010 1.90595678e+01 +4380 0.00008 2.23830350e+01 +4480 0.00001 2.60640959e+01 +4580 0.000005 3.01242034e+01 +4680 0.000002 3.45866636e+01 +4780 0.00000001 3.94765257e+01 +4880 0.0 4.48204874e+01 +4980 0.0 5.06468218e+01 +5080 0.0 5.69853225e+01 +5180 0.0 6.38672643e+01 +5280 0.0 7.13253794e+01 \ No newline at end of file diff --git a/Configurations/templates/ExampleTemplatesRGB/Sun.template b/Configurations/templates/ExampleTemplatesRGB/Sun.template new file mode 100644 index 0000000..76a67f9 --- /dev/null +++ b/Configurations/templates/ExampleTemplatesRGB/Sun.template @@ -0,0 +1,52 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies and Heights of the Sun on VIRGO/SPM data and have been +# carefully extrapolated at the edges to avoid rescaling issues. +# Widths are determined using the equation given by Appourchaux+2014 for the width profile, after checking +# the the VIRGO/SPM widths are compatible with the relation. +# Parameters for that relation are: +# alfa=4.97 +# Gamma_alfa=4.65 +# Wdip=4646. # depth of the dip +# nu_dip=3083. +# Ddip=4.66 +ID_ref= Sun +Dnu_ref= 135.1 +epsilon_ref= 0.5 +numax_ref= 2900 +# Frequency (microHz) Height (ppm^2/microhz) Width +1250 0.01 6.43192518e-02 +1350 0.0125 9.26330330e-02 +1450 0.025 1.29391921e-01 +1550 0.05 1.75808932e-01 +1650 0.1 2.32846828e-01 +1750 0.15 3.01008096e-01 +1850 0.20 3.80065972e-01 +1957.4748 0.55633623 4.75700046e-01 +2093.5983 0.71080326 6.07296081e-01 +2228.8442 0.84916942 7.38656433e-01 +2362.8797 1.0309479 8.54018032e-01 +2496.3328 1.3676815 9.39915062e-01 +2629.8436 2.0930273 9.93255574e-01 +2764.3597 2.8720608 1.03191217e+00 +2899.2249 3.9032770 1.09915710e+00 +3033.9623 3.7507970 1.25782336e+00 +3168.9156 2.8629352 1.58287456e+00 +3303.8225 1.8167902 2.15522240e+00 +3439.3876 0.92533429 3.06024826e+00 +3575.2118 0.42467669 4.36666158e+00 +3711.6045 0.17490098 6.13045328e+00 +3848.5361 0.079882521 8.39132326e+00 +3984.6612 0.038872344 1.11537058e+01 +4180 0.005 1.60742135e+01 +4280 0.00012 1.90595678e+01 +4380 0.0001 2.23830350e+01 +4480 0.00002 2.60640959e+01 +4580 0.00001 3.01242034e+01 +4680 0.000005 3.45866636e+01 +4780 0.0000001 3.94765257e+01 +4880 0.0 4.48204874e+01 +4980 0.0 5.06468218e+01 +5080 0.0 5.69853225e+01 +5180 0.0 6.38672643e+01 +5280 0.0 7.13253794e+01 \ No newline at end of file diff --git a/Configurations/templates/KIC12069424.template b/Configurations/templates/KIC12069424.template new file mode 100644 index 0000000..1a7855e --- /dev/null +++ b/Configurations/templates/KIC12069424.template @@ -0,0 +1,89 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 12069424 +Dnu_ref= 103.110 +epsilon_ref= 0.487371 +numax_ref= 2188 +# Frequency (microHz) Height (ppm^2/microhz) Width +1250.0000 0.05000000 +1287.7378 0.43002206 0.81382075 +1391.6472 0.57919905 0.66843567 +1494.9822 1.0561653 0.76340052 +1598.7040 1.2720441 0.94761560 +1700.9117 1.8095614 1.0351044 +1802.3264 3.1660368 0.98478045 +1904.5894 4.6474355 0.99649416 +2007.5698 6.7184649 0.99950613 +2110.8952 8.7121034 1.0788852 +2214.2624 7.6455132 1.2322003 +2317.2959 4.8872829 1.5354940 +2420.9247 2.6154045 1.9713043 +2524.9409 1.0578662 2.9706241 +2629.3219 0.45623723 3.6817983 +2734.3085 0.22393687 4.9109655 +2839.1342 0.084068007 6.3972608 +2944.6692 0.041473324 7.1327241 +3048.5000 0.010000000 10.0000000 +1334.1481 0.62326858 0.74809166 +1437.7227 0.83951082 0.71105648 +1541.9739 1.5326199 0.84823175 +1644.9908 1.8440937 0.98725592 +1747.1738 2.6226760 1.0124610 +1849.0120 4.5863581 0.99053311 +1952.0236 6.7292735 0.99794255 +2055.4881 9.7313251 1.0361733 +2159.1390 12.627343 1.1507398 +2262.5176 11.072803 1.3743812 +2366.1802 7.0797880 1.7414257 +2470.2896 3.7891896 2.4481327 +2574.7077 1.5327583 3.3121289 +2679.4912 0.66107875 4.2705002 +2784.2952 0.32461789 5.6231937 +2890.0152 0.12177273 6.7655613 +2995.1098 0.060119340 7.4562630 +1279.5453 0.28319571 0.82705926 +1383.9922 0.38247189 0.67992343 +1487.7844 0.69652430 0.75737280 +1591.2323 0.83868864 0.93465404 +1694.0395 1.1919224 1.0292791 +1795.8284 2.0867683 0.98810557 +1898.3264 3.0624058 0.99586980 +2001.7400 4.4289445 0.99938307 +2105.3332 5.7391074 1.0744751 +2208.9378 5.0402307 1.2243813 +2312.4974 3.2178249 1.5215235 +2416.3217 1.7239335 1.9520526 +2520.5174 0.69726538 2.9286039 +2624.8247 0.30092180 3.6520736 +2730.0274 0.14755212 4.8608444 +2836.0081 0.055328129 6.3556133 +2942.1468 0.027332655 7.1162705 +3046.5000 0.00500000 10.0000000 +1427.44580 0.09032 0.26850 +1530.34899 0.14734 0.31533 +1632.59738 0.11641 0.75956 +1735.49943 0.17580 0.96066 +1838.42350 0.30536 0.93168 +1941.60645 0.45811 0.87509 +2045.80496 0.61920 0.96463 +2149.91448 1.00981 0.83507 +2253.57221 0.84437 1.02475 +2357.48682 0.51441 1.20489 +2461.82262 0.22659 1.81916 +2566.53772 0.09991 2.60490 +2670.15963 0.04100 3.89962 +2774.16196 0.02104 5.11377 \ No newline at end of file diff --git a/Configurations/templates/KIC6508366.template b/Configurations/templates/KIC6508366.template new file mode 100644 index 0000000..ebc5d79 --- /dev/null +++ b/Configurations/templates/KIC6508366.template @@ -0,0 +1,46 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 6508366 +Dnu_ref= 51.710 +epsilon_ref= 0.022204 +numax_ref= 958 +# Frequency (microHz) Height (ppm^2/microhz) Width +200 0 0 +300 0.0 0.01 +450 0.0 0.1 +500 0.1 1 +574.211213 0.956106 2.331931 +623.707598 1.304467 3.136829 +672.116690 1.660000 3.965965 +723.126931 2.549866 3.106037 +775.434589 2.594849 3.732892 +827.370343 3.431094 3.576065 +878.288164 3.580425 4.374449 +929.729778 3.967231 4.926549 +980.017032 3.303785 5.336770 +1030.741093 3.644398 4.656605 +1083.550904 2.646549 4.684982 +1136.079425 1.840297 5.607985 +1189.281388 1.473601 5.698278 +1241.864266 0.888522 7.416039 +1293.541001 0.679662 6.257754 +1346.927289 0.289377 9.366288 +1401.538352 0.202276 12.039031 +1450 0.025 12 +1500 0 12.5 +1700 0.0 13 +2000 0 13 \ No newline at end of file diff --git a/Configurations/templates/KIC6603624.template b/Configurations/templates/KIC6603624.template new file mode 100644 index 0000000..60d6d90 --- /dev/null +++ b/Configurations/templates/KIC6603624.template @@ -0,0 +1,43 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 6603624 +Dnu_ref= 109.857 +epsilon_ref= 0.557387 +numax_ref= 2384 +# Frequency (microHz) Height (ppm^2/microhz) Width + 800 0 0 + 1100 0.0 0.01 + 1400 0.0 0.1 + 1450 0.1 1 + 1489.1728 0.283973 1.698628 + 1599.8405 0.657434 1.011868 + 1710.0378 1.090890 0.824111 + 1819.6997 1.552000 0.731073 + 1928.3631 3.232826 0.743003 + 2037.0401 5.463944 0.719518 + 2146.7698 10.231499 0.655283 + 2256.9944 14.309373 0.663758 + 2367.0763 16.345826 0.705399 + 2477.0440 10.391128 0.882568 + 2587.5176 5.450967 1.228132 + 2698.1700 1.654923 1.966378 + 2808.8019 0.544198 3.935861 + 2919.9099 0.339245 3.837100 + 2950 0.05 3.9 + 3000 0 4 + 3300 0.0 4 + 3500 0 4 \ No newline at end of file diff --git a/Configurations/templates/KIC8006161.template b/Configurations/templates/KIC8006161.template new file mode 100644 index 0000000..a56a36f --- /dev/null +++ b/Configurations/templates/KIC8006161.template @@ -0,0 +1,43 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 8006161 +Dnu_ref= 149.335 +epsilon_ref= 0.573047 +numax_ref= 3575 +# Frequency (microHz) Height (ppm^2/microhz) Width +1700 0 0 +2000 0 0.001 +2380 0 0.01 +2420 0.05 0.1 +2476.471576 0.365960 0.458251 +2626.300759 0.481088 0.628713 +2774.762726 0.591634 0.558896 +2922.850751 1.199748 0.635218 +3071.160114 1.310842 0.747353 +3220.114571 1.646194 0.835082 +3369.571707 1.968325 0.931728 +3518.589809 2.132052 1.063449 +3667.829881 1.799756 1.373817 +3817.562845 1.028350 1.969723 +3967.224246 0.599356 2.709537 +4117.965392 0.289545 3.412587 +4268.707402 0.195861 5.089781 +4419.532330 0.105445 5.297795 +4450 0.01 5.5 +4500 0 6 +4800 0 6.5 +5100 0 6.5 \ No newline at end of file diff --git a/Configurations/templates/KIC8379927.template b/Configurations/templates/KIC8379927.template new file mode 100644 index 0000000..dae5976 --- /dev/null +++ b/Configurations/templates/KIC8379927.template @@ -0,0 +1,44 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 8379927 +Dnu_ref= 120.125 +epsilon_ref= 0.364227 +numax_ref= 2795 +# Frequency (microHz) Height (ppm^2/microhz) Width +1600.00000 0.00000 0.00000 +1650.00000 0.00000 0.00000 +1700.00000 0.01000 0.10000 +1728.01169 0.10540 1.27502 +1847.38684 0.17238 1.16395 +1967.94988 0.28711 1.33716 +2087.86222 0.39026 1.75644 +2206.66104 0.56023 1.85124 +2324.43943 0.83228 1.81334 +2443.13208 1.11118 1.88539 +2563.57580 1.37510 2.03115 +2683.95554 1.48699 2.22804 +2804.48468 1.30823 2.43151 +2924.42603 0.94932 2.88386 +3044.80576 0.60403 3.62174 +3165.45271 0.34807 4.57470 +3286.65229 0.20147 5.79057 +3408.90504 0.12262 6.52212 +3530.65228 0.06776 7.45899 +3651.09760 0.04346 9.05888 +3700.00000 0.01000 9.00000 +3750.00000 0.00000 9.00000 +3800.00000 0.00000 9.00000 \ No newline at end of file diff --git a/Configurations/templates/KIC9139151.template b/Configurations/templates/KIC9139151.template new file mode 100644 index 0000000..90c475b --- /dev/null +++ b/Configurations/templates/KIC9139151.template @@ -0,0 +1,42 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 9139151 +Dnu_ref= 116.833 +epsilon_ref= 0.437526 +numax_ref= 2690 +# Frequency (microHz) Height (ppm^2/microhz) Width +1200 0 0 +1500 0 0.01 +1700 0 0.1 +1750 0.01 0.2 +1804.413362 0.293786 0.800381 +1922.136431 0.748746 1.151596 +2038.802023 0.821746 1.306285 +2154.390082 1.131956 1.625482 +2269.370471 1.233440 1.960192 +2385.768961 2.064410 1.910053 +2502.807041 2.637234 1.885688 +2620.221839 2.991658 1.930596 +2737.485949 2.798988 1.983772 +2854.895018 1.804130 2.663070 +2972.517880 1.078238 3.067332 +3089.807611 0.614841 3.550705 +3207.309069 0.324916 5.224397 +3250 0.05 5.5 +3300 0 6 +3500 0 6.5 +3800 0 6.5 \ No newline at end of file diff --git a/Configurations/templates/KIC9139163.template b/Configurations/templates/KIC9139163.template new file mode 100644 index 0000000..74ae1a7 --- /dev/null +++ b/Configurations/templates/KIC9139163.template @@ -0,0 +1,49 @@ +# Template file used to compute the height and width profile of simulated stars. +# The values of this table is rescaled by the code so to match numax_star, Dnu_star and epsilon_star +# The table was generated using fitted frequencies, Heights and Widths +# carefully extrapolated at the edges to avoid rescaling issues. +# This template is part of a serie of MS templates created using the full Kepler data upon those criteria: +# (1) High HNR, (2) No missing quarters, (3) Coverage of the whole Teff and numax range of MS stars, (3) Balance between F and G type +# Note that the only template that iniitally had fitted l=3 is for 16 Cyg A (KIC 12069424) +# Variant of theses templates exist also for RGB stars +# KIC Kp numax. Type Gamma_at_numax. Teff +# 6508366 8.97 958 Flike 5.22 6331 +# 9139163 8.33 1730 Flike 5.28 6400. +# 6603624 9.09 2384 Simple 0.56 5674. +# 9139151 9.18 2690 Simple 1.99 6302. +# 8379927 6.96 2795 Simple 2.43 6067. +# 12069424 5.95 2188 Simple 1. 5825 +# 8006161 7.36 3575 Simple 1.17 5488. +ID_ref= 9139163 +Dnu_ref= 81.185 +epsilon_ref= 0.051119 +numax_ref= 1730 +# Frequency (microHz) Height (ppm^2/microhz) Width +500 0 0 +700 0 0 +900 0 0.1 +950 0.04 0.5 +985.845981 0.473371 1.048264 +1065.001980 0.589323 2.382962 +1143.125391 0.785571 1.810511 +1221.435610 0.811306 3.712531 +1301.879049 1.191346 2.789458 +1383.386958 1.272304 3.399297 +1464.743333 1.585765 4.242145 +1544.839515 1.956003 4.240859 +1624.515817 1.880729 4.789467 +1704.394261 1.735299 5.434701 +1785.810713 1.852104 4.439329 +1867.683125 1.264250 5.460151 +1949.770903 1.151659 5.047525 +2033.225780 0.705964 6.822597 +2115.173056 0.627376 7.128204 +2195.985462 0.386741 8.156124 +2278.037767 0.325197 7.057531 +2360.613096 0.135285 11.871817 +2444.786602 0.156932 7.883257 +2529.527136 0.074993 5.396720 +2550 0.001 10 +2600 0.0 10 +2900 0.0 10 +3300 0 10 \ No newline at end of file diff --git a/Data_examples/.DS_Store b/Data_examples/.DS_Store new file mode 100755 index 0000000..4636702 Binary files /dev/null and b/Data_examples/.DS_Store differ diff --git a/Data_examples/M0.799.zip b/Data_examples/M0.799.zip new file mode 100755 index 0000000..ecc00bf Binary files /dev/null and b/Data_examples/M0.799.zip differ diff --git a/Data_examples/M0.915.zip b/Data_examples/M0.915.zip new file mode 100755 index 0000000..4788d63 Binary files /dev/null and b/Data_examples/M0.915.zip differ diff --git a/Data_examples/M1.038.zip b/Data_examples/M1.038.zip new file mode 100755 index 0000000..0d0eb69 Binary files /dev/null and b/Data_examples/M1.038.zip differ diff --git a/Data_examples/M1.096.zip b/Data_examples/M1.096.zip new file mode 100755 index 0000000..4339a1e Binary files /dev/null and b/Data_examples/M1.096.zip differ diff --git a/Data_examples/idl_prg/ascii2sav.pro b/Data_examples/idl_prg/ascii2sav.pro new file mode 100755 index 0000000..b64ebd9 --- /dev/null +++ b/Data_examples/idl_prg/ascii2sav.pro @@ -0,0 +1,31 @@ +@read_ascii_kepler +pro ascii2sav, dir + + Nraws=1d6 + Ncols=3 + + files=file_search(dir + '*.ascii') + + print, 'Looking for ascii files into the directory:' + print, ' ' + dir + for i=long(0), n_elements(files)-1 do begin + b=byte(files[i]) + pslash=max(where(b eq 47)) ; symbol '/' (linux format) + if pslash[0] eq -1 then begin + pslash=max(where(b eq 47)) ; symbol '\' (windows format) + endif + pdot=max(where(b eq 46)) ; symbol '.' + + print, '['+strtrim(i,2) + '/' + strtrim(n_elements(files),2) +']' + ' Converting file: ' + strtrim(b[pslash+1:*], 2) + ' into ' + strtrim(b[0:pdot-1], 2) + '.sav' + + r=read_Ncolumns(files[i], Ncols, Nraws) + freq=reform(r[0,*]) + spec_reg=reform(r[1,*]) + model=reform(r[2,*]) + + + save, freq, spec_reg, model, filename=strtrim(b[0:pdot-1], 2) + '.sav' + ;stop + endfor + +end diff --git a/Data_examples/idl_prg/idl_plots_spectra.pro b/Data_examples/idl_prg/idl_plots_spectra.pro new file mode 100755 index 0000000..89bd1f0 --- /dev/null +++ b/Data_examples/idl_prg/idl_plots_spectra.pro @@ -0,0 +1,123 @@ +; Small program that look for ascii files in a given directory (dir) +; then make a plot of the spectra with proper smoothing and informations +@read_txt +pro idl_plots_spectra + + do_plots=1 + save_new=0 ; To save the data in a text file (useful because the first Harvey profile is not incorporated in my model) + + ;dir_params='/home/obenomar/Dropbox/Temporary/Spectra-Simulator-Cpp_Wgrid/Data_examples/M0.799/' + ;dir_spectra='/home/obenomar/Dropbox/Temporary/Spectra-Simulator-Cpp_Wgrid/Data_examples/M0.799/Spectra_ascii/' + + ;dir_params='/home/obenomar/Dropbox/Temporary/Spectra-Simulator-Cpp_Wgrid/Data_examples/M0.915/' + ;dir_spectra='/home/obenomar/Dropbox/Temporary/Spectra-Simulator-Cpp_Wgrid/Data_examples/M0.915/Spectra_ascii/' + + ; Linux: + ;dir_params='/home/obenomar/Dropbox/Temporary/Spectra-Simulator-Cpp_Wgrid/Data_examples/M1.038/' + ;dir_spectra='/home/obenomar/Dropbox/Temporary/Spectra-Simulator-Cpp_Wgrid/Data_examples/M1.038/Spectra_ascii/' + ;dir_out_ascii='/home/obenomar/Dropbox/Temporary/Spectra-Simulator-Cpp_Wgrid/Data_examples/M1.038/data_rasha/' + + ; Mac + dir_params='/Users/obenomar/Dropbox/Temporary/Spectra-Simulator-Cpp_Wgrid/Data_examples/M1.038/' + dir_spectra='/Users/obenomar/Dropbox/Temporary/Spectra-Simulator-Cpp_Wgrid/Data_examples/M1.038/Spectra_ascii/' + ;dir_out_ascii='/Users/obenomar/Dropbox/Temporary/Spectra-Simulator-Cpp_Wgrid/Data_examples/M1.038/For_Rasha_samples/data_rasha/' + + ;dir_params='/home/obenomar/Dropbox/Temporary/Spectra-Simulator-Cpp_Wgrid/Data_examples/M1.096/' + ;dir_spectra='/home/obenomar/Dropbox/Temporary/Spectra-Simulator-Cpp_Wgrid/Data_examples/M1.096/Spectra_ascii/' + + + dir_out=dir_params + 'Spectra_frames/' + spawn, 'mkdir ' + dir_out + spawn, 'mkdir ' + dir_out + 'eps/' + + file_params=file_search(dir_params + 'models_sample*.txt') + if file_params eq '' then begin + print, 'file with model parameters not found. ' + print, 'Searched syntax: ' + dir_params + 'models_sample*.txt' + print, 'Check the filename/directory' + print, 'The program will stop now' + stop + endif + Ncols=61 + Nlines=100. + skip=2 + d=read_txt(file_params,Ncols, Nlines, skip) + + Nlines_params=n_elements(d[0,*]) + col_logg=15 + col_numax=32 + col_dnu=31 + col_mass=1 + col_age=6 + + Nlines_max=1000000. + skip=1 + for i=0, Nlines_params-1 do begin + fspec=dir_spectra + file_syntax(i, '', '.ascii') + s=read_txt(fspec,2, Nlines_max, skip) + + H0=1000. + tc=(1.d-6)/(5.d-6) + p=2. + Low_Harvey=H0/(1d + (s[0,*]*tc)^p) + P1=randomu(seed, n_elements(Low_Harvey)) + P2=randomu(seed, n_elements(Low_Harvey)) + s[1,*]=s[1,*] + Low_Harvey*(P1^2 + P2^2)/2. + + resol=s[0,1]-s[0,0] + scoef=d[col_dnu,i]*0.10/resol + + if do_plots eq 1 then begin + set_plot,'ps' + file_out=dir_out + 'frame' + string(i, f='(i05)') + device, filename=file_out + '.eps', $ + /encap, /inch, /color;, xsize=10, ysize=10 + minx=1 + maxx=8000. + miny=0.001 + maxy=1000. + plot, s[0,*], s[1,*], /xst, /ylog, /xlog, ytitle='Power ' + textoidl('(ppm^2/\mu' + 'Hz)'), $ + xtitle='Frequency ' + textoidl('(\mu'+'Hz)'), charsize=1.75, $ + yr=[miny, maxy], xr=[minx, maxx], color=fsc_color('Black'), background=fsc_color('White'), /nodata, charthick=2, thick=2 + oplot, s[0,*], s[1,*], color=fsc_color('Grey') + oplot, s[0,*], smooth(s[1,*], scoef, /edge_truncate), color=fsc_color('Black') + xyouts, 0.20, 0.30, 'Surface Gravity log(g)='+ string(d[col_logg,i], format='(f5.2)'),/normal, color=fsc_color('Black'), charsize=1.25, charthick=2 + xyouts, 0.20, 0.25, 'Star Age ='+ string(d[col_age,i], format='(f5.2)') + ' (Gyrs)',/normal, color=fsc_color('Black'), charsize=1.25, charthick=2 + xyouts, 0.20, 0.20, 'Stellar Mass ='+ string(d[col_Mass,i], format='(f5.2)') + textoidl('M_{Sun}'),/normal, color=fsc_color('Black'), charsize=1.25, charthick=2 + ;wait, 0.1 + device, /close + + spawn, 'convert -density 150x150 -flatten ' + $ + file_out + '.eps ' + file_out + '.jpeg' + + spawn, 'mv ' + file_out + '.eps ' + dir_out + 'eps/' + endif + if save_new eq 1 then begin + file_out_ascii= dir_out_ascii + string(i, f='(i05)') + '.ascii' + openw, 3, file_out_ascii + printf, 3, '# freq (microHz) spectrum (ppm2/microHz)' + for j=long(0), n_elements(s[0,*])-1 do begin + str=string(s[0,j], format='(f20.9)') + string(s[1,j], format='(f20.9)') + printf, 3, str + endfor + close,3 + endif + endfor + + ;spawn, 'ffmpeg -r 20 -i ' + dir_out + 'frame%05d.jpeg ' + $ + ; ' -qscale 1 ' + dir_out + 'movie.mp4' + +end + +function file_syntax, in, core, extension + + if in lt 10 then file_out=core+'000000'+strtrim(long(in),1)+ extension + if in ge 10 AND in lt 100 then file_out=core+'00000'+strtrim(long(in),1)+ extension + if in ge 100 AND in lt 1000 then file_out=core+'0000'+strtrim(long(in),1)+ extension + if in ge 1000 AND in lt 10000 then file_out=core+'000'+strtrim(long(in),1)+ extension + if in ge 10000 AND in lt 100000 then file_out=core+'00'+strtrim(long(in),1)+ extension + if in ge 100000 AND in lt 1000000 then file_out=core+'0'+strtrim(long(in),1)+ extension + if in ge 1000000 then file_out=core +strtrim(long(in),1)+'.sav' + +return, file_out +end diff --git a/Data_examples/idl_prg/read_txt.pro b/Data_examples/idl_prg/read_txt.pro new file mode 100755 index 0000000..6c9d492 --- /dev/null +++ b/Data_examples/idl_prg/read_txt.pro @@ -0,0 +1,35 @@ +; N: number of columns +; K: maximum number of lines +function read_txt, file,Ncols, Nlines, skip + +;skip=0 + +if n_elements(skip) eq 0 then skip=1 ; defaut we skip one line only + +openr, 3, file + + param=dblarr(Nlines,Ncols) + a='' + i=0d + ii=0d + while EOF(3) ne 1 do begin + if i lt skip then readf,3,format='(q)' + if i ge skip then begin + readf,3,a ; read data + uu=strsplit(a) + N_uu=N_elements(uu)-1 + for j=0,N_uu-1 do begin + param(ii,j)=float(strmid(a,uu(j),uu(j+1)-uu(j)-1)) + endfor + param(ii, N_uu)= float(strmid(a,uu(N_uu),uu(N_uu)-uu(N_uu-1)+ 10)) + ii=ii+1 + endif + i=i+1 + endwhile + +close,3 +param=transpose(param[0:ii-1,*]) + +return,param +end + diff --git a/README.md b/README.md index 53384c5..288e5bb 100644 --- a/README.md +++ b/README.md @@ -1,207 +1,490 @@ # Spectra-Simulator-C + Spectrum Simulator in C++. It is intended to create synthetic spectra that follows the chi(2,2) noise statistics. +Tests for MacOS and Linux: + [![CMake](https://github.com/OthmanB/Spectra-Simulator-C/actions/workflows/cmake_UbuntuMac.yml/badge.svg?branch=beta)](https://github.com/OthmanB/Spectra-Simulator-C/actions/workflows/cmake_UbuntuMac.yml) + + ### Requirements ### -* python3 with numpy and scipy + * gnuplot-iostream (provided) -* Eigen Library (provided) + +* Eigen Library + * Boost Library + * openMP + * g++ compiler +* cmake (optional) + + + ### How to compile? ### -``` -g++ -O3 -I eigen -fopenmp -lutil -lboost_iostreams -lboost_system -lboost_filesystem -lgsl -lgslcblas artificial_spectrum.cpp io_star_params.cpp build_lorentzian.cpp function_rot.cpp plots_diags.cpp iterative_artificial_spectrum.cpp models_database.cpp random_JB.cpp string_handler.cpp noise_models.cpp -o ./sim.out -``` + + +The best way to compile is to use cmake as it will handle automatically user-specific configuration and platforms. To do so, you need to: + + + +1. Make a **build** directory + + -or without openmp (MacOS compiler does not support openmp): -``` -g++ -O3 -I eigen -lutil -lboost_iostreams -lboost_system -lboost_filesystem -lgsl -lgslcblas artificial_spectrum.cpp io_star_params.cpp build_lorentzian.cpp function_rot.cpp plots_diags.cpp iterative_artificial_spectrum.cpp models_database.cpp random_JB.cpp string_handler.cpp noise_models.cpp -o ./sim.out -``` +2. Enter in this new directory and run **cmake ..** -If you use your own installation of the Eigen Library, replace ```-I eigen``` by the proper path to it. For example if you used the ```sudo apt-get install libeigen3-dev``` (e.g. in Ubuntu): + + +3. Transfer the created binary executable **specsim** file into the base directory of the program. -```g++ -O3 -I/usr/include/eigen3 -lutil -lboost_iostreams -lboost_system -lboost_filesystem -lgsl -lgslcblas artificial_spectrum.cpp io_star_params.cpp build_lorentzian.cpp function_rot.cpp plots_diags.cpp iterative_artificial_spectrum.cpp models_database.cpp random_JB.cpp string_handler.cpp noise_models.cpp -o ./sim.out``` - ### The program ### + + The Program 'Spectrum Simulator' creates synthetic spectra for asteroseismology. + It is composed of different functions and procedures, enumerated and explained here. -* Main procedures - - 1. **iterative_artificial_spectrum.cpp** - * Create an ensemble of artificial spectra by reading a configuration file (main.cfg). These are for the moment created using a random generator (uniform). - You can create up to 9 999 999 spectra with a single execution and formated properly (with 0s in front of the name). - * Two possible way of using the code: - - parameter erase_old_files=1: Any older summary file (Combinations.txt) will be OVERWRITTEN (data loss then). If the Data subdirectories are not - files of same name as those processed (e.g. 0000010.ascii) will also be overwritten. If this mode is used, it is STRONGLY recommended to empty the - Data directory and its subdirectories before running the program. - - parameter erase_old_files=0: Any older summary file (Combinations.txt) will be APPENDED (data kept). Any data within the Data subdirectories will - not be erased, ASSUMING that their ID number is matching the ID number within the Combinations.txt file. - - 2. **artificial_spectrum.cpp** - * Create a single artificial spectra by reading a configuration files (modes_tmp.cfg and noise_tmp.cfg) - provided into the Configuration directory. See these files to learn about their syntax - * Save the final spectrum parameters (noise parameters and mode parameters) into files within the Spectra_info directory - * Save the model parameters into a [identifier].ASCII file. Allows a easy access to the configuration - * Data are saved into the Data directory - - 3. **models_database.cpp** - * Different kind of models that can be used in order to generate the modes_tmp.cfg and noise_tmp.cfg files + + +### 1. iterative_artificial_spectrum.cpp + + + +- Create an ensemble of artificial spectra by reading a configuration file (main.cfg). These are currently created using a random generator (uniform). + +- You can create up to 9,999,999 spectra with a single execution and format them properly (with leading zeros in the name). + +- There are two possible ways of using the code: + + - If `erase_old_files=1` parameter is used: Any older summary file (Combinations.txt) will be overwritten (data loss). If the Data subdirectories contain files with the same names as those processed (e.g., 0000010.ascii), they will also be overwritten. If this mode is used, it is strongly recommended to empty the Data directory and its subdirectories before running the program. + + + + - If `erase_old_files=0` parameter is used: Any older summary file (Combinations.txt) will be appended (data kept). Any data within the Data subdirectories will not be erased, assuming that their ID number matches the ID number within the Combinations.txt file. + + + +2. **artificial_spectrum.cpp** + +* Create a single artificial spectra by reading a configuration files (modes_tmp.cfg and noise_tmp.cfg) + +provided into the Configuration directory. See these files to learn about their syntax + +* Save the final spectrum parameters (noise parameters and mode parameters) into files within the Spectra_info directory + +* Save the model parameters into a [identifier].ASCII file. Allows a easy access to the configuration + +* Data are saved into the Data directory + + + +3. **models_database.cpp and model_database_grid.cpp** + +* Different kind of models that can be used in order to generate the modes_tmp.cfg and noise_tmp.cfg files + +* The grid model database is exclusively for grid. The other one contains what is available for both grid and random case + + ### Main Dependences ### - - * **build_lorentzian.cpp**: is in charge of creating the lorentzian modes - * **plot_diags.cpp**: is in charge of graphical plots. Possible only if gnuplot is installed (MacOS may have issues to generate plots) - * **write_star_params.cpp** contains function intended to read/write - - summary configuration files in the format [identifier].ASCII - - configuration files for the modes (modes.cfg file) - - configuration files for the noise (noise.cfg file) - - other formating subroutines for processing/converting strings and numbers (strsplit(), strtrim(),...) - * **BETA** python external functions **bump_DP.py** and **solver_mm.py** that handle the generation of the model for evolved stars - THIS WILL NEED TO BE IMPLEMENTED IN PURE C++ AT LATER STAGE FOR EFFICIENCY REASONS + +* **build_lorentzian.cpp**: is in charge of creating the lorentzian modes + +* **plot_diags.cpp**: is in charge of graphical plots. Possible only if gnuplot is installed (MacOS may have issues to generate plots) + +* **write_star_params.cpp** contains function intended to read/write + +- summary configuration files in the format [identifier].ASCII + +- configuration files for the modes (modes.cfg file) + +- configuration files for the noise (noise.cfg file) + +- other formating subroutines for processing/converting strings and numbers (strsplit(), strtrim(),...) + +* **bump_DP.cpp** and **solver_mm.cpp** that handle the generation of the model for evolved stars + + ### The model ### + + As a general description, + * Each mode is described by a lorentzian function, with parameters: - - H(n,l,m) : The mode maximum Height (ppm^2/uHz) - - nu(n,l,m): The mode central frequency (uHz) - - W(n,l,m) : The mode width (uHz) + + +- H(n,l,m) : The mode maximum Height (ppm^2/uHz) + +- nu(n,l,m): The mode central frequency (uHz) + +- W(n,l,m) : The mode width (uHz) + + * The noise is described using two Harvey-like profile + White noise, with parameters: + The Harvey-like profiles have for parameters: - - H : Maximum noise level (ppm^2/uHz) - - tau: Characteristic timescale (of convection) (kilo-sec) - - p : Characteristic power law (of convection) (no unit) - - N0 : White noise level (ppm^2/uHz). + +- H : Maximum noise level (ppm^2/uHz) + +- tau: Characteristic timescale (of convection) (kilo-sec) + +- p : Characteristic power law (of convection) (no unit) + +- N0 : White noise level (ppm^2/uHz). + + ### Assumptions for the model 'generate_cfg_asymptotic_act_asym_Hgauss' ### -**Noise:** - Follows the general description given above. + + +**Noise:** + +Follows the general description given above. + + **Modes:** + + * Heights: Variations of heights are modeled by gaussian (a more accurate description would be a Voigt Profile) - - ```H(n,l) = V(l).maxH exp( -0.5 * (nu - numax)^2/sigma^2), with sigma= 2.Dnu``` - - ```H(m | n,l) = Constant``` - - ```V(0) = 1, V(1) = 1.5, V(2) =0.5 , V(3) =0.07.``` This is the solar values (and verified empirically for Main sequence stars) + + +- ```H(n,l) = V(l).maxH exp( -0.5 * (nu - numax)^2/sigma^2), with sigma= 2.Dnu``` + +- ```H(m | n,l) = Constant``` + +- ```V(0) = 1, V(1) = 1.5, V(2) =0.5 , V(3) =0.07.``` This is the solar values (and verified empirically for Main sequence stars) + + * Widths: Modes widths are assumed to be constant (a more accurate description would use the Eq.1 of Appourchaux et al. 2014 (http://adsabs.harvard.edu/abs/2014A%26A...566A..20A) - - ```W(n,l,m) = Constant = G``` - + +- ```W(n,l,m) = Constant = G``` + * Frequency: Strictly follow the asymptotic relation for the p modes: - - ```nu(n,l) = ( n + epsilon + l/2) Dnu - l(l+1)D0``` - + +- ```nu(n,l) = ( n + epsilon + l/2) Dnu - l(l+1)D0``` + * Rotation and inclination: Different effect on rotation are incoroporated, - - a1: rotational splitting as ```nu(n,l, m) = nu(n,l) + m a1``` - - eta: Centrifugal force (fixed parameter) as, - ''' - eta=(4./3)*PI * a1^2 / (G * rho_sun) * (Dnu_sun/Dnu)^2 - ''' - This because the star density if determined at <1% (from theory) by rho=rho_sun * (Dnu_sun/Dnu)^2 - - - a3: Effect of latitudinal rotation on the frequencies. See Gizon & Solanki 2004 - 'Measuring Stellar Differential rotation with asteroseismology' for further details - - alfa and b: Describes (empirically) the frequency shift due to stellar activity - The functional form is: ```b.nu^alfa``` - alfa~3 - b<<1 - - beta: Lorentzian asymmetry expressed as defined by Eq.8 of Gizon.L, CEAB 2006 (http://adsabs.harvard.edu/abs/2006CEAB...30....1G) - - - i : Stellar inclination, assumed constant for all modes (this is a very weak assumption and thus, very reasonable) - See Gizon & Solanki 2003 (http://adsabs.harvard.edu/abs/2003ApJ...589.1009G) for further details +- a1: rotational splitting as ```nu(n,l, m) = nu(n,l) + m a1``` + +- eta: Centrifugal force (fixed parameter) as, + +''' + +eta=(4./3)*PI * a1^2 / (G * rho_sun) * (Deltanu_sun/Deltanu)^2 + +''' + +This because the star density if determined at <1% (from theory) by rho=rho_sun * (Deltanu_sun/Deltanu)^2 + + + +- a3: Effect of latitudinal rotation on the frequencies. See Gizon & Solanki 2004 + +'Measuring Stellar Differential rotation with asteroseismology' for further details + +- alfa and b: Describes (empirically) the frequency shift due to stellar activity + +The functional form is: ```\(b.\nu^alpha \)``` + +\(alpha ~ 3 \) + +b<<1 + +- beta: Lorentzian asymmetry expressed as defined by Eq.8 of Gizon.L, CEAB 2006 (http://adsabs.harvard.edu/abs/2006CEAB...30....1G) + +- i : Stellar inclination, assumed constant for all modes (this is a very weak assumption and thus, very reasonable) + +See Gizon & Solanki 2003 (http://adsabs.harvard.edu/abs/2003ApJ...589.1009G) for further details + + + + +### Assumptions for the model 'generate_cfg_from_refstar_HWscaled' ### + + + +This is a generic model that use knowledge of a reference star and of stellar models in order to determine a relastic + +simulated power spectrum + + + +**Noise:** + +- 2 Harvey profiles + White noise + + + +**Modes:** + +* Heights and Widths profiles: Are given by a reference star. All of the parameters of that reference star should be in the path: [program dir]/Configurations/ref_spectra.params + +The default reference star is the Sun. BEWARE THAT THE REFERENCE STAR CONTAINS ENOUGH MODES + + + +* Widths: Modes widths are rescaled using a reparametrisation of the frequency axis ```\(nu\)``` into ```\(\frac{{\nu - \nu_{\text{max}}}}{{\Delta\nu}}\)```. Then we simply rescale the y-axis such as + +```\(W(n,l) = W_ref(n,l) * W_{maxHNR}/W_ref{maxHNR}\)```. This is similar to what was proposed in Figures of Appourchaux et al. 2014 (http://adsabs.harvard.edu/abs/2014A%26A...566A..20A) + +* Frequency: + +Use a set of model parameters contained into ```[program dir]/external/MESA_grid/models.params``` For test-purpose, you can use instead models_samples.params (save the original and rename 'models_samples.params' in 'models.params') + +* Rotation: The first order effect of rotation is incoroporated, + +* a1: rotational splitting as nu(n,l, m) = nu(n,l) + m a1 + +* Lorentzian asymmetry: No asymmetry + + + +* i : Stellar inclination, assumed constant for all modes (this is a very weak assumption and thus, very reasonable) + +See Gizon & Solanki 2003 (http://adsabs.harvard.edu/abs/2003ApJ...589.1009G) for further details + + + + + +### Assumptions for the model 'generate_cfg_from_refstar_HWscaled_GRANscaled' ### + + + +This is a generic model that use knowledge of a reference star and of stellar models in order to determine a relastic + +simulated power spectrum. + +By allowing to use a granulation noise that scales with nu_{max}, this model is drastically reducing the parameter space. + +Typically, 1 to 2 free parameters for the noise are required. Instead of 6 (assuming the N0 is normalized to 1 in both cases). + + + +**Noise:** + +- 1 Harvey profile that has its parameters scaled with nu_{max}. Indeed, several studies, both theoretical and observational (e.g. Mathur et al. 2011, 741:119) suggest a strong correlation of the granulation noise properties with nu_{max}. P, the maximum power of the Harvey profile scales approximately with (nu_{max})^(-2). tau, the timescale of convection scales with (nu_{max})^(-1). From this, the user of this code can set the functionnal form for P and tau as follow, + +```P = Ap * (nu_{max})^(Bp) + Cp``` and ```tau=At * (nu_{max})^(Bt) + Ct``` + +With the following recommendation: + +```Ap=At=1``` + +```Bp between 1.8 and 2.2``` + +```Bt between 0.85 and 1.15``` + +```Cp=Ct=1``` + +- White noise + + + +Modes (same as for 'generate_cfg_from_refstar_HWscaled') : + +- Heights and Widths profiles: Are given by a reference star. All of the parameters of that reference star should be in the path: [program dir]/Configurations/ref_spectra.params + +The default reference star is the Sun. BEWARE THAT THE REFERENCE STAR CONTAINS ENOUGH MODES + + + +- Widths: Modes widths are rescaled using a reparametrisation of the frequency axis ```\(nu\)``` into ```\(\frac{{\nu - \nu_{\text{max}}}}{{\Delta\nu}}\)```. Then we simply rescale the y-axis such as + +\(W(n,l) = W_ref(n,l) * W_{maxHNR}/W_ref{maxHNR}\). This is similar to what was proposed in Figures of Appourchaux et al. 2014 (http://adsabs.harvard.edu/abs/2014A%26A...566A..20A) + +- Frequency: + +Use a set of model parameters contained into [program dir]/external/MESA_grid/models.params + +For test-purpose, you can use instead models_samples.params (save the original and rename 'models_samples.params' in 'models.params') + +- Rotation: The first order effect of rotation is incoroporated, + +- a1: rotational splitting as nu(n,l, m) = nu(n,l) + m a1 + +- Lorentzian asymmetry: No asymmetry + +- i : Stellar inclination, assumed constant for all modes (this is a very weak assumption and thus, very reasonable) + +See Gizon & Solanki 2003 (http://adsabs.harvard.edu/abs/2003ApJ...589.1009G) for further details + + + + ### Assumptions for the model 'asymptotic_mm_v1' ### -**Noise:** + + +**Noise:** + + Follows the general description given above + + **Modes:** -* Heights: - - Variations of heights are rescaled using Solar Heights for l=0 modes - - - Due to the fact that we impose Inertia(l=1).Width(l=1) = Inertia(l=0).Width(l=0), the Heights of l=1 mixed modes are function of sqrt(1-ksi) and scale with the height of l=0 modes, modulo the bolometric visbility. - This is the result from discussion with Kevin Belkacem. Note however that this assumption might only be valid for not-too-evolved RGB stars and for subgiants (see Belkacem+2018, 'Angular momentum redistribution by mixed modes in evolved low-mass stars') - - - Bolometric visibilities in height are assumed to be V(l=0) = 1, V(l=1) = 1.5, V(l=2) =0.5 , V(l=3) =0.07 + + +* Heights: + +- Variations of heights are rescaled using Solar Heights for l=0 modes + +- Due to the fact that we impose Inertia(l=1).Width(l=1) = Inertia(l=0).Width(l=0), the Heights of l=1 mixed modes are function of sqrt(1-ksi) and scale with the height of l=0 modes, modulo the bolometric visbility. + +This is the result from discussion with Kevin Belkacem. Note however that this assumption might only be valid for not-too-evolved RGB stars and for subgiants (see Belkacem+2018, 'Angular momentum redistribution by mixed modes in evolved low-mass stars') + +- Bolometric visibilities in height are assumed to be V(l=0) = 1, V(l=1) = 1.5, V(l=2) =0.5 , V(l=3) =0.07 + + * Widths: - - l=0, 2, 3 modes are rescaled using the synthetic relation from Appourchaux+2014 applied to the solar profile - - l=1 mixed modes are defined using the ksi function, scaled using l=0 modes. Thus l=0 modes fixes the upper limit of the mode width - -* Frequency: - - l=0,2,3 Strictly follow the asymptotic relation for the p modes: - ```nu(n,l) = ( n + epsilon + l/2) Dnu - l(l+1)D0``` - - The frequencies of the l=1 modes follow exactly the asymptotitc relation for the mixed modes - -* Rotation and inclination: *Splitting and inclination implementation* - - The splitting assumptions: - * We generate a population of stars with a surface rotation randomly distributed (truncated Gaussian) between 30 and 90 days. - - * For non-mixed modes, the splitting is assumed to be equal to the surface rotation (solid body rotation) - - * For l=1 mixed modes, the splitting account for the degree of mixture of the modes using the ksi function and assuming a core-to-envelope rotation ratio function of the log(g) dependence that follows the Fig 13 of Deheuvels et al. 2014 for 3.55 <=log(g)< 3.8825 (early RGB and SG regime). - - * It is unity (solid body) if log(g)>=3.8825 (MS star). - - * It is constant for log(g) < 3.55 (evolved RGB), at a value witch is in continuity with Fig 13 of Deheuvels et al. 2014. The flat ratio in agreement with Charlote Gehand's results. BUT THIS IS OBVIOUSLY NOT VALID FOR CLUMP STARS. - - * The core-to-envelope rotation contrasts from Deheuvels et al. 2014 are parametrised with a 2nd order polynomial fit, function of log(g). log(g) is determined are a pure function of the temperature: ```g = (numax/numax_sun) ( Teff / Teff_sun)^0.5```. Uncertainties on the log(g) are fixed to 0.1. Randomisation of the results are also performed using the uncertainties of the polynomial fit, but in a simplified manner. As shown in the code (bump_DP.py), weuse the quadratic mean of the relative error for stars B-E, not accounting for the uncertainties given by stars A and F. The relative uncertainty on the ratio is then fixed to 44.8%. - - * The stellar inclination follows an isotropic distribution (uniform in cos(i)). - + +- l=0, 2, 3 modes are rescaled using the synthetic relation from Appourchaux+2014 applied to the solar profile + +- l=1 mixed modes are defined using the ksi function, scaled using l=0 modes. Thus l=0 modes fixes the upper limit of the mode width + +* Frequency: + +- l=0,2,3 Strictly follow the asymptotic relation for the p modes: + +```nu(n,l) = ( n + epsilon + l/2) Dnu - l(l+1)D0``` + +- The frequencies of the l=1 modes follow exactly the asymptotitc relation for the mixed modes + +* Rotation and inclination: *Splitting and inclination implementation* + +- The splitting assumptions: + +* We generate a population of stars with a surface rotation randomly distributed (truncated Gaussian) between 30 and 90 days. + + + +* For non-mixed modes, the splitting is assumed to be equal to the surface rotation (solid body rotation) + + + +* For l=1 mixed modes, the splitting account for the degree of mixture of the modes using the ksi function and assuming a core-to-envelope rotation ratio function of the log(g) dependence that follows the Fig 13 of Deheuvels et al. 2014 for 3.55 <=log(g)< 3.8825 (early RGB and SG regime). + +* It is unity (solid body) if log(g)>=3.8825 (MS star). + + + +* It is constant for log(g) < 3.55 (evolved RGB), at a value witch is in continuity with Fig 13 of Deheuvels et al. 2014. The flat ratio in agreement with Charlote Gehand's results. BUT THIS IS OBVIOUSLY NOT VALID FOR CLUMP STARS. + +* The core-to-envelope rotation contrasts from Deheuvels et al. 2014 are parametrised with a 2nd order polynomial fit, function of log(g). log(g) is determined are a pure function of the temperature: ```g = (numax/numax_sun) ( Teff / Teff_sun)^0.5```. Uncertainties on the log(g) are fixed to 0.1. Randomisation of the results are also performed using the uncertainties of the polynomial fit, but in a simplified manner. As shown in the code (bump_DP.py), weuse the quadratic mean of the relative error for stars B-E, not accounting for the uncertainties given by stars A and F. The relative uncertainty on the ratio is then fixed to 44.8%. + +* The stellar inclination follows an isotropic distribution (uniform in cos(i)). + **Noise:*** - White noise only. No frequency-dependent noise so far implemented. - + +White noise only. No frequency-dependent noise so far implemented. + + ### Assumptions for the model 'asymptotic_mm_v2' ### + + Same as for asymptotic_mm_v1 but with the following changes: + + **Modes:** -* Rotation and inclination: *Splitting and inclination implementation* - - The splitting assumptions: - * The user can generate a population of stars with a surface rotation uniformly and randomly distributed two values (min and max). - * For l=1 mixed modes, instead of imposing some relationship with the evolution of the star regarding the core-to-envelope ratio, we let the user define two bundaries for an uniform sampling of the core-to-envelope ratio (see main.cfg.v2 for a configuration example) - + + +* Rotation and inclination: *Splitting and inclination implementation* + +- The splitting assumptions: + +* The user can generate a population of stars with a surface rotation uniformly and randomly distributed two values (min and max). + +* For l=1 mixed modes, instead of imposing some relationship with the evolution of the star regarding the core-to-envelope ratio, we let the user define two bundaries for an uniform sampling of the core-to-envelope ratio (see main.cfg.v2 for a configuration example) + ### Assumptions for the model 'asymptotic_mm_v3' ### + + Same as for asymptotic_mm_v1 but with the following changes: + + **Modes:** -* Rotation and inclination: *Splitting and inclination implementation* - - The splitting assumptions: - * The user can generate a population of stars with a surface rotation uniformly and randomly distributed two values (min and max). - * For l=1 mixed modes, instead of imposing some relationship with the evolution of the star regarding the core rotation rate, we let the user define two bundaries for an uniform sampling of the core rotation rate (see main.cfg.v3 for a configuration example) - + + +* Rotation and inclination: *Splitting and inclination implementation* + +- The splitting assumptions: + +* The user can generate a population of stars with a surface rotation uniformly and randomly distributed two values (min and max). + +* For l=1 mixed modes, instead of imposing some relationship with the evolution of the star regarding the core rotation rate, we let the user define two bundaries for an uniform sampling of the core rotation rate (see main.cfg.v3 for a configuration example) + +### Assumptions for the models 'asymptotic_mm_freeDp_numaxspread_curvepmodes_v1' / 'asymptotic_mm_freeDp_numaxspread_curvepmodes_v2' / 'asymptotic_mm_freeDp_numaxspread_curvepmodes_v3' ### + + + +Same as for asymptotic_mm_v1, asymptotic_mm_v2 and asymptotic_mm_v3 but with the following changes: + + + +**Modes:** + + + +* Period Spacing: Uniformly generated over a range defined by the user into the cfg file + +* Possibility to introduce some extra random spreads on numax + + ### QUICK START ### - 1. Compile and verfity that the python3 program is properly installed with its dependencies - 2. check the configuration of the main.cfg file. The default setup should be good to go, but check: - * The binary variable handling the outputs at the end of the main.cfg file - * forest type parameters. The default is ```random 4``` (for test purpose mostly). If you need ```100``` models, created in a row, you need to set ```random 100```. - 3. run: ```./sim.out``` - 4. Check the outputs in the Data directory. Check also the Combinations.txt file generated in the Configuration directory. - - + + +1. Compile and verfity that the python3 program is properly installed with its dependencies + +2. check the configuration of the main.cfg file. The default setup should be good to go, but check: + +* The binary variable handling the outputs at the end of the main.cfg file + +* forest type parameters. The default is ```random 4``` (for test purpose mostly). If you need ```100``` models, created in a row, you need to set ```random 100```. + +3. run: ```./sim.out``` + +4. Check the outputs in the Data directory. Check also the Combinations.txt file generated in the Configuration directory. + ### Contribution guidelines ### -No external contribution is expected. This project is constantly improved, so please contact me if you need to see some worthy functionnality implemented. + + +No external contribution is expected. This project is constantly improved, so please contact me if you need to see some worthy functionnality implemented. + + ### Who do I talk to? ### + + * Owner: Othman Benomar (NAOJ Research Fellow, Visiting Scientist at NYU Abu Dhabi) -* Contact: othman.benomar@nao.ac.jp ob19@nyu.edu +* Contact: othman.benomar@nao.ac.jp ob19@nyu.edu diff --git a/acoefs.cpp b/acoefs.cpp new file mode 100644 index 0000000..24732ab --- /dev/null +++ b/acoefs.cpp @@ -0,0 +1,257 @@ +/** + * @file acoefs.cpp + * @brief Functions that handle the acoefficients + * + * This file contains functions that handle the acoefficients. It can create nu(n,l,m) from acoeffs for l<=3, j=1,2,3,4,5,6. It can also decompose into aj coefficients. + */ +#include +#include +#include +#include +#include +#include + +using Eigen::VectorXd; +using Eigen::VectorXi; +using Eigen::MatrixXd; + + +long double Hslm_Ritzoller1991(const int s,const int l, const int m){ + const int L=l*(l+1); + long double Hsm; + + if (s == 0){ + Hsm=1; + } + if(s == 1){ + Hsm=2*m; + } + if(s == 2){ + Hsm=6*pow(m,2) - 2*L; + } + if (s == 3){ + Hsm=20*pow(m,3) - 4*(3*L-1)*m; + } + if (s == 4){ + Hsm=70*pow(m,4) - 10*(6*L-5)*pow(m,2) + 6*L*(L-2); + } + if (s == 5){ + Hsm=252*pow(m,5)-140*(2*L-3)*pow(m,3) + (20*L*(3*L-10) + 48)*m; + } + if (s == 6){ + Hsm=924*pow(m,6) - 420*pow(m,4) * (3*L-7) + 84*pow(m,2) *(5*pow(L,2) - 25*L + 14) - 20*L*(pow(L,2) - 8*L + 12); + } + if (s > 6){ + std::cout << "Warning in Hslm_Ritzoller1991: s>6 not supported" << std::endl; + return -1; + } + return Hsm; +} + +long double Pslm(const int s,const int l,const int m){ + // These take the Ritzoller1991 coefficients and normalise them by Pslm(l)=l + // As per specified in Schou, JCD, Thompson 1994 + // so basically we solved Pslm(l)=l=c*Hslm and find c + long double H, c, Ps; + + if (s==0){ + Ps=l; + } + if (s==1){ + Ps=m; + } + if (s==2){ + if (l>0){ + Ps=(3*pow(m,2) -l*(l+1))/(2*l-1); + } else{ + Ps=0; + } + } + if (s==3){ + if (l>1){ + Ps=(5*pow(m,3) - (3*l*(l+1)-1)*m)/((l-1)*(2*l-1)); + } else{ + Ps=0; + } + } + if (s==4){ + H=(35*pow(m,4) - 5*(6*l*(l+1)-5)*pow(m,2)) + 3*l*(l+1)*(l*(l+1)-2); + c=2*(l-1)*(2*l-1)*(2*l-3); + if (c !=0){ + Ps=H/c; + } else{ + Ps=0; + } + } + if (s==5){ + H=Hslm_Ritzoller1991(s,l,m); + c=8*(4*pow(l,4) - 20*pow(l,3) + 35*pow(l,2) - 25*l + 6); + if (c !=0){ + Ps=H/c; + } else{ + Ps=0; + } + } + if (s==6){ + H=Hslm_Ritzoller1991(s,l,m); + c=64*pow(l,5) - 480*pow(l,4) + 1360*pow(l,3) - 1800*pow(l,2) + 1096*l - 240; + if (c !=0){ + Ps=H/c; + } else{ + Ps=0; + } + } + if (s>6){ + std::cout << "Warning in Pslm(): s>6 not supported" << std::endl; + std::cout << "The program will return 0" << std::endl; + return 0; + } + return Ps; +} + +// Symetric Splitting Tnlm +VectorXd Tnlm(VectorXd& nu_nlm, const int l){ + VectorXd tnlm; + if (l != 0 && l<=3){ + tnlm.resize(l); + } + switch (l){ + case 1: + //Tn11 + tnlm[0]=(nu_nlm[2]- nu_nlm[0])/2; + break; + case 2: + //Tn21 + tnlm[0]=(nu_nlm[3]-nu_nlm[1])/2; + //Tn22 + tnlm[1]=(nu_nlm[4]-nu_nlm[0])/4; + break; + case 3: + //Tn31 + tnlm[0]=(nu_nlm[4]-nu_nlm[2])/2; + //Tn32 + tnlm[1]=(nu_nlm[5]-nu_nlm[1])/4; + //Tn33 + tnlm[2]=(nu_nlm[6]-nu_nlm[0])/6; + break; + default: + tnlm.resize(1); + tnlm[0]=0; + std::cout << " Warning in Tnlm: Please enter a value of 03){ + std::cout << "an for l>3 not implemented. Should you need it, better to solve this algorithmically using equation A3-6 from Schou, JCD, Thompson, 1994" << std::endl; + std::cout << "The program will return 0 for all coefficients" << std::endl; + return aj; + } + snlm=Snlm(nu_nls, l); + tnlm=Tnlm(nu_nls, l); + switch (l){ + case 1: + aj[0]=tnlm[0]; //(nu_nls[2]- nu_nls[0])/2; + aj[1]=snlm[0]/3; //((nu_nls[0] + nu_nls[2])/2 - nu_nls[1])/3; + break; + case 2: + // a1 Term: + Num_a1=tnlm[0]+4*tnlm[1]; //T21-2*T22*Pslm(3,2,1)/Pslm(3,2,2); + Den_a1=5; //Pslm(1,2,1) - Pslm(3,2,1)*Pslm(1,2,2)/Pslm(3,2,2); + aj[0]=Num_a1/Den_a1; + // a2 term: + aj[1]=(2*snlm[1] - snlm[0])/7; + // a3 term: + aj[2]=(tnlm[1] - tnlm[0])/5; + // a4 term: + aj[3]=(snlm[1] - 4*snlm[0])/70.; + break; + case 3: + // Odds terms + // We have Tnlm = Sum [a_{2j-1} P_{2j-1}] with j=[1,M/2] + // a1 term: + aj[0]=tnlm[0]/14 + 2*tnlm[1]/7 + 9*tnlm[2]/14; + // a3 term: + aj[2]=-tnlm[0]/9 - 2*tnlm[1]/9 + tnlm[2]/3; + // a5 term: + aj[4] = tnlm[2]/42 + 5*tnlm[0]/126 - 4*tnlm[1]/63; + // Even Terms + // We have Snlm = Sum[a2j (P2j - P2j(0))] with j=[1, M/2] + // a2 term: + aj[1]=(-15*snlm[0] + 25*snlm[2])/126; + // a4 term: + aj[3]=13*(snlm[0] - 7*snlm[1] + 3*snlm[2])/1001; + // a6 term: + aj[5]=(15*snlm[0] - 6*snlm[1] + snlm[2])/1386; + break; + default: + std::cout << "Error eval_acoefs(): l must be between 1 and 3. Your input is l=" << l << std::endl; + std::cout << "The program will exit now" << std::endl; + exit(EXIT_FAILURE); + break; + } + return aj; +} diff --git a/acoefs.h b/acoefs.h new file mode 100644 index 0000000..ef8a9fa --- /dev/null +++ b/acoefs.h @@ -0,0 +1,95 @@ +/** + * @file acoefs.h + * @brief Functions that handle the acoefficients + * @date 16 Nov 2021 + * @author Othman Benomar + * + * This file contains functions that handle the acoefficients. It can create nu(n,l,m) from acoeffs for l<=3, j=1,2,3,4,5,6. It can also decompose into aj coefficients. + */ + + +#pragma once +#include +#include +#include +#include +#include +#include + +using Eigen::VectorXd; +using Eigen::VectorXi; +using Eigen::MatrixXd; + +/** + * @brief Calculates the Hslm term using the Ritzoller1991 formula. + * + * @param s The s index of the coefficient. + * @param l The degree l of the coefficient. + * @param m The azimuthal order m of the coefficient. + * @return The calculated Hslm term. + */ +long double Hslm_Ritzoller1991(const int s,const int l, const int m); + + +/** + * @brief Calculates the Pslm polynomials. + * + * These coefficients take the Ritzoller1991 coefficients and normalize them by Pslm(l)=l as specified in Schou, JCD, Thompson 1994. + * + * @param s The s index of the coefficient. + * @param l The degree l of the coefficient. + * @param m The azimuthal order m of the coefficient. + * @return The calculated Polynomial Pslm. + */ +long double Pslm(const int s,const int l,const int m); + +/** + * @brief Symmetric Splitting Tnlm. + * + * This function calculates the Tnlm splitting using the given nu_nlm frequencies and the specified l value. + * + * @param nu_nlm The nu_nlm coefficients. + * @param l The degree l of the coefficient. + * @return The calculated Tnlm coefficients. + */ +VectorXd Tnlm(VectorXd& nu_nlm, const int l); + +/** + * @brief Anti-Symmetric Splitting Snlm. + * + * This function calculates the Snlm splitting using the given nu_nlm frequencies and the specified l value. + * + * @param nu_nlm The nu_nlm coefficients. + * @param l The degree of the coefficient. + * @return The calculated Snlm coefficients. + */ +VectorXd Snlm(VectorXd& nu_nlm, const int l); + +/** + * @brief Compute frequencies nu_nlm from a series of a-coefficients and provided the central frequency without splitting nunl0 + * + * This function computes frequencies nu_nlm from a series of a-coefficients and the central frequency nunl0. It uses the Legendre polynomials Pslm to calculate the nu_nlm. + * + * @param nunl0 The central frequency without splitting. + * @param l The degree l of the coefficient. + * @param a1 The a1 coefficient. + * @param a2 The a2 coefficient. + * @param a3 The a3 coefficient. + * @param a4 The a4 coefficient. + * @param a5 The a5 coefficient. + * @param a6 The a6 coefficient. + * @return The calculated nu_nlm frequencies. + */ +VectorXd nunlm_from_acoefs(const long double nunl0, const int l, + const long double a1, const long double a2, const long double a3, const long double a4, const long double a5, const long double a6); + +/** + * @brief Evaluate the analytical a-coefficients for a given mode (n,l) + * + * This function takes the splitted frequencies of a given mode (n,l) and determines the analytical a-coefficients from a1 to a6 for l<=3. It uses the Snlm and Tnlm functions to calculate the Snlm and Tnlm coefficients. + * + * @param l The degree l of the mode. + * @param nu_nls The splitted frequencies of the mode. + * @return The calculated a-coefficients. + */ +VectorXd eval_acoefs(const int l, VectorXd& nu_nls); diff --git a/artificial_spectrum.cpp b/artificial_spectrum.cpp index b65556b..cdbb70e 100644 --- a/artificial_spectrum.cpp +++ b/artificial_spectrum.cpp @@ -1,34 +1,41 @@ -/* - * artificial_spectrum.cpp +/** + * @file artificial_spectrum.cpp * * Contains all kind of methods that is producing * a single artificial spectrum * - * Created on: 05 May 2016 - * Author: obenomar + * @date 05 May 2016 + * @author obenomar */ #include #include #include -# include +#include +#include "io_star_params.h" #include -//# include #include #include #include "artificial_spectrum.h" #include "noise_models.h" +#ifdef MACOS + #include +#endif +#ifdef LINUX + #include +#endif using Eigen::VectorXd; using Eigen::VectorXi; using Eigen::MatrixXd; -void artificial_spectrum_act_asym(const double Tobs, const double Cadence, const double Nspectra, const long Nrealisation, const std::string dir_core, const std::string identifier, const bool doplots, const bool write_inmodel){ +void artificial_spectrum_act_asym(const double Tobs, const double Cadence, const double Nspectra, const long Nrealisation, const std::string dir_core, const std::string identifier, const bool doplots, const bool write_inmodel, const std::string data_path){ // General variables Data_Nd data_modes, data_noise; std::string file_in_modes=dir_core + "Configurations/tmp/modes_tmp.cfg"; std::string file_in_noise=dir_core + "Configurations/tmp/noise_tmp.cfg"; + std::string dir_common_template = dir_core + "Configurations/common_modelfile/"; std::string fileout_spectrum; std::string fileout_params; std::string fileout_plot; @@ -39,12 +46,21 @@ void artificial_spectrum_act_asym(const double Tobs, const double Cadence, const double df, Delta, scoef1, scoef2; VectorXd freq; - // Initialize the random generators - boost::mt19937 *rng = new boost::mt19937(); - rng->seed(time(NULL)); - - boost::normal_distribution<> distribution(0, 1); - boost::variate_generator< boost::mt19937, boost::normal_distribution<> > dist(*rng, distribution); + // Initialize the random generator + boost::mt19937 rng; + #ifdef MACOS + mach_timebase_info_data_t timebase; + mach_timebase_info(&timebase); + uint64_t now = mach_absolute_time(); + rng.seed(now * timebase.numer / timebase.denom); + #elif LINUX + timespec now; + clock_gettime(CLOCK_MONOTONIC, &now); + rng.seed(now.tv_sec * 1000000000ULL + now.tv_nsec); + #endif + // Generate some random numbers + boost::normal_distribution<> distribution(0, 1); + boost::variate_generator > dist(rng, distribution); // Variable of the models @@ -57,7 +73,7 @@ void artificial_spectrum_act_asym(const double Tobs, const double Cadence, const data_noise=read_data_ascii_Ncols(file_in_noise, delimiter, verbose_data); df=1e6/(Tobs * 86400.); - Delta=1e6/Cadence/2; + Delta=1e6/Cadence; // /2 Ndata=Delta/df; freq.setLinSpaced(Ndata, 0, Delta); @@ -98,13 +114,13 @@ void artificial_spectrum_act_asym(const double Tobs, const double Cadence, const input_spec_model=spec_noise + spec_modes; // Making Nrealisation of noise - fileout_params=dir_core + "Data/Spectra_info/" + strtrim(identifier) + ".in"; + fileout_params= data_path + "/Spectra_info/" + strtrim(identifier) + ".in"; spec_reg.resize(Ndata); stmp.resize(Ndata); //const int Nrealisation=2; for (int nr=0; nr distribution(0, 1); + boost::variate_generator > dist(rng, distribution); - dir_core="/home/obenomar/Dropbox/Temporary/Cpp-Spec-Sim/"; - identifier="0000"; - artificial_spectrum_act_asym(Tobs, Cadence, dir_core, identifier); - //std::cout << "Hello" << std::endl; + + // Variable of the models + int l; + double fc_l, H_l, gamma_l, f_s, a2, a3, b, alfa, beta_asym, angle_l, H, tau, p; + double F1, F2; + VectorXd ratios, s_mode, spec_modes, spec_noise, s_noise, ones, input_spec_model, spec_reg, stmp; + + data_modes=read_data_ascii_Ncols(file_in_modes, delimiter, verbose_data); + data_noise=read_data_ascii_Ncols(file_in_noise, delimiter, verbose_data); + + df=1e6/(Tobs * 86400.); + Delta=1e6/Cadence/2; + Ndata=Delta/df; + freq.setLinSpaced(Ndata, 0, Delta); + + // Build the sum of modes... + std::cout << " - Generating model of p modes..." << std::endl; + spec_modes.setZero(Ndata); + scoef1=0; + for(int i=0; i distribution(0, 1); + boost::variate_generator > dist(rng, distribution); + + // Variable of the models + int l; + double fc_l, H_l, gamma_l, a1, eta0, a3, beta_asym, angle_l, H, tau, p, epsilon_nl; + double F1, F2; + VectorXd ratios, thetas(2), s_mode, mode_range(2),spec_modes, spec_noise, s_noise, ones, input_spec_model, freq, spec_reg, stmp; + + mode_range << -1, -1; // Initialise the range to invalid values + + data_modes=read_data_ascii_Ncols(file_in_modes, delimiter, verbose_data); + data_noise=read_data_ascii_Ncols(file_in_noise, delimiter, verbose_data); + + df=1e6/(Tobs * 86400.); + Delta=1e6/Cadence/2; + Ndata=Delta/df; + freq.setLinSpaced(Ndata, 0, Delta); + + // Build the sum of modes... + std::cout << " - Generating model of p modes..." << std::endl; + spec_modes.setZero(Ndata); + scoef1=0; + for(int i=0; i distribution(0, 1); + boost::variate_generator > dist(rng, distribution); + + // Variable of the models + int l; + double fc_l, H_l, gamma_l, a1, a2, a3, a4,a5,a6, beta_asym, angle_l, H, tau, p, eta0; + double F1, F2; + VectorXd ratios, s_mode, mode_range(2),spec_modes, spec_noise, s_noise, ones, input_spec_model, freq, spec_reg, stmp; + + mode_range << -1, -1; // Initialise the range to invalid values + + data_modes=read_data_ascii_Ncols(file_in_modes, delimiter, verbose_data); + data_noise=read_data_ascii_Ncols(file_in_noise, delimiter, verbose_data); + + df=1e6/(Tobs * 86400.); + Delta=1e6/Cadence/2; + Ndata=Delta/df; + freq.setLinSpaced(Ndata, 0, Delta); + + // Build the sum of modes... + std::cout << " - Generating model of p modes..." << std::endl; + spec_modes.setZero(Ndata); + scoef1=0; + for(int i=0; i #include @@ -9,5 +18,80 @@ #include "build_lorentzian.h" #include "plots_diags.h" #include -//void artificial_spectrum_act_asym(double Tobs, double Cadence, double Nspectra, std::string dir_core, std::string identifier, bool doplots, bool write_inmodel); -void artificial_spectrum_act_asym(const double Tobs, const double Cadence, const double Nspectra, const long Nrealisation, const std::string dir_core, const std::string identifier, const bool doplots, const bool write_inmodel); \ No newline at end of file + + +/** + * @brief Generate an artificial spectrum with asymmetric Lorentzian modes + * + * This function generates an artificial spectrum with asymmetric Lorentzian modes based on the given parameters. + * + * @param Tobs The observation time in days. + * @param Cadence The cadence of the observations in seconds. + * @param Nspectra Defines how much averaged spectra we should use. This changes the noise statistics to khi(2,2*Nspectra) + * @param Nrealisation The number of realizations of noise to generate. + * @param dir_core The directory path for the core files. + * @param identifier The identifier for the spectrum. + * @param doplots Flag indicating whether to generate plots of the spectrum. + * @param write_inmodel Flag indicating whether to write the file with model information. + */ +void artificial_spectrum_act_asym(const double Tobs, const double Cadence, const double Nspectra, const long Nrealisation, const std::string dir_core, const std::string identifier, const bool doplots, const bool write_inmodel, const std::string data_path); + +/** + * @brief Generate an artificial spectrum with a1, a2, a3 coefficient and asymetrical Lorentzian modes + * + * This function generates an artificial spectrum with a1, a2, a3 coefficient and asymetrical Lorentzian modes based on the given parameters. + * + * @param Tobs The observation time in days. + * @param Cadence The cadence of the observations in seconds. + * @param Nspectra Defines how much averaged spectra we should use. This changes the noise statistics to khi(2,2*Nspectra) + * @param Nrealisation The number of realizations of noise to generate. + * @param dir_core The directory path for the core files. + * @param identifier The identifier for the spectrum. + * @param doplots Flag indicating whether to generate plots of the spectrum. + * @param write_inmodel Flag indicating whether to write the file with model information. + */ +void artificial_spectrum_a1a2a3asym(const double Tobs, const double Cadence, const double Nspectra, const long Nrealisation, const std::string dir_core, const std::string identifier, const bool doplots, const bool write_inmodel, const std::string data_path); + +/** + * @brief Generate an artificial spectrum with a1, a3 coefficient and Alm activity and asymetrical Lorentzian modes + * + * This function generates an artificial spectrum with a1, a2, a3 coefficient and Alm activity and asymetrical Lorentzian modes based on the given parameters. + * + * @param Tobs The observation time in days. + * @param Cadence The cadence of the observations in seconds. + * @param Nspectra Defines how much averaged spectra we should use. This changes the noise statistics to khi(2,2*Nspectra) + * @param Nrealisation The number of realizations of noise to generate. + * @param dir_core The directory path for the core files. + * @param identifier The identifier for the spectrum. + * @param doplots Flag indicating whether to generate plots of the spectrum. + * @param write_inmodel Flag indicating whether to write the file with model information. + * @param domodelfiles Flag indicating whether to write .model files suitable for the TAMCMC code + * @param limit_data_range Flag indicating wheter to truncate the spectrum by focusing in the region with modes. Save space if on. But not suitable for ML algorithms. + * @param modelname If domodelfiles is true, use this to define the name of the model that has to be fitted. + */ +void artificial_spectrum_a1Alma3(const double Tobs, const double Cadence, const double Nspectra, const long Nrealisation, + const std::string dir_core, const std::string identifier, const bool doplots, const bool write_inmodel, + const bool domodelfiles, const bool limit_data_range, const std::string modelname, const std::string data_path); + +/** + * @brief Generate an artificial spectrum with aj coefficient with j={1,2,3,4,5,6} and asymetrical Lorentzian modes + * + * This function generates an artificial spectrum with a1, a2, a3 coefficient and Alm activity and asymetrical Lorentzian modes based on the given parameters. + * + * @param Tobs The observation time in days. + * @param Cadence The cadence of the observations in seconds. + * @param Nspectra Defines how much averaged spectra we should use. This changes the noise statistics to khi(2,2*Nspectra) + * @param Nrealisation The number of realizations of noise to generate. + * @param dir_core The directory path for the core files. + * @param identifier The identifier for the spectrum. + * @param doplots Flag indicating whether to generate plots of the spectrum. + * @param write_inmodel Flag indicating whether to write the file with model information. + * @param domodelfiles Flag indicating whether to write .model files suitable for the TAMCMC code + * @param limit_data_range Flag indicating wheter to truncate the spectrum by focusing in the region with modes. Save space if on. But not suitable for ML algorithms. + * @param modelname If domodelfiles is true, use this to define the name of the model that has to be fitted. + * @param noise_modelname Defines the noise model that has to be used. By default, it is "harvey_1985" + * @param data_path Defines the location of the outputs. Must be an existing directory with the correct sub-structure + */ +void artificial_spectrum_aj(const double Tobs, const double Cadence, const double Nspectra, const long Nrealisation, + const std::string dir_core, const std::string identifier, const bool doplots, const bool write_inmodel, + const bool domodelfiles, const bool limit_data_range, const std::string modelname, const std::string data_path, const std::string noise_modelname="harvey_1985"); \ No newline at end of file diff --git a/build_lorentzian.cpp b/build_lorentzian.cpp index ec32918..41ab687 100644 --- a/build_lorentzian.cpp +++ b/build_lorentzian.cpp @@ -1,55 +1,225 @@ -/* - * build_lorentzian.cpp +/** + * @file build_lorentzian.cpp + * @brief Contains the implementation of all of the Lorentzian function used to generate spectrum. + * + * This file provides the implementation of the Lorentzian mode with asymmetry and splitting based on the given parameters. * - * Created on: 22 Feb 2016 - * Author: obenomar + * @date 22 Feb 2016 + * @author obenomar */ #include #include +#include "build_lorentzian.h" #include #include - +#include "external/Alm/Alm_cpp/activity.h" +#include "acoefs.h" using Eigen::VectorXd; +using Eigen::VectorXi; + + + +VectorXd build_l_mode_a1l_etaa3(const VectorXd& x_l, const double H_l, const double fc_l, const double f_s1, const double f_s2, const double eta0, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V){ + /* + * This model IS WITHOUT THE ASSUMPTION S11=S22. It includes: + * - Asymetry of Lorentzian asym + * - splitting a1(l=1) and a1(l=2). ASSUMES a1(l=3) = (a1(1) + a1(2))/2. + * - an Asphericity parameter eta + * - latitudinal effect a3(l=2) only. We consider a3(l=3)=0 + */ + const long Nxl=x_l.size(); + VectorXd profile(Nxl), tmp(Nxl), tmp2(Nxl), result(Nxl), asymetry(Nxl); + double f_s; + + result.setZero(); + for(int m=-l; m<=l; m++){ + if(l != 0){ + if(l == 1){ + f_s=f_s1; + } + if(l == 2){ + f_s=f_s2; + } + if(l == 3){ + f_s=(f_s1 + f_s2)/2.; // APPROXIMATION + } + profile=(x_l - tmp.setConstant(fc_l*(1. + eta0*pow(f_s*1e-6,2)*Qlm(l,m)) + m*f_s + Pslm(3,l,m)*a3)).array().square(); + profile=4*profile/pow(gamma_l,2); + } else{ + profile=(x_l - tmp.setConstant(fc_l)).array().square(); + profile=4*profile/pow(gamma_l,2); + } + if(asym == 0){ //Model with no asymetry + result=result+ H_l*V(m+l)* ((tmp.setConstant(1) + profile)).cwiseInverse(); + } else{ + tmp.setConstant(1); + asymetry=(tmp + asym*(x_l/fc_l - tmp)).array().square() + (tmp2.setConstant(0.5*gamma_l*asym/fc_l)).array().square(); + result=result+ H_l*V(m+l)*asymetry.cwiseProduct(((tmp.setConstant(1) + profile)).cwiseInverse()); + } + } + + return result; +} + +VectorXd build_l_mode_a1l_a2a3(const VectorXd& x_l, const double H_l, const double fc_l, const double f_s1, const double f_s2, const double a2, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V){ + /* + * This model IS WITHOUT THE ASSUMPTION S11=S22. It includes: + * - Asymetry of Lorentzian asym + * - splitting a1(l=1) and a1(l=2). ASSUMES a1(l=3) = (a1(1) + a1(2))/2. + * - an Asphericity parameter eta + * - latitudinal effect a3(l=2) only. We consider a3(l=3)=0 + */ + const long Nxl=x_l.size(); + VectorXd profile(Nxl), tmp(Nxl), tmp2(Nxl), result(Nxl), asymetry(Nxl); + double f_s, a2_terms; + + result.setZero(); + for(int m=-l; m<=l; m++){ + if(l != 0){ + a2_terms=Pslm(2,l,m)*a2; + if(l == 1){ + f_s=f_s1; + } + if(l == 2){ + f_s=f_s2; + } + if(l == 3){ + f_s=(f_s1 + f_s2)/2.; // APPROXIMATION + } + profile=(x_l - tmp.setConstant(fc_l + m*f_s + a2_terms + Pslm(3,l,m)*a3)).array().square(); // a1=f_s , a2 and a3 coefficients + profile=4*profile/pow(gamma_l,2); + } else{ + profile=(x_l - tmp.setConstant(fc_l)).array().square(); + profile=4*profile/pow(gamma_l,2); + } + if(asym == 0){ //Model with no asymetry + result=result+ H_l*V(m+l)* ((tmp.setConstant(1) + profile)).cwiseInverse(); + } else{ + tmp.setConstant(1); + asymetry=(tmp + asym*(x_l/fc_l - tmp)).array().square() + (tmp2.setConstant(0.5*gamma_l*asym/fc_l)).array().square(); + result=result+ H_l*V(m+l)*asymetry.cwiseProduct(((tmp.setConstant(1) + profile)).cwiseInverse()); + } + } + + return result; +} -VectorXd build_l_mode_a1etaa3_simu(const VectorXd x_l, double H_l, double fc_l, double f_s, double eta, double a3, double gamma_l, const int l, VectorXd V){ +VectorXd build_l_mode_a1etaa3(const VectorXd& x_l, const double H_l, const double fc_l, const double f_s, const double eta0, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V){ /* * This model includes: + * - Asymetry of Lorentzian asym * - splitting a1 - * - a second order effect eta, independent from the frequency (identified to the centrifugal force if no magnetic field effect) + * - an Asphericity parameter eta * - latitudinal effect a3 */ - const long Nxl=x_l.size(); - VectorXd profile(Nxl), tmp(Nxl), result(Nxl); - double Qlm, clm; + VectorXd profile(Nxl), tmp(Nxl), tmp2(Nxl), result(Nxl), asymetry(Nxl); result.setZero(); for(int m=-l; m<=l; m++){ if(l != 0){ - Qlm=(l*(l+1) - 3*pow(m,2))/((2*l - 1)*(2*l + 3)); // accounting for a2 - if(l == 1){ + /*if(l == 1){ clm=m; // a3 for l=1 } if(l == 2){ clm=(5*pow(m,3) - 17*m)/3.; // a3 for l=2 } if(l == 3){ - clm=0; // a3 NOT YET IMPLEMENTED FOR l=3 + clm=(pow(m,3)-7*m)/2; // a3 implemented on 30/04/2021 } - profile=(x_l - tmp.setConstant(fc_l*(1. + eta*Qlm) + m*f_s + clm*a3)).array().square(); + */ + profile=(x_l - tmp.setConstant(fc_l*(1. + eta0*pow(f_s*1e-6,2)*Qlm(l,m)) + m*f_s + Pslm(3,l,m)*a3)).array().square(); profile=4*profile/pow(gamma_l,2); } else{ profile=(x_l - tmp.setConstant(fc_l)).array().square(); profile=4*profile/pow(gamma_l,2); } - result=result+ H_l*V(m+l)* ((tmp.setConstant(1) + profile)).cwiseInverse(); + if(asym == 0){ //Model with no asymetry + result=result+ H_l*V(m+l)* ((tmp.setConstant(1) + profile)).cwiseInverse(); + } else{ + tmp.setConstant(1); + asymetry=(tmp + asym*(x_l/fc_l - tmp)).array().square() + (tmp2.setConstant(0.5*gamma_l*asym/fc_l)).array().square(); + result=result+ H_l*V(m+l)*asymetry.cwiseProduct(((tmp.setConstant(1) + profile)).cwiseInverse()); + } } return result; } +VectorXd build_l_mode_a1etaAlma3(const VectorXd& x_l, const double H_l, const double fc_l, const double f_s, + const double eta0, const double epsilon_nl, const VectorXd& thetas, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V){ +/* + * This model includes: + * - Asymetry of Lorentzian asym + * - splitting a1 + * - an Asphericity term eta (Centrifugal effect) and due to Active region following Gizon 2002, AN, 323, 251. + * Currently we use a hard-coded filter type "gate" which is rough but match the Gizon paper. "gauss" is also available and might be our final choice. + * Once we could compare the method adapted from Gizon works on global fits + * - latitudinal effect a3 + */ + const std::string filter_type="gate"; // The alternative is also "gauss" to have more smooth edges for the Activity effect + const long Nxl=x_l.size(); + VectorXd profile(Nxl), tmp(Nxl), tmp2(Nxl), result(Nxl), asymetry(Nxl); + double clm, G, CF_term, AR_term; + + result.setZero(); + for(int m=-l; m<=l; m++){ + if(l != 0){ + CF_term=eta0*pow(f_s*1e-6,2)*Qlm(l,m); //(4./3.)*pi*pow(a1*1e-6,2.)/(rho*G); + AR_term=epsilon_nl*Alm_deg(l, m, thetas[0], thetas[1], filter_type); + profile=(x_l - tmp.setConstant(fc_l*(1. + CF_term + AR_term) + m*f_s + Pslm(3,l,m)*a3)).array().square(); + profile=4*profile/pow(gamma_l,2); + } else{ + profile=(x_l - tmp.setConstant(fc_l)).array().square(); + profile=4*profile/pow(gamma_l,2); + } + if(asym == 0){ //Model with no asymetry + result=result+ H_l*V(m+l)* ((tmp.setConstant(1) + profile)).cwiseInverse(); + } else{ + tmp.setConstant(1); + asymetry=(tmp + asym*(x_l/fc_l - tmp)).array().square() + (tmp2.setConstant(0.5*gamma_l*asym/fc_l)).array().square(); + result=result+ H_l*V(m+l)*asymetry.cwiseProduct(((tmp.setConstant(1) + profile)).cwiseInverse()); + } + } +return result; +} + +VectorXd build_l_mode_a1a2a3(const VectorXd& x_l, const double H_l, const double fc_l, const double f_s, const double a2, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V){ +/* + * This model includes: + * - Asymetry of Lorentzian asym + * - splitting a1 + * - latitudinal effect a3 +*/ + const long Nxl=x_l.size(); + VectorXd profile(Nxl), tmp(Nxl), tmp2(Nxl), result(Nxl), asymetry(Nxl); + double clm, a2_terms; + + result.setZero(); + for(int m=-l; m<=l; m++){ + if(l != 0){ + clm=Pslm(3,l,m); // Changes made on 18/11/2021 : Use of acoefs.cpp + a2_terms=Pslm(2,l,m)*a2; + profile=(x_l - tmp.setConstant(fc_l + m*f_s + a2_terms + clm*a3)).array().square(); + profile=4*profile/pow(gamma_l,2); + } else{ + profile=(x_l - tmp.setConstant(fc_l)).array().square(); + profile=4*profile/pow(gamma_l,2); + } + if(asym == 0){ //Model with no asymetry + result=result+ H_l*V(m+l)* ((tmp.setConstant(1) + profile)).cwiseInverse(); + } else{ + tmp.setConstant(1); + asymetry=(tmp + asym*(x_l/fc_l - tmp)).array().square() + (tmp2.setConstant(0.5*gamma_l*asym/fc_l)).array().square(); + result=result+ H_l*V(m+l)*asymetry.cwiseProduct(((tmp.setConstant(1) + profile)).cwiseInverse()); + } + } + +return result; +} -VectorXd build_l_mode_act_simu(const VectorXd x_l, double H_l, double fc_l, double f_s, double eta, double a3, double b, double alpha, double asym, double gamma_l, const int l, VectorXd V){ +VectorXd build_l_mode_act_simu(const VectorXd& x_l, const double H_l, const double fc_l, const double f_s, const double eta, const double a3, + const double b, const double alpha, const double asym, const double gamma_l, const int l, const VectorXd& V){ /* * This model includes: * - Asymetry of Lorentzian asym @@ -58,42 +228,445 @@ VectorXd build_l_mode_act_simu(const VectorXd x_l, double H_l, double fc_l, doub * - latitudinal effect a3 * - effect of magnetic field of the form b.nu^alpha */ - const long Nxl=x_l.size(); - VectorXd profile(Nxl), tmp(Nxl), tmp2(Nxl), result(Nxl), asymetry(Nxl); - double Qlm, clm; + const double a2=0; + const double a4=0; + const double a5=0; + const double a6=0; + const double eta0=eta*1e-12; // Equivalence valid only due to change of notation overtime. Do not assume it to be true in other functions ! The 1e-12 comes from a1 (in Hz) in build_l_mode_aj() + VectorXd result; + + std::cout << "Warning: b and alpha are ignored as this function is obselete" << std::endl; + result=build_l_mode_aj(x_l, H_l, fc_l, f_s, a2, a3, a4, a5, a6, eta0, asym, gamma_l, l, V); +return result; +} + +VectorXd build_l_mode_aj(const VectorXd& x_l, const double H_l, const double fc_l, + const double a1, const double a2, const double a3, const double a4, const double a5, const double a6, + const double eta0, const double asym, const double gamma_l, const int l, const VectorXd& V){ +/* + * This model includes: + * - Asymetry of Lorentzian asym + * - splittings in the form of a-coefficients aj with j={1,6} + * - eta: If eta0 > 0, account for the centrifugal distorsion in the a2 term (a2_CF) ==> This means the measured a2 = a2_AR : It WILL NOT include centrifugal effects + * but the model DO account for it. In that case, eta0 =3./(4.*pi*rho*G) Should be the value given to that function: NOTE THAT Benomar2018 HAS A MISTAKE IN THAT FORMULATION (Eq. S6) + * If eta0 <=0 0, set a2_CF(eta) = 0 such that the measured a2 = a2_CF + a2_AR +*/ + const long Nxl=x_l.size(); + VectorXd profile(Nxl), tmp(Nxl), tmp2(Nxl), result(Nxl), asymetry(Nxl); + double nu_nlm; + + result.setZero(); + for(int m=-l; m<=l; m++){ + if(l != 0){ + nu_nlm=fc_l + a1*Pslm(1,l,m) + a2*Pslm(2,l,m) + a3*Pslm(3,l,m) + a4*Pslm(4,l,m)+ a5*Pslm(5,l,m) + a6*Pslm(6,l,m); + if (eta0 > 0){ + nu_nlm = nu_nlm + fc_l*eta0*Qlm(l,m)*pow(a1*1e-6,2); + } + profile=(x_l - tmp.setConstant(nu_nlm)).array().square(); + profile=4*profile/pow(gamma_l,2); + } else{ + profile=(x_l - tmp.setConstant(fc_l)).array().square(); + profile=4*profile/pow(gamma_l,2); + } + if(asym == 0){ //Model with no asymetry + result=result+ H_l*V(m+l)* ((tmp.setConstant(1) + profile)).cwiseInverse(); + } else{ + tmp.setConstant(1); + asymetry=(tmp + asym*(x_l/fc_l - tmp)).array().square() + (tmp2.setConstant(0.5*gamma_l*asym/fc_l)).array().square(); + result=result+ H_l*V(m+l)*asymetry.cwiseProduct(((tmp.setConstant(1) + profile)).cwiseInverse()); + } + } + +return result; +} - //std::cout << " Begin build mode" << std::endl; +VectorXd build_l_mode_a1l_etaa3_v2(const VectorXd& x_l, const VectorXd& H_lm, const double fc_l, const double f_s1, const double f_s2, const double eta0, const double a3, const double asym, const double gamma_l, const int l){ + /* + * This model IS WITHOUT THE ASSUMPTION S11=S22. It includes: + * - Asymetry of Lorentzian asym + * - splitting a1(l=1) and a1(l=2). ASSUMES a1(l=3) = (a1(1) + a1(2))/2. + * - an Asphericity parameter eta + * - latitudinal effect a3(l=2) only. We consider a3(l=3)=0 + * - Inclination IS NOT IMPOSED contrary to build_l_mode_a1l_etaa3. INSTEAD H_lm should be of dimension l(l+1) and provide all the heights + */ + const long Nxl=x_l.size(); + VectorXd profile(Nxl), tmp(Nxl), tmp2(Nxl), result(Nxl), asymetry(Nxl); + double f_s; + result.setZero(); + for(int m=-l; m<=l; m++){ + if(l != 0){ + switch (l){ + case 1: + f_s=f_s1; + break; + case 2: + f_s=f_s2; + break; + case 3: + f_s=(f_s1 + f_s2)/2.; // APPROXIMATION + break; + } + profile=(x_l - tmp.setConstant(fc_l*(1. + eta0*pow(f_s*1e-6,2)*Qlm(l,m)) + Pslm(1,l,m)*f_s + Pslm(3,l,m)*a3)).array().square(); + //profile=(x_l - tmp.setConstant(fc_l*(1. + eta*Qlm) + Pslm(1,l,m)*a1 + clm*a3)).array().square(); + profile=4*profile/pow(gamma_l,2); + } else{ + profile=(x_l - tmp.setConstant(fc_l)).array().square(); + profile=4*profile/pow(gamma_l,2); + } + if(asym == 0){ //Model with no asymetry + result=result+ H_lm(m+l)* ((tmp.setConstant(1) + profile)).cwiseInverse(); + } else{ + tmp.setConstant(1); + asymetry=(tmp + asym*(x_l/fc_l - tmp)).array().square() + (tmp2.setConstant(0.5*gamma_l*asym/fc_l)).array().square(); + result=result+ H_lm(m+l)*asymetry.cwiseProduct(((tmp.setConstant(1) + profile)).cwiseInverse()); + } + } + std::cout << "NEED CHECKS in build_l_mode_a1l_etaa3_v2: The function was never verified" << std::endl; + exit(EXIT_SUCCESS); + + return result; +} + +VectorXd build_l_mode_a1etaa3_v2(const VectorXd& x_l, const VectorXd& H_lm, const double fc_l, const double f_s, const double eta0, const double a3, const double asym, const double gamma_l, const int l){ +/* + * This model includes: + * - Asymetry of Lorentzian asym + * - splitting a1 + * - an Asphericity parameter eta + * - latitudinal effect a3 +*/ + const long Nxl=x_l.size(); + VectorXd profile(Nxl), tmp(Nxl), tmp2(Nxl), result(Nxl), asymetry(Nxl); + double clm; + result.setZero(); for(int m=-l; m<=l; m++){ if(l != 0){ - Qlm=(l*(l+1) - 3*pow(m,2))/((2*l - 1)*(2*l + 3)); // accounting for a2 - if(l == 1){ - clm=m; // a3 for l=1 - } - if(l == 2){ - clm=(5*pow(m,3) - 17*m)/3.; // a3 for l=2 - } - if(l == 3){ - clm=0; // a3 NOT YET IMPLEMENTED FOR l=3 - } - - profile=(x_l - tmp.setConstant(fc_l + Qlm*(eta*fc_l*pow(f_s,2) + b*pow(fc_l*1e-3,alpha)) + m*f_s + clm*a3) ).array().square(); + profile=(x_l - tmp.setConstant(fc_l*(1. + eta0*pow(f_s*1e-6,2)*Qlm(l,m)) + m*f_s + Pslm(3,l,m)*a3)).array().square(); profile=4*profile/pow(gamma_l,2); } else{ profile=(x_l - tmp.setConstant(fc_l)).array().square(); profile=4*profile/pow(gamma_l,2); } - tmp.setConstant(1); - asymetry=(tmp + asym*(x_l/fc_l - tmp)).array().square() + (tmp2.setConstant(0.5*gamma_l*asym/fc_l)).array().square(); - //std::cout << "asymetry=" << asymetry.transpose() < +# include +#include using Eigen::VectorXd; +using Eigen::VectorXi; -VectorXd build_l_mode_a1etaa3_simu(const VectorXd x_l, double H_l, double fc_l, double f_s, double eta, double a3, double gamma_l, const int l, VectorXd V); -VectorXd build_l_mode_act_simu(const VectorXd x_l, double H_l, double fc_l, double f_s, double eta, double a3, double b, double alpha, double asym, double gamma_l, const int l, VectorXd V); +/** + * @brief Calculate the Qlm term used in the centrifugal distortion calculation. + * + * This function calculates the Qlm term used in the centrifugal distortion calculation based on the given parameters. + * The final Qlm includes the dnl=2/3 term that is sometimes considered separately by some authors. + * See Papini-Gizon 2020 or Gizon 2002 for the definition. + * + * @param l The mode degree. + * @param m The mode order. + * @return The calculated Qlm term. + */ +double Qlm(const int l, const int m); + +/** + * @brief Set the indices imin and imax based on the given parameters. + * + * This function sets the indices imin and imax based on the given parameters, such as the frequency range, mode degree, central frequency, mode width, splitting frequency, step size, and constant c. + * The function calculates the proposed values pmin and pmax based on the parameters and handles the boundaries to ensure that the indices stay within the frequency range. + * The function also checks if imax - imin <= 0 and prints a warning message if this condition is met. + * + * @param x The frequency range. + * @param l The mode degree. + * @param fc_l The central frequency of the mode. + * @param gamma_l The mode width. + * @param f_s The splitting frequency. + * @param c The truncation constant. It limits the range of the computation. Used to (1) accelerate the fitting and (2) measure the asymetry. + * @param step The step size. + * @return The indices imin and imax. + */ +VectorXi set_imin_imax(const VectorXd& x, const int l, const double fc_l, const double gamma_l, const double f_s, const double c, const double step); + +/** + * @brief Build a Lorentzian mode with asymmetry and splitting by dropping the assumption S11=S22 + * + * This function builds a Lorentzian mode with asymmetry and splitting based on the given parameters. Dropping the asumption for S11=S22 means a different a1 splitting for l=1 and l=2. But we keep ASSUMES a1(l=3) = (a1(1) + a1(2))/2. + * + * @param x_l The frequency range for the mode. + * @param H_l The height of the mode. + * @param fc_l The central frequency of the mode. + * @param f_s1 The splitting frequency for l=1. + * @param f_s2 The splitting frequency for l=2. + * @param eta The asphericity parameter. + * @param a3 The latitudinal effect for l=2. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param V The mode visibility. + * @return The Lorentzian mode. + */ +VectorXd build_l_mode_a1l_etaa3(const VectorXd& x_l, const double H_l, const double fc_l, const double f_s1, const double f_s2, const double eta, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V); + +/** + * @brief Build a Lorentzian mode with asymmetry and splitting (model a1l_a2a3) + * + * This function builds a Lorentzian mode with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asymmetry of Lorentzian asym + * - Splitting a1(l=1) and a1(l=2). ASSUMES a1(l=3) = (a1(1) + a1(2))/2. + * - An Asphericity parameter eta + * - Latitudinal effect a3(l=2) only. We consider a3(l=3)=0 + * + * @param x_l The frequency range for the mode. + * @param H_l The height of the mode. + * @param fc_l The central frequency of the mode. + * @param f_s1 The splitting frequency for l=1. + * @param f_s2 The splitting frequency for l=2. + * @param a2 The a2 coefficient. + * @param a3 The a3 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param V The mode visibility. + * @return The Lorentzian mode. + */ +VectorXd build_l_mode_a1l_a2a3(const VectorXd& x_l, const double H_l, const double fc_l, const double f_s1, const double f_s2, const double a2, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V); + +/** + * @brief Build a Lorentzian mode with asymmetry and splitting (model a1etaa3) + * + * This function builds a Lorentzian mode with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asymmetry of Lorentzian asym + * - Splitting a1 + * - An Asphericity parameter eta + * - Latitudinal effect a3 + * + * @param x_l The frequency range for the mode. + * @param H_l The height of the mode. + * @param fc_l The central frequency of the mode. + * @param f_s The splitting frequency. + * @param eta The asphericity parameter. + * @param a3 The a3 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param V The mode visibility. + * @return The Lorentzian mode. + */ +VectorXd build_l_mode_a1etaa3(const VectorXd& x_l, const double H_l, const double fc_l, const double f_s, const double eta, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V); + + +/** + * @brief Build a Lorentzian mode with asymmetry and splitting (model a1etaa3_v2) + * + * This function builds a Lorentzian mode with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asymmetry of Lorentzian asym + * - Splitting a1 + * - An Asphericity parameter eta + * - Latitudinal effect a3 + * + * @param x_l The frequency range for the mode. + * @param H_lm The heights of the mode. + * @param fc_l The central frequency of the mode. + * @param f_s The splitting frequency. + * @param eta The eta0 coefficient. + * @param a3 The a3 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @return The Lorentzian mode. + */ +VectorXd build_l_mode_a1etaa3_v2(const VectorXd& x_l, const VectorXd& H_lm, const double fc_l, const double f_s, const double eta, const double a3, const double asym, const double gamma_l, const int l); + +/** + * @brief Build a Lorentzian mode with asymmetry and splitting (model a1l_etaa3_v2) + * + * This function builds a Lorentzian mode with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asymmetry of Lorentzian asym + * - Splitting a1(l=1) and a1(l=2). ASSUMES a1(l=3) = (a1(1) + a1(2))/2. + * - An Asphericity parameter eta + * - Latitudinal effect a3(l=2) only. We consider a3(l=3) = 0 + * - Inclination IS NOT IMPOSED contrary to build_l_mode_a1l_etaa3. INSTEAD H_lm should be of dimension l(l+1) and provide all the heights + * + * @param x_l The frequency range for the mode. + * @param H_lm The heights of the mode. + * @param fc_l The central frequency of the mode. + * @param f_s1 The splitting frequency for l=1. + * @param f_s2 The splitting frequency for l=2. + * @param eta The eta0 coefficient. + * @param a3 The a3 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @return The Lorentzian mode. + */ +VectorXd build_l_mode_a1l_etaa3_v2(const VectorXd& x_l, const VectorXd& H_lm, const double fc_l, const double f_s1, const double f_s2, const double eta, const double a3, const double asym, double gamma_l, const int l); + +/** + * @brief Build the l-mode a1a2a3 vector. + * + * This function builds the l-mode a1a2a3 vector based on the given parameters. + * It includes asymmetry of Lorentzian, splitting a1, and latitudinal effect a3. + * + * @param x_l The input vector x_l. + * @param H_l The H_l value. + * @param fc_l The fc_l value. + * @param f_s The f_s value. + * @param a2 The a2 value. + * @param a3 The a3 value. + * @param asym The asymmetry value. + * @param gamma_l The gamma_l value. + * @param l The l value. + * @param V The input vector V. + * @return The built l-mode a1a2a3 vector. + * + * @note This function requires the following dependencies: + * - Pslm function from acoefs.cpp + */ +VectorXd build_l_mode_a1a2a3(const VectorXd& x_l, const double H_l, const double fc_l, const double f_s, const double a2, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V); + +/** + * @brief Calculate the optimized Lorentzian model with asymmetry and splitting (model a1l_etaa3) + * + * This function calculates the Lorentzian model with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asymmetry of Lorentzian asym + * - Splitting a1(l=1) and a1(l=2). Assumes a1(l=3) = (a1(1) + a1(2))/2. + * - An Asphericity parameter eta + * - Latitudinal effect a3(l=2) only. We consider a3(l=3) = 0 + * - Inclination is not imposed, instead H_l should be of dimension l(l+1) and provide all the heights + * + * @param x The frequency range. + * @param y The original vector. + * @param H_l The heights of the mode. + * @param fc_l The central frequency of the mode. + * @param f_s1 The splitting frequency for l=1. + * @param f_s2 The splitting frequency for l=2. + * @param eta The eta0 coefficient. + * @param a3 The a3 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param V The vector V. + * @param step The step size. + * @param c The truncation constant. It limits the range of the computation. Used to (1) accelerate the fitting and (2) measure the asymetry. + * @return The Lorentzian model. + */ +VectorXd optimum_lorentzian_calc_a1l_etaa3(const VectorXd& x, const VectorXd& y, const double H_l, const double fc_l, const double f_s1, const double f_s2, const double eta, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V, const double step, const double c); + +/** + * @brief Calculate the optimized Lorentzian model with asymmetry and splitting (model a1etaa3) + * + * This function calculates the Lorentzian model with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asphericity of Lorentzian a1etaa3 + * - Splitting frequency f_s + * - Latitudinal effect a3(l=2) only. We consider a3(l=3) = 0 + * - Inclination is not imposed, instead H_l should be of dimension l(l+1) and provide all the heights + * + * @param x The frequency range. + * @param y The original vector. + * @param H_l The heights of the mode. + * @param fc_l The central frequency of the mode. + * @param f_s The splitting frequency. + * @param eta The eta0 coefficient. + * @param a3 The a3 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param V The vector V. + * @param step The step size. + * @param c The truncation constant. It limits the range of the computation. Used to (1) accelerate the fitting and (2) measure the asymetry. + * @return The optimized Lorentzian model. + */ +VectorXd optimum_lorentzian_calc_a1etaa3(const VectorXd& x, const VectorXd& y, const double H_l, const double fc_l, const double f_s, const double eta, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V, const double step, const double c); + + +/** + * @brief Calculate the optimized Lorentzian model with asymmetry and splitting (model a1l_etaa3_v2) + * + * This function calculates the Lorentzian model with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asphericity of Lorentzian a1l_etaa3_v2 + * - Splitting frequency f_s + * - Inclination is not imposed + * + * @param x The frequency range. + * @param y The original vector. + * @param H_lm The heights of the mode for each (l,m) component. + * @param fc_l The central frequency of the mode. + * @param f_s1 The splitting frequency for l=1. + * @param f_s2 The splitting frequency for l=2. + * @param eta The eta0 coefficient. + * @param a3 The a3 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param step The step size. + * @param c The truncation constant. It limits the range of the computation. Used to (1) accelerate the fitting and (2) measure the asymetry. + * @return The optimized Lorentzian model. + */ +VectorXd optimum_lorentzian_calc_a1l_etaa3_v2(const VectorXd& x, const VectorXd& y, const VectorXd& H_lm, const double fc_l, const double f_s1, const double f_s2, const double eta, const double a3, const double asym, const double gamma_l, const int l, double step, const double c); + +/** + * @brief Calculate the optimized Lorentzian model with asymmetry and splitting (model a1etaa3_v2) + * + * This function calculates the Lorentzian model with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asphericity of Lorentzian a1etaa3 + * - Splitting frequency f_s + * - Latitudinal effect a3(l=2) only. We consider a3(l=3) = 0 + * - Inclination is not imposed, instead H_l should be of dimension l(l+1) and provide all the heights + * + * @param x The frequency range. + * @param y The original vector. + * @param H_lm The heights of the mode. + * @param fc_l The central frequency of the mode. + * @param f_s The splitting frequency. + * @param eta The eta0 coefficient. + * @param a3 The a3 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param step The step size. + * @param c The truncation constant. It limits the range of the computation. Used to (1) accelerate the fitting and (2) measure the asymetry. + * @return The optimized Lorentzian model. + */ +VectorXd optimum_lorentzian_calc_a1etaa3_v2(const VectorXd& x, const VectorXd& y, const VectorXd& H_lm, const double fc_l, const double f_s, const double eta, const double a3, const double asym, const double gamma_l, const int l, const double step, const double c); + +/** + * @brief Calculate the optimized Lorentzian model with asymmetry and splitting (model a1l_a2a3) + * + * This function calculates the Lorentzian model with asymmetry and splitting based on the given parameters. + * This model includes: + * - Splitting a1(l=1) and a1(l=2). Assumes a1(l=3) = (a1(1) + a1(2))/2. + * - An Asphericity parameter a2. + * - Latitudinal effect a3(l=2) only. We consider a3(l=3) = 0. + * - Inclination is not imposed. + * + * @param x The frequency range. + * @param y The original vector. + * @param H_l The heights of the mode. + * @param fc_l The central frequency of the mode. + * @param f_s1 The splitting frequency for l=1. + * @param f_s2 The splitting frequency for l=2. + * @param a2 The a2 coefficient. + * @param a3 The a3 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param V The vector V. + * @param step The step size. + * @param c The truncation constant. It limits the range of the computation. Used to (1) accelerate the fitting and (2) measure the asymetry. + * @return The optimized Lorentzian model. + */ +VectorXd optimum_lorentzian_calc_a1l_a2a3(const VectorXd& x, const VectorXd& y, const double H_l, const double fc_l, const double f_s1, const double f_s2, const double a2, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V, const double step, const double c); + + + +/** + * @brief Calculate the optimized Lorentzian model with asymmetry and splitting (model a1a2a3) + * + * This function calculates the Lorentzian model with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asphericity parameters a1, a2, and a3. + * - Splitting frequency f_s. + * - Inclination is not imposed. + * + * @param x The frequency range. + * @param y The original vector. + * @param H_l The heights of the mode. + * @param fc_l The central frequency of the mode. + * @param f_s The splitting frequency. + * @param a2 The a2 coefficient. + * @param a3 The a3 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param V The vector V. + * @param step The step size. + * @param c The truncation constant. It limits the range of the computation. Used to (1) accelerate the fitting and (2) measure the asymetry. + * @return The optimized Lorentzian model. + */ +VectorXd optimum_lorentzian_calc_a1a2a3(const VectorXd& x, const VectorXd& y, const double H_l, const double fc_l, const double f_s, const double a2, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V, const double step, const double c); + +/** + * @brief Build a Lorentzian mode with asymmetry and splitting (model a1etaAlma3) + * + * This function builds a Lorentzian mode with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asymmetry of Lorentzian asym + * - Splitting a1 + * - An Asphericity term eta (Centrifugal effect) and due to Active region following Gizon 2002, AN, 323, 251. + * Currently we use a hard-coded filter type "gate" which is rough but matches the Gizon paper. "gauss" is also available and might be our final choice. + * Once we could compare the method adapted from Gizon works on global fits + * - Latitudinal effect a3 + * + * @param x_l The frequency range for the mode. + * @param H_l The height of the mode. + * @param fc_l The central frequency of the mode. + * @param f_s The splitting frequency. + * @param eta0 The asphericity parameter. + * @param epsilon_nl The epsilon_nl coefficient. + * @param thetas The thetas coefficients. + * @param a3 The a3 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param V The mode visibility. + * @return The Lorentzian mode. + */ +VectorXd build_l_mode_a1etaAlma3(const VectorXd& x_l, const double H_l, const double fc_l, const double f_s, + const double eta0, const double epsilon_nl, const VectorXd& thetas, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V); + +/** + * @brief Calculate the optimized Lorentzian model with asymmetry and splitting (model a1etaAlma3) + * + * This function calculates the Lorentzian model with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asphericity of Lorentzian a1etaAlma3 + * - Splitting frequency f_s + * - Latitudinal effect a3(l=2) only. We consider a3(l=3) = 0 + * - Inclination is not imposed, instead H_l should be of dimension l(l+1) and provide all the heights + * + * @param x The frequency range. + * @param y The original vector. + * @param H_l The heights of the mode. + * @param fc_l The central frequency of the mode. + * @param f_s The splitting frequency. + * @param eta0 The eta0 coefficient. + * @param epsilon_nl The epsilon_nl coefficient. + * @param thetas The thetas vector. + * @param a3 The a3 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param V The vector V. + * @param step The step size. + * @param c The truncation constant. It limits the range of the computation. Used to (1) accelerate the fitting and (2) measure the asymetry. + * @return The optimized Lorentzian model. + */ +VectorXd optimum_lorentzian_calc_a1etaAlma3(const VectorXd& x, const VectorXd& y, const double H_l, const double fc_l, const double f_s, + const double eta0, const double epsilon_nl, const VectorXd& thetas, const double a3, const double asym, const double gamma_l, const int l, const VectorXd& V, const double step, const double c); + +/** + * @brief Build a Lorentzian mode with asymmetry and splitting (model act_simu) + * + * This function builds a Lorentzian mode with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asymmetry of Lorentzian asym + * - Splitting a1 + * - Centrifugal force effect eta + * - Latitudinal effect a3 + * - Effect of magnetic field of the form b * nu^alpha + * + * @param x_l The frequency range for the mode. + * @param H_l The height of the mode. + * @param fc_l The central frequency of the mode. + * @param f_s The splitting frequency. + * @param eta The eta coefficient. + * @param a3 The a3 coefficient. + * @param b The b coefficient. + * @param alpha The alpha coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param V The mode visibility. + * @return The Lorentzian mode. + */ +VectorXd build_l_mode_act_simu(const VectorXd& x_l, const double H_l, const double fc_l, const double f_s, const double eta, const double a3, + const double b, const double alpha, const double asym, const double gamma_l, const int l, const VectorXd& V); // Only here for compatibiility reasons + +/** + * @brief Build a Lorentzian mode with asymmetry and splitting (model aj) + * + * This function builds a Lorentzian mode with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asymmetry of Lorentzian asym + * - Splittings in the form of a-coefficients aj with j=1,6 + * - eta: If eta0 > 0, account for the centrifugal distortion in the a2 term (a2_CF) + * This means the measured a2 = a2_AR. It will not include centrifugal effects, but the model does account for it. + * In that case, eta0 = 3./(4.*pi*rho*G) should be the value given to that function. + * Note that Benomar2018 has a mistake in that formulation (Eq. S6). + * If eta0 <= 0, set a2_CF(eta) = 0 such that the measured a2 = a2_CF + a2_AR. + * + * @param x_l The frequency range for the mode. + * @param H_l The height of the mode. + * @param fc_l The central frequency of the mode. + * @param a1 The a1 coefficient. + * @param a2 The a2 coefficient. + * @param a3 The a3 coefficient. + * @param a4 The a4 coefficient. + * @param a5 The a5 coefficient. + * @param a6 The a6 coefficient. + * @param eta The eta0 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param V Mode visibilities. + * */ +VectorXd build_l_mode_aj(const VectorXd& x_l, const double H_l, const double fc_l, + const double a1, const double a2, const double a3, const double a4, const double a5, const double a6, + const double eta, const double asym, const double gamma_l, const int l, const VectorXd& V); + + +/** + * @brief Calculate the optimized Lorentzian model with asymmetry and splitting (model aj) + * + * This function calculates the Lorentzian model with asymmetry and splitting based on the given parameters. + * This model includes: + * - Asphericity parameters a1, a2, a3, a4, a5, and a6. + * - Eta0 coefficient. + * - Inclination is not imposed. + * + * @param x The frequency range. + * @param y The original vector. + * @param H_l The heights of the mode. + * @param fc_l The central frequency of the mode. + * @param a1 The a1 coefficient. + * @param a2 The a2 coefficient. + * @param a3 The a3 coefficient. + * @param a4 The a4 coefficient. + * @param a5 The a5 coefficient. + * @param a6 The a6 coefficient. + * @param eta0 The eta0 coefficient. + * @param asym The asymmetry parameter. + * @param gamma_l The mode width. + * @param l The mode degree. + * @param V The vector V. + * @param step The step size. + * @param c The truncation constant. It limits the range of the computation. Used to (1) accelerate the fitting and (2) measure the asymetry. + * @return The optimized Lorentzian model. + */ +VectorXd optimum_lorentzian_calc_aj(const VectorXd& x, const VectorXd& y, const double H_l, const double fc_l, + const double a1, const double a2, const double a3, const double a4, const double a5, const double a6, + const double eta0, const double asym, const double gamma_l, const int l, const VectorXd& V, const double step, const double c); diff --git a/bump_DP.py b/bump_DP.py deleted file mode 100644 index a7e20f3..0000000 --- a/bump_DP.py +++ /dev/null @@ -1,1254 +0,0 @@ -# This contains all the function that describes the Bumped period spacing -# and how they can be used to derived mode amplitudes from inertia ratio -# as they have been developed and tested. This arises from the following publications: -# https://arxiv.org/pdf/1509.06193.pdf (Inertia and ksi relation) -# https://www.aanda.org/articles/aa/pdf/2015/08/aa26449-15.pdf (Eq. 17 for the rotation - splitting relation) -# https://arxiv.org/pdf/1401.3096.pdf (Fig 13 and 14 for the evolution - rotation relation in SG and RGB) -# https://arxiv.org/pdf/1505.06087.pdf (Eq. 3 for determining log(g) using Teff and numax, used for getting the evolution stage in conjonction with Fig. 13 from above) -# https://iopscience.iop.org/article/10.1088/2041-8205/781/2/L29/pdf (Inertia and Height relation) -# https://arxiv.org/pdf/1707.05989.pdf (Fig.5, distribution of surface rotation for 361 RGB stars) -import numpy -import matplotlib.pyplot as plt -from scipy import interpolate -#import scipy.stats as stats -import solver_mm - - -# Function that return a random value that is uniform in cos(x) -# with x E [0, pi/2] -# If spin axis of stars was randomly distributed around us, this is -# the expected distribution for the spin angle. -def isotropic_inclination(): - x=numpy.random.uniform()*numpy.pi/2. - y=numpy.random.uniform() - c=numpy.cos(x) - while y <=c: - x=numpy.random.uniform()*numpy.pi/2. - y=numpy.random.uniform() - c=numpy.cos(x) - return x - -# Simple function to test whether the distribution generated by -# isotropic_inclination() is really uniform in sin(x) -def test_isotropic_inclination(N=1000): - r=numpy.zeros(N) - for i in range(N): - v=isotropic_inclination() - r[i]=v - #plt.plot(r) - #plt.show() - kde = stats.gaussian_kde(numpy.array(r)) - fig = plt.figure() - ax = fig.add_subplot(111) - x_eval = numpy.linspace(0, 1, num=20) - ax.plot(x_eval, kde(x_eval), 'k-') - #kde.integrate_box_1d( 0., np.inf) - plt.show() - return r - -# the ksi function as defined in equation 14 of Mosser+2017 (https://arxiv.org/pdf/1509.06193.pdf) -# Inputs: -# nu: The freqency axis (microHz) -# nu_p : Frequenc of a p-mode (microHz) -# nu_g : Frequency of a g-mode (microHz) -# Dnu_p: Large separation. DOES NOT NEED TO BE A CONSTANT (fonction of np or nu to account for glitches) -# DPl: Period Spacing (seconds) -# q : Coupling term (no unit) -def ksi_fct1(nu, nu_p, nu_g, Dnu_p, DPl, q): - - cos_upterm=numpy.pi * 1e6 * (1./nu - 1./nu_g)/DPl - cos_downterm=numpy.pi * (nu - nu_p) /Dnu_p - front_term= 1e-6 * nu**2 * DPl / (q * Dnu_p) # relation accounting for units in Hz and in seconds - - ksi=1./(1. + front_term * numpy.cos(cos_upterm)**2/numpy.cos(cos_downterm)**2) - - return ksi - -# Variant of ksi_fct that deals with arrays for nu_p, nu_g, Dnu_p, DPl -# This requires that nu_p and Dnu_p have the same dimension -# Also nu_g and DPl must have the same dimension -# Additional parameter: -# - norm-method: When set to 'fast', normalise by the max of the ksi_pg calculated at the -# Frequencies nu given by the user -# When set to 'exact', normalise by the max of a heavily interpolated function -# of ksi_pg. Allows a much a higher precision, but will be slower -# This could be usefull as in case of low ng, the norm is badly estimated in -# 'fast' mode. Then we need to use a more continuous function to evaluate the norm -def ksi_fct2(nu, nu_p, nu_g, Dnu_p, DPl, q, norm_method="fast"): - Lp=len(nu_p) - Lg=len(nu_g) - - #norm_method="precise" - ksi_pg=0. - for np in range(Lp): - for ng in range(Lg): - ksi_tmp=ksi_fct1(nu, nu_p[np], nu_g[ng], Dnu_p[np], DPl[ng], q) - ksi_pg=ksi_pg + ksi_tmp - - if norm_method == 'fast': - norm_coef=max(ksi_pg) - else: # We build a very resolved 'continuous function of the frequency to calculate the norm' - fmin=min([min(nu_p), min(nu_g)]) - fmax=max([max(nu_p), max(nu_g)]) - resol=0.1 - Ndata=int((fmax-fmin)/resol) - nu4norm=numpy.linspace(fmin, fmax, Ndata) - ksi4norm=0. - for np in range(Lp): - for ng in range(Lg): - ksi_tmp=ksi_fct1(nu4norm, nu_p[np], nu_g[ng], Dnu_p[np], DPl[ng], q) - ksi4norm=ksi4norm + ksi_tmp - norm_coef=max(ksi4norm) - - ksi_pg=ksi_pg/norm_coef - return ksi_pg - -# Inertia as theoretically defined in function of ksi -def inertia_ratio_ksi(ksi): - IlI0=1./(1. - ksi) - return IlI0 - -# Inertia as theoretically defined in function of the amplitude and the widths of the modes -# This could be used to approximate the inertia of the modes from observations of amplitudes and widths -# see https://iopscience.iop.org/article/10.1088/2041-8205/781/2/L29/pdf for further info -# Inputs: -# amp0: Amplitudes of the l=0 modes (ppm) -# ampl: Amplitudes of the l mixed modes (ppm) -# visibility_l_square: Mode visibility defined as Vl^2 = H1 / H0. Ex. V(l=1)^2 = 1.5 -# width0 : Widths of the l=0 modes -# widthl : Widths of the l mixed modes -# Outputs: -# IlI0: Inertia ratio -def inertia_ratio_obs_amp(amp0, ampl, visibility_l_square, width0, widthl): - r1=amp0/ampl - r2=numpy.sqrt(width0/widthl) - IlI0=numpy.sqrt(visibility_l)*r1*r2 - return IlI0 - -# Inertia as theoretically defined in function of the height and the widths of the modes -# This could be used to approximate the inertia of the modes from observations of amplitudes and widths -# see https://iopscience.iop.org/article/10.1088/2041-8205/781/2/L29/pdf for further info -# Inputs: -# h0: Heights of the l=0 modes (ppm) -# hl: Heights of the l mixed modes (ppm) -# visibility_l_square: Mode visibility defined as Vl^2 = H1 / H0. Ex. V(l=1)^2 = 1.5 -# width0 : Widths of the l=0 modes -# widthl : Widths of the l mixed modes -# Outputs: -# IlI0: Inertia ratio -def inertia_ratio_obs_height(h0, hl, visibility_l_square, width0, widthl): - r1=numpy.sqrt(h0/h1) - r2=width0/width1 - IlI0=visibility_l_square*r1*r2 - return IlI0 - -def read_templatefile(templatefile, ignore_errors = False): - try: - f=open(templatefile, 'r') - alllines=f.readlines() - f.close() - except: - print("Error: Could not open the file ", templatefile) - print(" Check that the file exists") - print(" The program will exit now") - exit() - - i0=0 - tmp=alllines[i0][0].strip() - while tmp == "#": # Ignore comments in the header - tmp=alllines[i0][0].strip() - i0=i0+1 - - i0=i0-1 - ID_ref=-1 - numax_ref=-1 - Dnu_ref=-1 - epsilon_ref=-1 - - while tmp[0] != "#": # Look for keywords for numax, Dnu and ID - tmp=alllines[i0].strip() - keys=tmp.split("=") - if keys[0] == "ID_ref": - ID_ref=keys[1] - if keys[0] == "numax_ref": - numax_ref=float(keys[1]) - if keys[0] == "Dnu_ref": - Dnu_ref=float(keys[1]) - if keys[0] == "epsilon_ref": - epsilon_ref=float(keys[1]) - i0=i0+1 - - if ignore_errors == False: - if numax_ref == -1 or Dnu_ref == -1 or epsilon_ref == -1: - print("Error: Could not find at least one of the keywords defining the global pulsation parameters") - print("Check that the following keywords are present in the template file: ", templatefile) - print(" The program will exit now") - exit() - if ID_ref == -1: - print("Warning: ID_ref is not set") - print(" This does not prevent the code to run, but may result in a more difficult tracking of the used reference mode profiles in the future") - - # Process the table - Nrows=len(alllines[i0:]) - Ncols=len(alllines[i0].split()) - data=numpy.zeros((Nrows, Ncols)) - cpt=0 - for line in alllines[i0:]: - tmp=line.split() - #print("tmp = ", tmp) - for i in range(len(tmp)): - #print("tmp[i]=", tmp[i]) - data[cpt, i]=float(tmp[i]) - cpt=cpt+1 - - return ID_ref, numax_ref, Dnu_ref, epsilon_ref, data - -def width_height_load_rescale(nu_star, Dnu_star, numax_star, file=None): - if file == None: - w_star,h_star=width_height_MS_sun_rescaled(nu_star, Dnu_star, numax_star) # If not file is provided, then the default is the old way of calculating the template - else: - ID_ref, numax_ref, Dnu_ref, epsilon_ref, data_ref= read_templatefile(file) - nu_ref=data_ref[:,0] - height_ref=data_ref[:,1] - gamma_ref=data_ref[:,2] - - int_fct_href = interpolate.interp1d(nu_ref, height_ref) - height_ref_at_numax=int_fct_href(numax_ref) - - int_fct_wref = interpolate.interp1d(nu_ref, gamma_ref) - gamma_ref_at_numax=int_fct_wref(numax_ref) - - n_at_numax_ref=numax_ref/Dnu_ref - epsilon_ref - en_list_ref=nu_ref/Dnu_ref - epsilon_ref # This list will be monotonic - # ------------------------------------------------------------------------------------ - # Rescaling using the base frequencies given above for the Sun - epsilon_star=numpy.mean(nu_star/Dnu_star % 1) - n_at_numax_star=numax_star/Dnu_star - epsilon_star - en_list_star=nu_star/Dnu_star - epsilon_star - - int_fct_w = interpolate.interp1d(en_list_ref - n_at_numax_ref, gamma_ref/gamma_ref_at_numax) - w_star=int_fct_w(en_list_star - n_at_numax_star) - - int_fct_h = interpolate.interp1d(en_list_ref - n_at_numax_ref, height_ref/height_ref_at_numax) - h_star=int_fct_h(en_list_star - n_at_numax_star) - - h_star=h_star/max(h_star) # Normalise so that that HNR(numax)=1 if white noise N0=1 - return w_star,h_star - -# Original function is comming from the IDL function 'generate_cfg_asymptotic_Hgauss_Wscaled_act_asym' -# available in /Volumes/MCMC_RES/Repository/Spectra-Simulator-IDL/v1.4/ -# This width profile obviously applies only to l=0 modes OR to any l IF the star is in the main sequence. -# Inputs: -# - nu_star: Frequencies for the star -# - Dnu_star: The large separation -# - n_at_numax_star: The -# Outputs: -# - w: A rescaled Solar width profile, normalised to 1 at numax. To be used to make a synthetic star mimmicking the Solar profile -# - h: A rescaled Solar height profile, normalised to 1 at numax. To be used to make a synthetic star mimmicking the Solar profile -def width_height_MS_sun_rescaled(nu_star, Dnu_star, numax_star): - # ***** CONSTANTS ***** - Dnu_sun=135.1 - epsilon_sun=0.5 - #numax_sun=3150. # THIS IS THE NUMAX IN AMPLITUDE - numax_sun=2900. # THIS IS THE NUMAX IN HEIGHT - - # -------- Relation giving the solar width profile from Appourchaux et al. 2014 ------ - alfa=4.97 - Gamma_alfa=4.65 - Wdip=4646. # depth of the dip - nu_dip=3083. - Ddip=4.66 - - # Frequencies of the l=0 of the Sun + [1650, 1750, 1850] + [4180, 4280, 4380, 4480] to avoid extrapolation and favor interpolation - nu_sun=[1250, 1350, 1450, 1550, 1650, 1750, 1850, 1957.4748, 2093.5983, 2228.8442, 2362.8797, 2496.3328, 2629.8436, 2764.3597, 2899.2249, 3033.9623, 3168.9156, 3303.8225, 3439.3876, 3575.2118, 3711.6045, 3848.5361, 3984.6612, 4180, 4280, 4380, 4480, 4580, 4680, 4780, 4880, 4980, 5080, 5180, 5280] - nu_sun=numpy.asarray(nu_sun) - - height_sun=[0.01, 0.0125, 0.025, 0.05, 0.1, 0.15, 0.20, 0.55633623, 0.71080326, 0.84916942, 1.0309479, 1.3676815, 2.0930273, 2.8720608, 3.9032770, 3.7507970, 2.8629352, 1.8167902, 0.92533429, 0.42467669, 0.17490098, 0.079882521, 0.038872344, 0.005, 0.00012, 0.0001, 0.00002, 0.00001, 0.000005, 0.0000001, 0., 0., 0., 0., 0.] - height_sun=numpy.asarray(height_sun) - int_fct_hsun = interpolate.interp1d(nu_sun, height_sun) - height_sun_at_numax=int_fct_hsun(numax_sun) - - lnGamma0= alfa*numpy.log(nu_sun/numax_sun) + numpy.log(Gamma_alfa) - lnLorentz= -numpy.log( Ddip )/ (1. + (2. *numpy.log(nu_sun/nu_dip)/numpy.log(Wdip/numax_sun))**2) - Gamma_sun=numpy.exp(lnGamma0 + lnLorentz) - int_fct_wsun = interpolate.interp1d(nu_sun, Gamma_sun) - Gamma_sun_at_numax=int_fct_wsun(numax_sun) - - n_at_numax_sun=numax_sun/Dnu_sun - epsilon_sun - en_list_sun=nu_sun/Dnu_sun - epsilon_sun # This list will be monotonic from 14 until 29 (with step ~1) - # ------------------------------------------------------------------------------------ - - # Rescaling using the base frequencies given above for the Sun - epsilon_star=numpy.mean(nu_star/Dnu_star % 1) - n_at_numax_star=numax_star/Dnu_star - epsilon_star - en_list_star=nu_star/Dnu_star - epsilon_star - -# print("--- INSIDE width_height_MS_sun_rescaled ----") -# print("numax_star=", numax_star) -# print("Dnu_star=", Dnu_star) -# print("epsilon_star=", epsilon_star) -# print("n_at_numax_star=", n_at_numax_star) -# print("n_at_numax_sun=", n_at_numax_sun) -# print("en_list_sun - n_at_numax_sun=", en_list_sun - n_at_numax_sun) -# print("en_list_star - n_at_numax_star=", en_list_star - n_at_numax_star) -# exit() - int_fct_w = interpolate.interp1d(en_list_sun - n_at_numax_sun, Gamma_sun/Gamma_sun_at_numax) - w=int_fct_w(en_list_star - n_at_numax_star) - - int_fct_h = interpolate.interp1d(en_list_sun - n_at_numax_sun, height_sun/height_sun_at_numax) - h=int_fct_h(en_list_star - n_at_numax_star) - - h=h/max(h) # Normalise so that that HNR(numax)=1 if white noise N0=1 - return w,h - -# Using Inertias, heights and widths of l=0 modes, -# we can in principe know what is the width of the l mixed modes -# BEWARE HERE: I assume hl/h0(nu) = constant (1 by default). It is not certain -# that this is really supported by observations and theory. -# Also, this relation does not account for bolometric correction (hl/h0=1.5) -# Inputs: -# el (integer): degree of the modes -# nu_m (array): frequencies for the mixed modes -# nu_p (array): frequencies for the p modes -# nu_g (array): frequencies for the g modes -# Dnu_p (array): Large separation in function of the frequency of the l=el p modes -# DPl (array): Period spacing in function of the frequency of the l=el g modes -# q (double): Coupling coefficient -# nu_p0 (array): Frequencies of the l=0 modes. Used for the interplation of the maximum width of el modes -# width0 (array): Width of l=0 modes. Must be of same size as nu_p0. This array is interpolated -# at the frequencies of l=el mixed modes. Extrapolation is forbidden (expect a crash) -def gamma_l_fct1(nu_m, nu_p, nu_g, Dnu_p, DP1, q, nu_p0, width0, el, hl_h0_ratio=1): - #Lp=len(nu_p) - #Lg=len(nu_g) - ksi_pg=ksi_fct2(nu_m, nu_p, nu_g, Dnu_p, DP1, q) - - if len(nu_p0) != len(width0): - print('Inconsistency between the size of the Width and l=0 frequency array') - print('Cannot pursue. The program will exit now') - exit() - else: - # Perform the interpolation - int_fct = interpolate.interp1d(nu_p0, width0) - width0_at_l=int_fct(nu_m) - width_l=width0_at_l * (1. - ksi_pg)/ numpy.sqrt(hl_h0_ratio) - - return width_l - -def gamma_l_fct2(ksi_pg, nu_m, nu_p0, width0, hl_h0_ratio, el): - - if len(nu_p0) != len(width0): - print('Inconsistency between the size of the Width and l=0 frequency array') - print('Cannot pursue. The program will exit now') - exit() - else: - # Perform the interpolation - int_fct = interpolate.interp1d(nu_p0, width0) - width0_at_l=int_fct(nu_m) - width_l=width0_at_l * (1. - ksi_pg)/ numpy.sqrt(hl_h0_ratio) - #print('ksi_pg , width_l , hl_h0_ratio') - #for i in range(len(ksi_pg)): - # print(ksi_pg[i], width_l[i], hl_h0_ratio[i]) - return width_l - -def h_l_rgb(ksi_pg): - hl_h0=numpy.sqrt(1. - ksi_pg) - hl_h0[hl_h0 == 0] = 1e-10 - #for i in range(len(ksi_pg)): - # print(ksi_pg[i], hl_h0[i]) - return hl_h0 - -# Splitting of modes assuming a two-zone (or two-zone averaged) rotation profile -# rot_envelope and rot_core must be in Hz units (or micro, nano, etc...) -# ksi_pg: The ksi function that describes the degree of mixture between p and g modes in function of the more frequency -# rot_envelope: average rotation in the envelope. Must be a scalar -# rot_core: average rotation in the core. Must be a scalar -# Returns: -# dnu_rot: A vector of same size as ksi_pg -def dnu_rot_2zones(ksi_pg, rot_envelope, rot_core): - #dnu_rot=(ksi_pg*(rot_core/2 - rot_envelope) + rot_envelope)/(2.*numpy.pi) - dnu_rot=ksi_pg*(rot_core/2 - rot_envelope) + rot_envelope - return dnu_rot - -# Function that determine the rotation in the envelope, here approximated to be the surface rotation. -# Inspired by the surface rotation from Ceillier et al. 2017 (https://arxiv.org/pdf/1707.05989.pdf), Fig. 5 -# They have a skewed distribution going for ~30 days to ~160 days with a peak around 60 days. -# For simplicity, I just insert a truncated gaussian distribution with rotation between 30 and 90 and a median of 60. -# The truncation happens at sigma -# Returns: -# rot_s: rotation frequency in microHz -def rot_envelope(): - sigma=3. - med=60. # in days - var=30./sigma # in days - period_s=numpy.random.normal(loc=med, scale=var) - if period_s < med - var*sigma: - period_s=med-var*sigma - if period_s > med + var*sigma: - period_s=med+var*sigma - - rot_s=1e6/(86400.*period_s) - - return rot_s - -# Use various relations from different papers for getting core rotation frequency -# in fonction of the evolutionary stage of the RGB, and using log(g) as an age proxy -# This can then be used by dnu_rot_2zones() to determine the rotational splittings -# rot_envelope: The rotation of the envelope must be provided (in Hz units) -# numax: frequency at maximum height of the modes of the star -# Teff: Effective temperature of the star. For a RGB/SG, typically between 5500K and 4000K. -# sigma_logg: Uncertainty to be used on loggg if randomize==True -# randomize_logg: If True, add some random gaussian noise to logg, as per defined in sigma_logg (absolute error) -# randomize_core_rot: If True, add some random gaussian noise to the rotation rate of the core, as per derived by observations from Deheuvels 2014 (see below). -# Returns: -# (1) rot_envelope: average rotation in the envelope -# (2) rot_core: average rotation in the core -# (3) rot_envelope_err: 1sigma error (or dispersion) on rot_envelope -# (4) rot_core_err: 1sigma error (or dispersion) on rot_core -def rot_2zones_v1(rot_envelope, numax, Teff, sigma_logg=0.1, randomize_logg=True, randomize_core_rot=True, output_file_rot=""): - # Get log(g) from T and numax using https://arxiv.org/pdf/1505.06087.pdf - numax_sun=2900. # THIS IS THE NUMAX IN HEIGHT - Teff_sun=5777. - gsun=28020 # cgs - g=(numax/numax_sun)*numpy.sqrt(Teff/Teff_sun) * gsun - logg=numpy.log10(g) - #print('log(g_star):', logg) - if randomize_logg == True: - logg=numpy.random.normal(loc=logg, scale=sigma_logg) - #print('log(g_star) (randomized):', logg) - # If an SG/RGB Use the best fit for the core/envelope contrast established using the relation from Fig. 13 of https://arxiv.org/pdf/1401.3096.pdf - # The used table for the fit is the following: - # star / rot ratio (OLA) / log(g) (graphic estimate) - # A 2.5 +/- 0.7 3.823 +/- 0.0375 - # B 3.8 +/- 1.1 3.77 +/- 0.02 - # C 6.9 +/ 1 3.76 +/- 0.04 - # D 15.1 +/- 4 3.71 +/- 0.03 - # E 10.7 +/- 1.5 3.68 +/- 0.02 - # F 21 +/- 8.2 3.6 +/- 0.02 - # using polyfit (only y-uncertainty accounted for), we get: - # ratio(logg) = a + b log(g) + c log(g)^2 - #a = 1797.04 (+/- 2583.32) / b= -891.294 +/- 1374.98 / c= 110.351 +/- 182.934 - # Uncertainty on each data point from the fit : 2.67476 2.62932 2.79434 3.39917 5.02476 17.3518 - # Best curve on each data point : 2.43628 5.26652 5.87004 9.21873 11.4928 18.5280 - # Ratio of the two : 1.09789 0.499253 0.476035 0.368724 0.437210 0.936516 - # Mean relative quadratic uncertainty : 0.693 (69.3%) - # Mean quadratic uncertainty without the two extremes : 0.448 (44.8%) - - a=1797.04 - b=-891.294 - c=110.351 - - logg_min=3.55 - logg_max=3.8825 - if logg >= logg_min and logg < logg_max : # Case excluding old rgb and main sequence stars. 3.8825 allows slightly faster envelope vs core, but it is tolerable - core2envelope_star=a + b*logg + c*logg**2 - core2envelope_err_star= core2envelope_star * 0.448 # use the average relative uncertainty calculated above without the extreme data points - # If an old RGB constant core/envelope contrast (ARBITRARY AS THE ROTATION IS NORMALY STILL SLOWING DOWN IN THE ENVELOPE) - if logg < logg_min: - core2envelope_star=a + b*logg_min + c*logg_min**2 - core2envelope_err_star= core2envelope_star * 0.448 # use the average relative uncertainty calculated above without the extreme data points - # If a MS star, assume uniform rotation (core/envelope == 1) - if logg >= logg_max: - core2envelope_star=1. - core2envelope_err_star=0.1 # arbitrary error for MS case - - - #print('core2envelope_star:', core2envelope_star, ' +/-', core2envelope_err_star) - - # Determine the core rotation - rot_core=core2envelope_star * rot_envelope - - rot_envelope_true=rot_envelope - rot_core_true=rot_core - - if randomize_core_rot == True: - # We will assume that the error contribution from the core and from the envelope is the same in relative value: - # err(rot_core)/rot_core = err(rot_envelope)/rot_envelope ===> core2envelope_err_star = X * sqrt(1 + core2envelope_star**2) - # with X = err(rot_core)/rot_core == err(rot_envelope)/rot_envelope... X is what we need here. - rot_core_err=core2envelope_err_star * rot_core / numpy.sqrt(1 + core2envelope_star**2) - rot_envelope_err=core2envelope_err_star * rot_envelope / numpy.sqrt(1 + core2envelope_star**2) - - rot_envelope=numpy.random.normal(loc=rot_envelope, scale=rot_envelope_err) - rot_core=numpy.random.normal(loc=rot_core, scale=rot_core_err) - # Failsafe to avoid negative rotation rates - while rot_core < 0: - rot_core=numpy.random.normal(loc=rot_core, scale=rot_core_err) - while rot_envelope < 0: - rot_envelope=numpy.random.normal(loc=rot_envelope, scale=rot_envelope_err) - else: - rot_core_err=0 - rot_envelope_err=0 - - #print(' numpy.sqrt(1 + core2envelope_star**2) = ', numpy.sqrt(1 + core2envelope_star**2)) - if output_file_rot != "": - f=open(output_file_rot, 'w') - f.write("Average envelope rotation (microHz) / Average core rotation (microHz)\n") - stri='{0:.5f} {1:.5f}'.format(rot_envelope, rot_core) - f.write(stri) - f.write('\n') - f.close() - #print('Ratio core-to-envelope rotation rate: ', core2envelope_star, ' +/-', core2envelope_err_star ) - #print('True core rotation: ', rot_core_true) - #print('True env rotation: ', rot_envelope_true) - #print('rot_envelope_err=', rot_envelope_err) - #print('rot_core_err=', rot_core_err) - #print('rot_envelope (randomized): ', rot_envelope) - #print('rot_core (randomized): ', rot_core) - #exit() - return rot_envelope, rot_core, rot_envelope_true, rot_core_true - - -# Simple way of computing the core rotation from the surface rotation. Used if we want uniform -# distribution of rotation in the envelope and a uniform population of core-to-envelope ratios -# (1) rot_envelope: average rotation in the envelope -# (2) core2envelope_star: average rotation in the core -def rot_2zones_v2(rot_envelope, core2envelope_star, output_file_rot=""): - - # Determine the core rotation - rot_core=core2envelope_star * rot_envelope - - if output_file_rot != "": - f=open(output_file_rot, 'w') - f.write("Average envelope rotation (microHz) / Average core rotation (microHz)\n") - stri='{0:.5f} {1:.5f}'.format(rot_envelope, rot_core) - f.write(stri) - f.write('\n') - f.close() - - rot_envelope_true=rot_envelope - rot_core_true=rot_core - - return rot_envelope, rot_core, rot_envelope_true, rot_core_true - -# Simple way of computing the core rotation from the surface rotation. Used if we want uniform -# distribution of rotation in the envelope and a uniform population of core rotation -# (1) rot_envelope: average rotation in the envelope -# (2) rot_core: average rotation in the core -def rot_2zones_v3(rot_envelope, rot_core, output_file_rot=""): - - if output_file_rot != "": - f=open(output_file_rot, 'w') - f.write("Average envelope rotation (microHz) / Average core rotation (microHz)\n") - stri='{0:.5f} {1:.5f}'.format(rot_envelope, rot_core) - f.write(stri) - f.write('\n') - f.close() - - rot_envelope_true=rot_envelope - rot_core_true=rot_core - - return rot_envelope, rot_core, rot_envelope_true, rot_core_true - - -#Assumptions: nu_max is derived from the requested Dnu_star parameter using the relation from Stello+2009. -# Dnu ~ 0.263*numax^0.77 (no uncertainty implemented here) -def numax_from_stello2009(Dnu_star, spread=0): - # Define the frequency range for the calculation by (1) getting numax from Dnu and (2) fixing a range around numax - beta0=0.263 # according to Stello+2009, we have Dnu_p ~ 0.263*numax^0.77 (https://arxiv.org/pdf/0909.5193.pdf) - beta1=0.77 # according to Stello+2009, we have Dnu_p ~ 0.263*numax^0.77 (https://arxiv.org/pdf/0909.5193.pdf) - - nu_max=10**(numpy.log10(Dnu_star/beta0)/beta1) -# print("nu_max=", nu_max) - if numpy.abs(spread)>0: # Add a unifrom spread around numax, spread must be given in fraction (eg 5% is 0.05) - nu_max=numpy.random.uniform(nu_max*(1.-numpy.abs(spread)), nu_max*(1. + numpy.abs(spread))) -# print("spread: ", spread) -# print("New nu_max=", nu_max) - return nu_max - -#This function calculate a sum of harvey profile + a white noise and adds -# * these profiles to a initial input vector y. The Harvey profile differ from the -# * Harvey-like by the fact that H0_1985= H0_like * tc is correlated to the timescale tc. -# * There is also a 2pi factor in the denominator. The function assumes that the -# * inputs are in the following order: [H0, tc0, p0, ..., Hn, tcn, pn, N0] -# -def harvey_1985(noise_params, x): - - cpt=0 - Nharvey=1 - y=numpy.zeros(len(x)) + noise_params[Nharvey*3] # White noise - for i in range(Nharvey): - if(noise_params[cpt+1] != 0): - tmp=((1e-3)*2.*numpy.pi*noise_params[cpt+1]*x)**noise_params[cpt+2] # Denominator - tmp=noise_params[cpt]*noise_params[cpt+1]/(1. + tmp) # Numerator/Denominator - y= y + tmp # Numerator/Denominator + White noise - cpt=cpt+3 - return y - -# The main function that generate a set of parameters used to generate Lorentzian profiles -# Assumptions: -# - The frequencies of l=0, l=2 and l=3 modes follow exactly the asymtptotic relation for the p mdoes -# - The frequencies of the l=1 modes follow exactly the asymptotitc relation for the mixed modes -# - Widths of l=0, 2, 3 modes are rescaled using the synthetic relation from Appourchaux+2014 applied to the solar profile -# - Widths of l=1 mixed modes are defined using the ksi function, scaled using l=0 modes. Thus l=0 modes fixes the upper -# limit of the mode width -# - Heights of l=0 modes are rescaled using the measured heights of the solar modes -# - Heights of l=1 mixed modes are set based on equipartition of energy accounting for damping and excitation assuming no radiative pressure -# GrosJean+201X showed that this was valid for not-too-evolved RGB and for SG. -# - Bolometric visibilities in height are assumed to be 1, 1.5, 0.5, 0.07 for l=0,1,2,3 respectively -# - Splitting is implemented in different ways... see the various models -# Warning for widths and heights: if fmin/fmax is too large, you may have an error as an extrapolation -# would be required, which I forbid by code. An fmin/fmax that englobes -# 10 radial orders should not pose any issue. -# Input: -# Dnu_star: Large separation for the p modes -# epsilon_star: phase offset term for the asymtptotic relation of the p modes -# delta0l_star, alpha_p_star, nmax_star: Instead of D0_star, these parameters can be used to create 2nd order asymptotic p modes (see Mosser+2018, Eq.22) -# DP1_star: The period spacing for l=1 g modes -# alpha_star: The phase offset term for the asymptotic relation of the g modes -# q_star: Coupling coeficient between p and g modes -# fmin: Minimum frequency for the modes that should be included in the calculations -# fmax: Maximum frequency for the modes that should be included in the calculations -# Outputs: -# nu_lx: Frequencies of the l=x modes. x is between 0 and 3 -# nu_p_l1: Base p modes frequencies used to build the frequencies for the l=1 mixed modes -# nu_g_l1: Base p modes frequencies used to build the frequencies for the l=1 mixed modes -# width_lx: Widths of the l=x modes. x is between 0 and 3 -# height_lx: Heights of the l=x modes. x is between 0 and 3 -#def make_synthetic_asymptotic_star(Teff_star, numax_star, Dnu_star, epsilon_star, D0_star, DP1_star, alpha_star, q_star, fmin, fmax, Hmax_l0=1., Gamma_max_l0=1., rot_env_input=-1, rot_ratio_input=-1, rot_core_input=-1, output_file_rot='star_params.rot'): -#def make_synthetic_asymptotic_star(Teff_star, numax_star, Dnu_star, epsilon_star, delta0l_percent_star, alpha_p_star, nmax_star, DP1_star, alpha_star, q_star, fmin, fmax, Hmax_l0=1., Gamma_max_l0=1., rot_env_input=-1, rot_ratio_input=-1, rot_core_input=-1, output_file_rot='star_params.rot', Vl=[1,1.5,0.5, 0.07], H0_spread=0, filetemplate="Configurations/templates/Sun.template"): -def make_synthetic_asymptotic_star(Teff_star, numax_star, Dnu_star, epsilon_star, delta0l_percent_star, alpha_p_star, nmax_star, DP1_star, alpha_star, q_star, fmin, fmax, maxHNR_l0=1., noise_params=[0,1,1,1], Gamma_max_l0=1., rot_env_input=-1, rot_ratio_input=-1, rot_core_input=-1, output_file_rot='star_params.rot', Vl=[1.5,0.5, 0.07], H0_spread=0, filetemplate="Configurations/templates/Sun.template"): - - # Fix the resolution to 4 years (converted into microHz) - resol=1e6/(4*365.*86400.) - - #Fix the bolometric visibilities - #Vl=[1, 1.5, 0.5, 0.07] - - # ----- l=0 modes ----- - # This section generate l=0 modes following the asymptotic relation of p modes, and make - # rescaled width and height profiles for the star using the solar width and height profiles - #nmin=int(fmin/Dnu_star - epsilon_star) - #nmax=int(fmax/Dnu_star + epsilon_star) - npmin=int(numpy.floor(fmin/Dnu_star - epsilon_star)) - npmax=int(numpy.ceil(fmax/Dnu_star - epsilon_star)) - npmin=int(numpy.floor(npmin - alpha_p_star*(npmin - npmax)**2 /2.)) - npmax=int(numpy.ceil(npmax - alpha_p_star*(npmax - npmax)**2 /2.)) - - #np_min=int(floor(cfg_star.fmin/cfg_star.Dnu_star - cfg_star.epsilon_star)); - #np_max=int(ceil(cfg_star.fmax/cfg_star.Dnu_star - cfg_star.epsilon_star)); - #np_min=int(floor(np_min - cfg_star.alpha_p_star*std::pow(np_min - cfg_star.nmax_star, 2) /2.)); - #np_max=int(ceil(np_max - cfg_star.alpha_p_star*std::pow(np_max - cfg_star.nmax_star, 2) /2.); - - if npmin < 1: - npmin=1 - - nu_l0=[] - for en in range(npmin, npmax): - #tmp=solver_mm.asympt_nu_p(Dnu_star, en, epsilon_star, 0, D0_star) - tmp=solver_mm.asympt_nu_p(Dnu_star, en, epsilon_star, 0, delta0l=0, alpha=alpha_p_star, nmax=nmax_star) - nu_l0.append(tmp) - nu_l0=numpy.asarray(nu_l0) -# print("Dnu_star=", Dnu_star) -# print("epsilon_star=", epsilon_star) -# print("alpha_p_star=", alpha_p_star) -# print("nmax_star=", nmax_star) -# print("numax_star=", numax_star) -# print("nu_l0=", nu_l0) -# exit() - #width_l0, height_l0=width_height_MS_sun_rescaled(nu_l0, Dnu_star, numax_star) - - width_l0, height_l0=width_height_load_rescale(nu_l0, Dnu_star, numax_star, file=filetemplate) # Function that ensure that Hmax and Wplateau is at numax - - #Defining what should be Hmax_l0 in order to get the desired HNR - # 0 1 2 3 4 5 6 7 - #noise_params=[A_Pgran , B_Pgran , C_Pgran , A_taugran , B_taugran , C_taugran , p N0] - tau=noise_params[3] * (numax_star*1e-6)**noise_params[4] + noise_params[5] # Granulation timescale (in seconds) - H=noise_params[0] * (numax_star*1e-6)**noise_params[1] + noise_params[2] # Granulation Amplitude - H=H/tau #This is due to the used definition for the Harvey profile (conversion from Hz to microHz) - tau=tau/1000. #conversion in ksec - p=noise_params[6] # power law (MUST BE CLOSE TO 2) - N0=noise_params[7]; - - Noise_l0=harvey_1985([H, tau, p, N0], nu_l0) - c=1 # This is the ratio of HNR between the reference star and the target simulated star: maxHNR_l0/maxHNR_ref. - hmax_l0=maxHNR_l0*Noise_l0*c - height_l0=height_l0*hmax_l0 # height_l0 being normalised to 1 on width_height_load_rescale, getting the desired hmax_l0 requires just to multiply height_l0 by hmax_l0 - - if numpy.abs(H0_spread) > 0: - try: - height_l0=numpy.random.uniform(height_l0*(1.-numpy.abs(H0_spread)/100.), height_l0*(1. + numpy.abs(H0_spread)/100.)) - except OverflowError: - print("OverflowError debug info:") - print("nu_l0 = ", nu_l0) - print("hmax_l0 = ", hmax_l0) - print("Height_l0: ", height_l0) - print("H0_spread: ", H0_spread) - exit() - - width_l0=width_l0*Gamma_max_l0 - - # Define an interpolation base to be used when generating maximum widths of l=1 mixed modes - # and for heights and widths of l=2,3 modes - int_fct_h0 = interpolate.interp1d(nu_l0, height_l0) - int_fct_w0 = interpolate.interp1d(nu_l0, width_l0) - # ------------------------ - - # ------- l=1 modes ------ - # Use the solver to get mixed modes - el=1 - delta0l_star=-el*(el + 1) * delta0l_percent_star / 100. - #nu_m_l1, nu_p_l1, nu_g_l1=solver_mm.solve_mm_asymptotic(Dnu_star, epsilon_star, el, D0_star, DP1_star, alpha_star, q_star, fmin, fmax, resol, returns_pg_freqs=True) - nu_m_l1, nu_p_l1, nu_g_l1=solver_mm.solve_mm_asymptotic_O2p(Dnu_star, epsilon_star, el, delta0l_star, alpha_p_star, nmax_star, DP1_star, alpha_star, q_star, fmin, fmax, resol, returns_pg_freqs=True) - # Filter solutions that endup at frequencies higher/lower than the nu_l0 because we will need to extrapolate height/widths otherwise... - posOK=numpy.where(numpy.logical_and(nu_m_l1 >= min(nu_l0), nu_m_l1 <= max(nu_l0))) - nu_m_l1=nu_m_l1[posOK] - - # Generating widths profiles for l=1 modes using the ksi function - Dnu_p=numpy.repeat(Dnu_star, len(nu_p_l1)) - DPl=numpy.repeat(DP1_star, len(nu_g_l1)) - - ksi_pg=ksi_fct2(nu_m_l1, nu_p_l1, nu_g_l1, Dnu_p, DPl, q_star, norm_method='precise') # assunme Dnu_p, DPl and q constant - h1_h0_ratio=h_l_rgb(ksi_pg) # WARNING: Valid assummption only not too evolved RGB stars (below the bump, see Kevin mail 10 August 2019) - height_l1p=int_fct_h0(nu_m_l1) - - height_l1p=height_l1p*Vl[0] -# print('Len(Height_l1p):', len(height_l1p)) - height_l1=h1_h0_ratio * height_l1p - #width_l1=gamma_l_fct1(nu_m_l1, nu_p_l1, nu_g_l1, Dnu_p, DPl, q_star, nu_l0, width_l0, el, hl_h0_ratio=1.) - width_l1=gamma_l_fct2(ksi_pg, nu_m_l1, nu_l0, width_l0, h1_h0_ratio, el) - - # Generating splittings with a two-zone averaged rotation rates - if rot_env_input >=0: - Teff_star=-1 - if rot_ratio_input > 0: - rot_env, rot_c, rot_env_true, rot_c_true=rot_2zones_v2(rot_env_input, rot_ratio_input, output_file_rot=output_file_rot) - else: - rot_env, rot_c, rot_env_true, rot_c_true=rot_2zones_v3(rot_env_input, rot_core_input, output_file_rot=output_file_rot) - else: - # Determine the envelope rotation - rot_env_input=rot_envelope() - if Teff_star >=0: - rot_env, rot_c, rot_env_true, rot_c_true=rot_2zones_v1(rot_env_input, numax_star, Teff_star, sigma_logg=0.1, randomize_core_rot=True, output_file_rot=output_file_rot) - else: - print(' -----------------------------') - print(' ---------- WARNING ----------') - print('Error: Teff_star not provided but required. Serious debug required') - print('The program will exit now') - print(' ---------- WARNING ----------') - print(' -----------------------------') - exit() - - a1_l1=dnu_rot_2zones(ksi_pg, rot_env, rot_c) - - # ------- l=2 modes ----- - el=2 - delta0l_star=-el*(el + 1) * delta0l_percent_star / 100. - nu_l2=[] - for en in range(npmin, npmax): - #tmp=solver_mm.asympt_nu_p(Dnu_star, en, epsilon_star, 2, D0_star) - tmp=solver_mm.asympt_nu_p(Dnu_star, en, epsilon_star, el, delta0l=delta0l_star, alpha=alpha_p_star, nmax=nmax_star) - nu_l2.append(tmp) - nu_l2=numpy.asarray(nu_l2) - - # Filter solutions that endup at frequencies higher/lower than the nu_l0 because we will need to extrapolate height/widths otherwise... - posOK=numpy.where(numpy.logical_and(nu_l2 >= min(nu_l0), nu_l2 <= max(nu_l0))) - nu_l2=nu_l2[posOK] - - height_l2=int_fct_h0(nu_l2) - height_l2=height_l2*Vl[1] - width_l2=int_fct_w0(nu_l2) - - # Assume that the l=2 modes are only sensitive to the envelope rotation - a1_l2=numpy.repeat(rot_env, len(nu_l2)) - - # ------ l=3 modes ---- - el=3 - delta0l_star=-el*(el + 1) * delta0l_percent_star / 100. - nu_l3=[] - for en in range(npmin, npmax): - #tmp=solver_mm.asympt_nu_p(Dnu_star, en, epsilon_star, 3, D0_star) - tmp=solver_mm.asympt_nu_p(Dnu_star, en, epsilon_star, el, delta0l=delta0l_star, alpha=alpha_p_star, nmax=nmax_star) - nu_l3.append(tmp) - nu_l3=numpy.asarray(nu_l3) - - posOK=numpy.where(numpy.logical_and(nu_l3 >= min(nu_l0), nu_l3 <= max(nu_l0))) - nu_l3=nu_l3[posOK] - - height_l3=int_fct_h0(nu_l3) - height_l3=height_l3*Vl[2] - width_l3=int_fct_w0(nu_l3) - - # Assume that the l=3 modes are only sensitive to the envelope rotation - a1_l3=numpy.repeat(rot_env, len(nu_l3)) - - return nu_l0, nu_p_l1, nu_g_l1, nu_m_l1, nu_l2, nu_l3, width_l0, width_l1, width_l2, width_l3, height_l0, height_l1, height_l2, height_l3, a1_l1, a1_l2, a1_l3 - - -# Read a basic configuration file that contains the setup to create the whole set -# of parameters for a synthetic spectra. Those parameters are returned in an output file. -def main_star_generator(config_file='star_params.global', output_file='star_params.modes', output_file_range='star_params.range', output_file_rot='star_params.rot', version=1, filetemplate="Configurations/templates/Sun.template"): - - comments=[] - setup=[] - f=open(config_file, 'r') - for line in f: - s=line.split() - if s[0] != '#': - setup.append(s) - else: - comments.append(line) - f.close() - - passed=False - if version == 1: - setup_pmodes=numpy.asarray(setup[0], dtype='double') - setup_gmodes=numpy.asarray(setup[1], dtype='double') - noise_params=numpy.asarray(setup[4], dtype='double') - DP1_star=setup_gmodes[0] - alpha_star=setup_gmodes[1] - coupling=numpy.double(setup[2][0]) - Ncoef=numpy.double(setup[2][1]) # Defines the number of modes on each side of numax - #Hmax_l0=numpy.double(setup[2][2]) # Maximum height for the l=0. Heights of other modes are set using visibilities (make_synthetic_asymptotic_star()). - maxHNR_l0=numpy.double(setup[2][2]) # Maximum HNR for the l=0. l=0 Heights depend on the noise background. Heights of other modes are set using visibilities (make_synthetic_asymptotic_star()). - Gamma_max_l0=numpy.double(setup[2][3]) # Width at numax for l=0 - numax_spread=numpy.double(setup[2][4]) # uniform numax spread in %. If <=0, no spread is applied - Vl=numpy.double(setup[3][0:3]) # Visibilities for l=1,2, 3 - H0_spread=numpy.double(setup[3][3]) # Control for the % of variance around the injected Height profile for l=0 - Teff_star=numpy.double(setup_pmodes[0]) - rot_env=-1 - rot_core=-1 - rot_ratio=-1 - Dnu_star=numpy.double(setup_pmodes[1]) - epsilon_star=numpy.double(setup_pmodes[2]) - #D0_star=numpy.double(setup_pmodes[3]) - delta0l_percent_star=numpy.double(setup_pmodes[3]) - beta_p_star=numpy.double(setup_pmodes[4]) - nmax_spread_star=numpy.double(setup_pmodes[5]) - numax_star=numax_from_stello2009(Dnu_star, spread=numax_spread) - passed=True - if version == 2: - setup_pmodes=numpy.asarray(setup[0], dtype='double') - setup_gmodes=numpy.asarray(setup[1], dtype='double') - noise_params=numpy.asarray(setup[4], dtype='double') - DP1_star=setup_gmodes[0] - alpha_star=setup_gmodes[1] - coupling=numpy.double(setup[2][0]) - Ncoef=numpy.double(setup[2][1]) # Defines the number of modes on each side of numax - #Hmax_l0=numpy.double(setup[2][2]) # Maximum height for the l=0. Heights of other modes are set using visibilities (make_synthetic_asymptotic_star()). - maxHNR_l0=numpy.double(setup[2][2]) # Maximum HNR for the l=0. l=0 Heights depend on the noise background. Heights of other modes are set using visibilities (make_synthetic_asymptotic_star()). - Gamma_max_l0=numpy.double(setup[2][3]) # Width at numax for l=0 - numax_spread=numpy.double(setup[2][4]) # uniform numax spread in %. If <=0, no spread is applied - Vl=numpy.double(setup[3][0:3]) # Visibilities for l=1,2, 3 - H0_spread=numpy.double(setup[3][3]) # Control for the % of variance around the injected Height profile for l=0 - Teff_star=-1 # No needed in version 2 - rot_env=numpy.double(setup_pmodes[0]) - rot_core=-1 - rot_ratio=numpy.double(setup_pmodes[1]) - Dnu_star=numpy.double(setup_pmodes[2]) - epsilon_star=numpy.double(setup_pmodes[3]) - delta0l_percent_star=numpy.double(setup_pmodes[4]) - beta_p_star=numpy.double(setup_pmodes[5]) - nmax_spread_star=numpy.double(setup_pmodes[6]) - numax_star=numax_from_stello2009(Dnu_star, spread=numax_spread) - passed=True - if version == 3: - setup_pmodes=numpy.asarray(setup[0], dtype='double') - setup_gmodes=numpy.asarray(setup[1], dtype='double') - noise_params=numpy.asarray(setup[4], dtype='double') - DP1_star=setup_gmodes[0] - alpha_star=setup_gmodes[1] - coupling=numpy.double(setup[2][0]) - Ncoef=numpy.double(setup[2][1]) # Defines the number of modes on each side of numax - #Hmax_l0=numpy.double(setup[2][2]) # Maximum height for the l=0. Heights of other modes are set using visibilities (make_synthetic_asymptotic_star()). - maxHNR_l0=numpy.double(setup[2][2]) # Maximum HNR for the l=0. l=0 Heights depend on the noise background. Heights of other modes are set using visibilities (make_synthetic_asymptotic_star()). - Gamma_max_l0=numpy.double(setup[2][3]) # Width at numax for l=0 - numax_spread=numpy.double(setup[2][4]) # uniform numax spread in %. If <=0, no spread is applied - Vl=numpy.double(setup[3][0:3]) # Visibilities for l=1,2, 3 - H0_spread=numpy.double(setup[3][3]) # Control for the % of variance around the injected Height profile for l=0 - Teff_star=-1 # No needed in version 2 - rot_env=numpy.double(setup_pmodes[0]) - rot_core=numpy.double(setup_pmodes[1]) - rot_ratio=-1 - Dnu_star=numpy.double(setup_pmodes[2]) - epsilon_star=numpy.double(setup_pmodes[3]) - delta0l_percent_star=numpy.double(setup_pmodes[4]) - beta_p_star=numpy.double(setup_pmodes[5]) - nmax_spread_star=numpy.double(setup_pmodes[6]) - numax_star=numax_from_stello2009(Dnu_star, spread=numax_spread) - passed=True - if passed == False: - print('Error: Incorrect model version specified. The model version should be either 1, 2 or 3') - print(' Cannot proceed. The program will exit now') - exit() - - #numax_star=570. # Line to force artificially numax_star to a certain value - - fmin=numax_star -Ncoef*Dnu_star - fmax=numax_star +(Ncoef+2)*Dnu_star # BEWARE: ADD HOC CORRECTION FOR NCOEF HERE ===> Avoid the weird cut of power seen at high HNR - - nmax_star=numax_star/Dnu_star - epsilon_star - - #print("nmax_spread_star=", nmax_spread_star) - if nmax_spread_star > 0: - nmax_star=numpy.random.uniform(nmax_star*(1.-nmax_spread_star/100), nmax_star*(1. + nmax_spread_star/100)) - - alpha_p_star=beta_p_star/nmax_star - - #nu_l0, nu_p_l1, nu_g_l1, nu_m_l1, nu_l2, nu_l3, width_l0, width_m_l1, width_l2, width_l3, height_l0, height_m_l1, height_l2, height_l3, a1_l1, a1_l2, a1_l3=make_synthetic_asymptotic_star(Teff_star, numax_star, Dnu_star, epsilon_star, D0_star, DP1_star, alpha_star, coupling, fmin, fmax, Hmax_l0=Hmax_l0, Gamma_max_l0=Gamma_max_l0, rot_env_input=rot_env, rot_ratio_input=rot_ratio, rot_core_input=rot_core, output_file_rot=output_file_rot) - #nu_l0, nu_p_l1, nu_g_l1, nu_m_l1, nu_l2, nu_l3, width_l0, width_m_l1, width_l2, width_l3, height_l0, height_m_l1, height_l2, height_l3, a1_l1, a1_l2, a1_l3=make_synthetic_asymptotic_star(Teff_star, numax_star, Dnu_star, epsilon_star, delta0l_percent_star, alpha_p_star, nmax_star, DP1_star, alpha_star, coupling, fmin, fmax, Hmax_l0=Hmax_l0, Gamma_max_l0=Gamma_max_l0, rot_env_input=rot_env, rot_ratio_input=rot_ratio, rot_core_input=rot_core, output_file_rot=output_file_rot) - nu_l0, nu_p_l1, nu_g_l1, nu_m_l1, nu_l2, nu_l3, width_l0, width_m_l1, width_l2, width_l3, height_l0, height_m_l1, height_l2, height_l3, a1_l1, a1_l2, a1_l3=make_synthetic_asymptotic_star(Teff_star, numax_star, Dnu_star, epsilon_star, delta0l_percent_star, alpha_p_star, nmax_star, DP1_star, alpha_star, coupling, fmin, fmax, maxHNR_l0=maxHNR_l0, noise_params=noise_params, Gamma_max_l0=Gamma_max_l0, rot_env_input=rot_env, rot_ratio_input=rot_ratio, rot_core_input=rot_core, output_file_rot=output_file_rot, Vl=Vl, H0_spread=H0_spread, filetemplate=filetemplate) - nu_m_l1=nu_m_l1[1:] # remove the first one as it has always 0 amplitude (for some unclear reason) - width_m_l1=width_m_l1[1:] - height_m_l1=height_m_l1[1:] - a1_l1=a1_l1[1:] - #print('Checking nu_l0 after the generating function:', nu_l0) - - fout=open(output_file, 'w') - fout.write('# Configuration of mode parameters. This file was generated by bump_DP.py (external python program)') - fout.write('# Input mode parameters. degree / freq / H / W / splitting a1 / eta / a3 / b (mag) / alfa (mag) / asymetry / inclination\n') - #stri='{10:.3f}'.format(numax_star) - #fout.write('# numax_star = ' + str(numax_star)) - # generate an isotropic distribution for the inclination - inc_rad=isotropic_inclination() - inc_star=inc_rad*180./numpy.pi - - #write_range_modes(numax_star, Dnu_star, Ncoef, output_file=output_file_range) - write_range_modes_v2(nu_l0, Dnu_star, numax_star, nmax_star, output_file=output_file_range) - - print('Writing on file :', output_file) - #print('Stellar inclination: ', inc_rad, ' ===> ', inc_star) - el=0 - for en in range(len(nu_l0)): - #print('en=', en, ' nu_l0[', en, ']=', nu_l0[en]) - nu=nu_l0[en] - w=width_l0[en] - h=height_l0[en] - a1=0 - eta=0 - a3=0 - asym=0 - inc=inc_star - b=0 - alfa=0 - stri='{0} {1:.5f} {2:.5f} {3:.5f} {4:.4f} {5:.10f} {6:0.5f} {7} {8} {9} {10:.3f}'.format(el, nu, h, w, a1, eta, a3, b, alfa, asym, inc) - fout.write(stri) - fout.write('\n') - el=1 - for en in range(len(nu_m_l1)): - nu=nu_m_l1[en] - w=width_m_l1[en] - h=height_m_l1[en] - a1=a1_l1[en] - eta=0 - a3=0 - asym=0 - inc=inc_star - b=0 - alfa=0 - stri='{0} {1:.5f} {2:.5f} {3:.5f} {4:.4f} {5:.10f} {6:0.5f} {7} {8} {9} {10:.3f}'.format(el, nu, h, w, a1, eta, a3, b, alfa, asym, inc) - fout.write(stri) - fout.write('\n') - el=2 - for en in range(len(nu_l2)): - nu=nu_l2[en] - w=width_l2[en] - h=height_l2[en] - a1=a1_l2[en] - eta=0 - a3=0 - asym=0 - inc=inc_star - b=0 - alfa=0 - stri='{0} {1:.5f} {2:.5f} {3:.5f} {4:.4f} {5:.10f} {6:0.5f} {7} {8} {9} {10:.3f}'.format(el, nu, h, w, a1, eta, a3, b, alfa, asym, inc) - fout.write(stri) - fout.write('\n') - el=3 - for en in range(len(nu_l3)): - nu=nu_l3[en] - w=width_l3[en] - h=height_l3[en] - a1=a1_l3[en] - eta=0 - a3=0 - asym=0 - inc=inc_star - b=0 - alfa=0 - stri='{0} {1:.5f} {2:.5f} {3:.5f} {4:.4f} {5:.10f} {6:0.5f} {7} {8} {9} {10:.3f}'.format(el, nu, h, w, a1, eta, a3, b, alfa, asym, inc) - fout.write(stri) - fout.write('\n') - fout.close() - print(' ===> frequencies, heights, widths of l=0,1,2,3 p and mixed modes created successfully...') - - -def write_range_modes(numax, Dnu, Ncoef, output_file='star_params.range'): - - fmin=numax-Ncoef*Dnu - fmax=numax+Ncoef*Dnu - - fout=open(output_file, 'w') - fout.write('# min and max frequencies for the relevant modes. This file was generated by bump_DP.py (external python program)') - fout.write('\n') - stri='{0:.3f} {1:.3f} '.format(fmin, fmax) - fout.write(stri) - fout.write('\n') - fout.close() - -def write_range_modes_v2(nu_l0, Dnu, numax, nmax_star, output_file='star_params.range'): - - fmin=min(nu_l0) - Dnu/3 - fmax=max(nu_l0) + Dnu/3 - - fout=open(output_file, 'w') - fout.write('# numax and min and max frequencies for the relevant modes. The third parameter is nmax_star, the position of the curvature for the 2nd order equation of Freqs. This file was generated by bump_DP.py (external python program)') - fout.write('\n') - stri='{0:.3f} {1:.3f} {2:.3f} {3:.5f}'.format(numax, fmin, fmax, nmax_star) - fout.write(stri) - fout.write('\n') - fout.close() - - -# A function that allows you to test and visualise the results from make_synthetic_asymptotic_star() -def test_asymptotic_star(Dnu_star=20, DP1_star=80, q_star=0.15, Teff_star=5300.): - # Define global Pulsation parameters - el=1. - #Dnu_star=30. # RGB star - #DP1_star=120. # RGB star - #Dnu_star=55 #15 # microHz - #DP1_star=350 #85 # microHz, typical for a RGB with Dnu_p=10 (see Fig. 1 of Mosser+2014, https://arxiv.org/pdf/1411.1082.pdf) - #q_star=0.15 # Fix the coupling term - - # Parameters for p modes that follow exactly the asymptotic relation of p modes - D0_star=Dnu_star/100. - epsilon_star=0.4 - - # Parameters for g modes that follow exactly the asymptotic relation of g modes for a star with radiative core - alpha_star=0. - - # Define the frequency range for the calculation by (1) getting numax from Dnu and (2) fixing a range around numax - numax_star=numax_from_stello2009(Dnu_star) - fmin=numax_star - 5*Dnu_star - fmax=numax_star + 5*Dnu_star - - nu_l0, nu_p_l1, nu_g_l1, nu_m_l1, nu_l2, nu_l3, width_l0, width_m_l1, width_l2, width_l3, height_l0, height_l1, height_l2, height_l3, a1_l1, a1_l2, a1_l3=make_synthetic_asymptotic_star(Teff_star, numax_star, Dnu_star, epsilon_star, D0_star, DP1_star, alpha_star, q_star, fmin, fmax) - - plt.plot(nu_l0, width_l0, color='Black', linestyle='--') - plt.plot(nu_l0, height_l0, color='Blue', linestyle='--') - plt.plot(nu_m_l1, height_l1, color='Orange', linestyle='--') - plt.plot(nu_l0, height_l0*1.5, color='Orange', linestyle='--') - - plt.plot(nu_m_l1, width_m_l1, color='Red', linestyle='--') - plt.plot(nu_m_l1, width_m_l1, 'ro') - plt.axvline(x=numax_star, color='red', linestyle='--') - plt.axvline(x=numax_star - 5*Dnu_star, color='green', linestyle='--') - plt.axvline(x=numax_star + 5*Dnu_star, color='green', linestyle='--') - plt.show() - - # For testing ksi_fct2 - nu=numpy.linspace(fmin ,fmax, 10000) - - Dnu_p=numpy.repeat(Dnu_star, len(nu_p_l1)) - DPl=numpy.repeat(DP1_star, len(nu_g_l1)) - - ksi=ksi_fct2(nu, nu_p_l1, nu_g_l1, Dnu_p, DPl, q_star) - ksi_nu_m=ksi_fct2(nu_m_l1, nu_p_l1, nu_g_l1, Dnu_p, DPl, q_star, norm_method='slow') - plt.plot(nu, ksi, color='Orange') - plt.plot(nu_m_l1, ksi_nu_m, 'ro') - for p in nu_p_l1: - plt.axvline(x=p, color='blue', linestyle='--') - #print(p) - plt.show() - - plt.plot(nu_m_l1, a1_l1, color='Red', linestyle='--') - plt.plot(nu_m_l1, a1_l1, 'ro') - #plt.plot(nu_m_l1, ksi_nu_m, 'ro') - for p in nu_p_l1: - plt.axvline(x=p, color='blue', linestyle='--') - #print(p) - plt.show() - - -# A function that allows you to test and visualise the results from make_synthetic_asymptotic_star() -def test_asymptotic_star_v2(Dnu_star=55, epsilon_star=0.1, D0_percent=1./100, DP1_star=350, q_star=0.15, rot_envelope=30., rot_ratio=5.): - # Define global Pulsation parameters - el=1. - #Dnu_star=30. # RGB star - #DP1_star=120. # RGB star - #Dnu_star=55 #15 # microHz - #DP1_star=350 #85 # microHz, typical for a RGB with Dnu_p=10 (see Fig. 1 of Mosser+2014, https://arxiv.org/pdf/1411.1082.pdf) - #q_star=0.15 # Fix the coupling term - - # Parameters for p modes that follow exactly the asymptotic relation of p modes - D0_star=Dnu_star*D0_percent - - # Parameters for g modes that follow exactly the asymptotic relation of g modes for a star with radiative core - alpha_star=0. - - # Define the frequency range for the calculation by (1) getting numax from Dnu and (2) fixing a range around numax - numax_star=numax_from_stello2009(Dnu_star) - fmin=numax_star - 5*Dnu_star - fmax=numax_star + 5*Dnu_star - - Hmax_l0=1 - Gamma_max_l0=1 - Teff_star=-1 - rot_core=-1 - output_file_rot='test.rot' - - #nu_l0, nu_p_l1, nu_g_l1, nu_m_l1, nu_l2, nu_l3, width_l0, width_m_l1, width_l2, width_l3, height_l0, height_l1, height_l2, height_l3, a1_l1, a1_l2, a1_l3=make_synthetic_asymptotic_star(Teff_star, numax_star, Dnu_star, epsilon_star, D0_star, DP1_star, alpha_star, q_star, fmin, fmax, rot_env_input=rot_envelope, rot_ratio_input=rot_ratio) - nu_l0, nu_p_l1, nu_g_l1, nu_m_l1, nu_l2, nu_l3, width_l0, width_m_l1, width_l2, width_l3, height_l0, height_l1, height_l2, height_l3, a1_l1, a1_l2, a1_l3=make_synthetic_asymptotic_star(Teff_star, numax_star, Dnu_star, epsilon_star, D0_star, DP1_star, alpha_star, q_star, fmin, fmax, Hmax_l0=Hmax_l0, Gamma_max_l0=Gamma_max_l0, rot_env_input=rot_envelope, rot_ratio_input=rot_ratio, rot_core_input=rot_core, output_file_rot=output_file_rot) - print(" n + epsilon = nu_l0/Dnu_star: ", nu_l0/Dnu_star) - print(" n_mixed + epsilon = nu_m_l1/Dnu_star: ", nu_m_l1/Dnu_star) - print(" n + epsilon - 6D0/Dnu_star = nu_l2/Dnu_star: ", nu_l2/Dnu_star) - print(" n + epsilon - 12D0/Dnu_star = nu_l3/Dnu_star: ", nu_l3/Dnu_star) - - plt.plot(nu_l0, width_l0, color='Black', linestyle='--') - plt.plot(nu_l0, height_l0, color='Blue', linestyle='--') - plt.plot(nu_m_l1, height_l1, color='Orange', linestyle='--') - plt.plot(nu_l0, height_l0*1.5, color='Orange', linestyle='--') - - plt.plot(nu_m_l1, width_m_l1, color='Red', linestyle='--') - plt.plot(nu_m_l1, width_m_l1, 'ro') - plt.axvline(x=numax_star, color='red', linestyle='--') - plt.axvline(x=numax_star - 5*Dnu_star, color='green', linestyle='--') - plt.axvline(x=numax_star + 5*Dnu_star, color='green', linestyle='--') - plt.show() - - # For testing ksi_fct2 - nu=numpy.linspace(fmin ,fmax, 10000) - - Dnu_p=numpy.repeat(Dnu_star, len(nu_p_l1)) - DPl=numpy.repeat(DP1_star, len(nu_g_l1)) - - ksi=ksi_fct2(nu, nu_p_l1, nu_g_l1, Dnu_p, DPl, q_star) - ksi_nu_m=ksi_fct2(nu_m_l1, nu_p_l1, nu_g_l1, Dnu_p, DPl, q_star, norm_method='slow') - plt.plot(nu, ksi, color='Orange') - plt.plot(nu_m_l1, ksi_nu_m, 'ro') - for p in nu_p_l1: - plt.axvline(x=p, color='blue', linestyle='--') - #print(p) - plt.show() - - plt.plot(nu_m_l1, a1_l1, color='Red', linestyle='--') - plt.plot(nu_m_l1, a1_l1, 'ro') - #plt.plot(nu_m_l1, ksi_nu_m, 'ro') - for p in nu_p_l1: - plt.axvline(x=p, color='blue', linestyle='--') - #print(p) - plt.show() - -# A function that allows you to test and visualise the results from make_synthetic_asymptotic_star() -def test_asymptotic_star_O2p(Dnu_star=55, epsilon_star=0.1, delta0l_percent=1./100, beta_p_star=0.0076, DP1_star=350, q_star=0.15, rot_envelope=30., rot_ratio=5., maxHNR_l0=5): - # Define global Pulsation parameters - el=1. - - # Parameters for p modes that follow exactly the asymptotic relation of p modes - delta0l_star=-el*(el + 1) * delta0l_percent / 100. - - # Parameters for g modes that follow exactly the asymptotic relation of g modes for a star with radiative core - alpha_star=0. - - # Define the frequency range for the calculation by (1) getting numax from Dnu and (2) fixing a range around numax - numax_star=numax_from_stello2009(Dnu_star) - fmin=numax_star - 6*Dnu_star - fmax=numax_star + 6*Dnu_star - - nmax_star=numax_star/Dnu_star - epsilon_star - alpha_p_star=beta_p_star/nmax_star - - #Hmax_l0=1 - noise_params=[ 1., -2. , 0. , 1. ,-1. , 0. , 2. ,1.] - - #maxHNR_l0=10 - Gamma_max_l0=1 - Teff_star=-1 - rot_core=-1 - output_file_rot='test.rot' - Vl=[1.5,0.5, 0.07] - H0_spread=0 - filetemplate="templates/Sun.template" - #filetemplate="templates/11771760.template" - - #nu_l0, nu_p_l1, nu_g_l1, nu_m_l1, nu_l2, nu_l3, width_l0, width_m_l1, width_l2, width_l3, height_l0, height_l1, height_l2, height_l3, a1_l1, a1_l2, a1_l3=make_synthetic_asymptotic_star(Teff_star, numax_star, Dnu_star, epsilon_star, D0_star, DP1_star, alpha_star, q_star, fmin, fmax, Hmax_l0=Hmax_l0, Gamma_max_l0=Gamma_max_l0, rot_env_input=rot_envelope, rot_ratio_input=rot_ratio, rot_core_input=rot_core, output_file_rot=output_file_rot) - #nu_l0, nu_p_l1, nu_g_l1, nu_m_l1, nu_l2, nu_l3, width_l0, width_m_l1, width_l2, width_l3, height_l0, height_l1, height_l2, height_l3, a1_l1, a1_l2, a1_l3=make_synthetic_asymptotic_star(Teff_star, numax_star, Dnu_star, epsilon_star, delta0l_star, alpha_p_star, nmax_star, DP1_star, alpha_star, q_star, fmin, fmax, Hmax_l0=Hmax_l0, Gamma_max_l0=Gamma_max_l0, rot_env_input=rot_envelope, rot_ratio_input=rot_ratio, rot_core_input=rot_core, output_file_rot=output_file_rot) - nu_l0, nu_p_l1, nu_g_l1, nu_m_l1, nu_l2, nu_l3, width_l0, width_m_l1, width_l2, width_l3, height_l0, height_l1, height_l2, height_l3, a1_l1, a1_l2, a1_l3=make_synthetic_asymptotic_star(Teff_star, numax_star, Dnu_star, epsilon_star, delta0l_percent, alpha_p_star, nmax_star, DP1_star, alpha_star, q_star, fmin, fmax, maxHNR_l0=maxHNR_l0, noise_params=noise_params, Gamma_max_l0=Gamma_max_l0, rot_env_input=rot_envelope, rot_ratio_input=rot_ratio, rot_core_input=rot_core, output_file_rot=output_file_rot, Vl=Vl, H0_spread=H0_spread, filetemplate=filetemplate) - - tau=noise_params[3] * (numax_star*1e-6)**noise_params[4] + noise_params[5] # Granulation timescale (in seconds) - H=noise_params[0] * (numax_star*1e-6)**noise_params[1] + noise_params[2] # Granulation Amplitude - H=H/tau #This is due to the used definition for the Harvey profile (conversion from Hz to microHz) - tau=tau/1000. #conversion in ksec - p=noise_params[6] # power law (MUST BE CLOSE TO 2) - N0=noise_params[7]; - - - print(" ----- FINAL DIAGNOSTICS ------") - print( "[en] type l nu_l w_l h_l a1_l") - for en in range(len(nu_l0)): - print( "[" , en , "] " , "p 0 " , nu_l0[en] , " " , width_l0[en] , " " , height_l0[en] , " 0 ") - - for en in range(len(nu_p_l1)): - print( "[" , en , "] " , "p 1 " , nu_p_l1[en] , " " , " - " , " " , " - " , " - ") - - for en in range(len(nu_g_l1)): - print( "[" , en , "] " , "g 1 " , nu_g_l1[en] , " " , " - " , " " , " - " , " - ") - - for en in range(len(nu_m_l1)) : - print( "[" , en , "] " , "m 1 " , nu_m_l1[en] , " " , width_m_l1[en] , " " , height_l1[en] , a1_l1[en]) - - for en in range(len(nu_l2)) : - print( "[" , en , "] " , "p 2 " , nu_l2[en] , " " , width_l2[en] , " " , height_l2[en] , a1_l2[en]) - - for en in range(len(nu_l3)) : - print( "[" , en , "] " , "p 3 " , nu_l3[en] , " " , width_l3[en] , " " , height_l3[en] , a1_l3[en]) - print( " ------------------------------") - - - noise_background=harvey_1985([H, tau, p, N0], nu_l0) - - HNR=height_l0/noise_background - print(" nu(l=0) noise(nu) height(nu) hnr(nu)") - for i in range(len(nu_l0)): - print(nu_l0[i], noise_background[i], height_l0[i], HNR[i]) - - #exit() - - print(" n + epsilon = nu_l0/Dnu_star: ", nu_l0/Dnu_star) - print(" n_mixed + epsilon = nu_m_l1/Dnu_star: ", nu_m_l1/Dnu_star) - print(" n + epsilon - 6D0/Dnu_star = nu_l2/Dnu_star: ", nu_l2/Dnu_star) - print(" n + epsilon - 12D0/Dnu_star = nu_l3/Dnu_star: ", nu_l3/Dnu_star) - - #plt.plot(nu_l0, width_l0, color='Black', linestyle='--') - plt.plot(nu_l0, height_l0, color='Blue') - plt.plot(nu_m_l1, height_l1, color='Orange', linestyle='--') - plt.plot(nu_l0, height_l0*1.5, color='Orange', linestyle='--') - - plt.plot(nu_l0, noise_background, color="Black", linestyle="--") - - #plt.plot(nu_m_l1, width_m_l1, color='Red', linestyle='--') - plt.plot(nu_m_l1, width_m_l1, 'ro') - plt.axvline(x=numax_star, color='red', linestyle='--') - plt.axvline(x=numax_star - 5*Dnu_star, color='green', linestyle='--') - plt.axvline(x=numax_star + 5*Dnu_star, color='green', linestyle='--') - plt.show() - - # For testing ksi_fct2 - nu=numpy.linspace(fmin ,fmax, 10000) - - Dnu_p=numpy.repeat(Dnu_star, len(nu_p_l1)) - DPl=numpy.repeat(DP1_star, len(nu_g_l1)) - - ksi=ksi_fct2(nu, nu_p_l1, nu_g_l1, Dnu_p, DPl, q_star) - ksi_nu_m=ksi_fct2(nu_m_l1, nu_p_l1, nu_g_l1, Dnu_p, DPl, q_star, norm_method='slow') - ksi_nu_m_fast=ksi_fct2(nu_m_l1, nu_p_l1, nu_g_l1, Dnu_p, DPl, q_star) - plt.plot(nu, ksi, color='Orange') - plt.plot(nu_m_l1, ksi_nu_m, 'ro') - plt.plot(nu_m_l1, ksi_nu_m_fast, 'bo') - - for p in nu_p_l1: - plt.axvline(x=p, color='blue', linestyle='--') - #print(p) - plt.show() - - plt.plot(nu_m_l1, a1_l1, color='Red', linestyle='--') - plt.plot(nu_m_l1, a1_l1, 'ro') - ##plt.plot(nu_m_l1, ksi_nu_m, 'ro') - for p in nu_p_l1: - plt.axvline(x=p, color='blue', linestyle='--') - #print(p) - plt.show() - - -#main_star_generator(config_file='star_params.global', output_file='star_params.modes') -#test_asymptotic_star_O2p(Dnu_star=13.6584, epsilon_star=0.2991829204006325, delta0l_percent=1./100, beta_p_star=0.0076, DP1_star=82, q_star=0.15, rot_envelope=30., rot_ratio=5., maxHNR_l0=5) - - diff --git a/changelog.md b/changelog.md index ad40f66..d7caf31 100644 --- a/changelog.md +++ b/changelog.md @@ -1,10 +1,159 @@ # Version history # -### ROADMAP v0.9.0 (*Expected Release: TBD 2020*) ### +### v1.56 ### + * Bug Fix in asymptotic_mm_freeDp_numaxspread_curvepmodes_v3_GRANscaled_Kallinger2014: + The model was set with legacynoise=true instead of legacynoise=false, leading to completely wrong noise backgrounds + +### v1.55 ### + * Change in the definition of d0l for aj MS models so that it is consistent with RGB models that are based on the ARMM code. thus the prescription nu = (n + l/2 + epsilon)*Dnu - d0l is used now + * Cleanup configuration directory + * Adding new templates for MS and RGB taken from a select number of good quality MS stars + * removal of some obselete test files + * Consistency improvment for numax_spread between aj model and RGB model configuration file + +### v1.54 ### + * Consistency improvment: The definition of numax_spread was different between model generate_cfg_from_synthese_file_Wscaled_aj_GRANscaled_Kallinger2014 and + model generate_cfg_from_synthese_file_Wscaled_aj_GRANscaled, and model generate_cfg_from_synthese_file_Wscaled_aj_GRANscaled_Kallinger2014 and other models. + numax_spread had to be given in fraction of numax in one case, while it had to be in percentage in others. Now all quantities are in percentage. + +### v1.53 ### + * Edge case handling in bump.cpp + iterative_artificial_spectrum.cpp: When attempting to generate a Subgiant with no mixed modes solutions, the code was crashing. + As a crash without explanation is not satisfactory, I have added message specifying that the generated star has no mixed modes. A hard-coded switch is currently + set to a mode that lead to skipping the "failed" computation of mixed modes. This switch, called "neverfail" inside bump.cpp can be also set to a safe exit (neverfail = 0) + or to a process continuing after replacing the solution with pure p modes (neverfail =2) + +### v1.52 ### + * Adding the possibility to modify the output Data directory. After compilation, type ./specsim --help for further details. + * Adding an option to create automatically the Data directory and its subdirectories if they don't exist. + +### v1.51 ### + * New model "asymptotic_mm_freeDp_numaxspread_curvepmodes_v3_GRANscaled_Kallinger2014": This is the equivalent to + "generate_cfg_from_synthese_file_Wscaled_aj_GRANscaled_Kallinger2014" but for Red Giants. The noise follows Kallinger2014 + which allows for a better training. Read carefully the notes on v1.50 to understand the new way of handling the noise. + Eventually, these models will replace the old non-GRANscaled. + * The new model requiring ARMM v1.11, this one is also updated in specsim v1.51 + +### v1.50 ### + * New model: "generate_cfg_from_synthese_file_Wscaled_aj_GRANscaled_Kallinger2014". This model allows to generate + noise following closely the Kallinger+2014 prescription and ensemble values derived from a sample of RGB + MS stars. + Using MCMC, I have verified that this model is fairly accurate. Note that this model use the new structure of parameter + that is decomposed into two files: the main.cfg (see the example configuration main.cfg.aj_GRANscaledKallinger) and the + noise_Kallinger2014.cfg. The program accolate the configuration present in the two, to create a full model of noise + modes. This structure is prefered here due to (1) the high number of parameters in the Kallinger+2014 model (enhanced clarity with two shorter tables that fit on screen), (2) the necessity to define many Kallinger+2014 parameters as drawn from a Gaussian distribution instead of a Uniform distribution and, (3) the necessity to avoid confusion between the variables systematically drawn from a uniform distribution (unless fixed) defined the main.cfg files and the noise variables that very often drawn from the Gaussian distributions given in the Kallinger's paper. + Incidentally, this has imposed an important restructuration of the way the random generation works. + * The adoption of v1.45_alt as the main branch, instead of v1.45. + * Bug fix: The maximum frequency of the spectrum was wrong by a factor 2. + +### v1.45 and v1.45_alt ### + * Bug fix in model asymptotic_mm_freeDp_numaxspread_curvepmodes_v3: indexes for the noise parameters were pointing to the wrong parameters + indexes for a2_l3, a3_l3, a4_l3 when checking <=-9999 were wrong. + +### v1.44_alt ## + * Take the version 1.44 but change the way the Gamma_spread parameter acts. THIS VERSION IS EXPERIMENTAL: Gamma_spread IS APPLIED ON THE GAMMA_REF INSTEAD OF GAMMA_STAR + +### v.1.44 ## + * For model "asymptotic_mm_freeDp_numaxspread_curvepmodes_v3", Fix the logic that controls how we can switch between using predefined frequencies in the configuration file "Configurations/MixedModes_models/star_params.theoretical" and the global main.cfg configuration files (in "Configurations/main.cfg*"). This avoids configuration mistakes that may not be obvious to the final user. In addition, I remived the "Configurations/MixedModes_models/star_params.theoretical" and kept only the "Configurations/MixedModes_models/star_params.theoretical.EXAMPLE". This again to avoid misconfigurations. + +### v1.43 ## + * Adding do_flat_noise parameter in the aj model. If do_flat_noise<=0, the noise background will the one of the template (Harvey-like). Otherwise, the noise background will be flat and set at the value given by do_flat_noise (eg. if do_flat_noise = 0.7, then N0=0.7). do_flat_noise can be a variable and does not need to be a constant (ie, if one wants to train a ML with a variable flat noise background). But only >0 do_flat_noise will behave that way. <=0 will necessarily lead to fixed background: Be careful with the min and max value of the parameters and the fix/variable flag. + +### v1.42 ## + * Bug fixes in the noise background of aj model + +### v1.41 ## + * Adding Gamma_spread parameter in generate_cfg_from_synthese_file_Wscaled_aj + +### v1.4 ## + * Adding H_spread and nu_spread parameters in generate_cfg_from_synthese_file_Wscaled_aj and generate_cfg_from_synthese_file_Wscaled_aj_GRANscaled models. The idea is to perturbate the heights (H_spread) and frequencies (nu_spread) with a random quantity to avoid deterministic learning of these quantities by a ML method + * New parallelised Alm code (version 1.3) + +### v1.31 ## + * Adding a help for functions using Doxygen library + * Improved the algorithm for creating the combinations in combi.cpp + * Replacing the old "integrate" by the new "Alm" + +### v1.3 ### + * Models asymptotic_mm_freeDp_numaxspread_curvepmodes_v2 and asymptotic_mm_freeDp_numaxspread_curvepmodes_v3 updated to work with the new parallelized ARMM solver. + * Models asymptotic_mm_freeDp_numaxspread_curvepmodes_v2 and asymptotic_mm_freeDp_numaxspread_curvepmodes_v3 now handle ajl coefficients. Read instructions in the example main.cfg files associated to these models + +### v1.2 ### + * New model: + - generate_cfg_from_synthese_file_Wscaled_aj_GRANscaled allows you to generate a simulated spectra with the noise brackground of your choice, assuming that this noise scales with numax + +### v1.1.2 ### + * Improvments: + - Adding the possibility to enter your own main file name (instead of the default main.cfg) and your own directory for the configuration file (instead of the default 'Configurations/') + - Improved showversion() function + - Improved handling of options by using the boost::program_options library + +### v1.1.1 ### + * Improvments: + - In the aj model, adding rescaling capabilities so that Dnu, epsilon, numax and d0l can be modified +### v1.1.0 ### + * Bug Fix: + - Removed system command that were copying .rot and .range files from a temporary directory to the data directory. This was a relic of the time when python3 was called to solve the ARMM + * Addition: + - In asymptotic_mm_freeDp_numaxspread_curvepmodes_v3, added the possibility to provide a frequency input file. Can be used to link the simulator with frequencies generated by a Stellar evolution code + oscillation code. The file must be placed in Configurations/MixedModes_models. Its name must be 'star_params.theoretical'. An example of such a file is provided in that directory. Note that the syntax is strict and no change in the file structure (order of its inputs, number of comments, etc...) should be performed. + Note also that this file will be used ONLY if the second line contains a 1 + Like this, for the first two lines: + # use_nu_nl : 0 = false / 1 = true + 1 +### v1.0.4-dev ### + * Bug Fix: + - Corrected a bug happening when reading the cfg file due to imporper syntax + * Improvements: + - Minimising the changes required to bump_DP.cpp amd solver_mm.cpp when migrating them from the standalone version: Only need to remove the omp section + - Slight restructuration of the ARMM calls + * Addition: + - Introducing the Hfactor and the Wfactor in asymptotic models for the mixed modes: It allows to 'break' the assumption of (1) equipartition of energy (Hfactor>0) and (2) inertia scaling with the Width, ie not considering that the damping is purely due to the evanescent zone between cavity (Wfactor<1) +### v1.0.3-dev ### + * Bug Fix: + - Correcting eta in the *Hgauss model + - The rescaling of HNR in the models 'generate_cfg_from_synthese_file_Wscaled_act_asym_a1ovGamma' , 'generate_cfg_from_synthese_file_Wscaled_a1a2a3asymovGamma', 'generate_cfg_from_synthese_file_Wscaled_Alm', 'generate_cfg_from_synthese_file_Wscaled_aj' was incorrect due to a wrong generalisation from the old IDL code. + The old code was considering a fix noise background of N=N0=1. The new implementation was supposed to instead keep the noise background + profile of the reference star in the new artificial star. This was not performed as it was still considering N0=1. + The modification consist in replacing N0 by N(v)=local_noise + - The rescaling was made considering the absolute highest HNR. This implies that it was considering the HNRmax for the l=1 (due to higher visibility of that mode). Instead, it is better to use the HNRmax(l=0) for reference when defining the HNR. A change was made in that way. + - Fix an issue with some infiles used as a template: The Cadence and Tobs was wrongly commented by #, which was leading to ignore the first l=0 + - Fix an issue with the names of the variables in the Combinations.txt file: Some parameters names could be sticked together + +### v1.0.2-dev ### + * Improvment: + - Adding the possibility to use a file for defining the common section. See explanations in the Configuration/common_modelfile directory + +### v1.0.1-dev ### + * Bug fixes and improvments: + - generate_cfg_from_synthese_file_Wscaled_a1Alma3asymovGamma(): + * Renaming to generate_cfg_from_synthese_file_Wscaled_Alm() + * Fixing error in the Alm computation + optimisation following the latest release of acoef_checks + * Possibility to use of all of aj coefficient up to a6 + * New model: generate_cfg_from_synthese_file_Wscaled_aj() + * Improvments: + - Grid approach now handles *Alm() model type + - Grid approach now handles *aj() model type + - Update of build_lorentzian.* to the latest version from the cpp and adding dependences. Large code-quality improvments + +### v1.0.0-dev ### * Added functionalities: - - Code the grid capability - - Implement numax variable on generate_cfg_from_synthese_file_Wscaled_act_asym_a1ovGamma - - Adding random errors around the second order asymptotic relations. Try to make them spline-consistent + - Implement the new model generate_cfg_from_synthese_file_Wscaled_a1Alma3asymovGamma: Handling simulations with Activity effect on splittings using Alm() function + - Adding the grid approach within this code: NOTE THAT THERE MIGHT BE SOME BUGS HERE + - Adding new functionalities to the configuration file: + * do_modelfiles : If set to 1, it will make a .model file adequate for the TAMCMC code + * limit_data_range: If set to 1, it will limit the data file to the range where there is modes +/- 2*Dnu. Can hugely save space for large simulations + NOTE: This functionality is only valid for "artificial_spectrum_a1Alma3" + +### v0.9.1 [100%] ### + * Added functionalities: + - Implement on generate_cfg_from_synthese_file_Wscaled_a1a2a3asymovGamma: Handling simulation for a2 coeficient and a3 considering polynomials O2 for those + * Bug Fix: + - Fixing cfg template for main.cfg.MS.scaled + +### v0.9.0 (*Released on 20 Nov 2020*) ### + * Improvments: + - Compilation is now made possible using cmake + * Added functionalities: + - Using bump_DP.cpp and solver_mm.cpp instead of their python counter parts + * Bug Fix: + - Bugs on the definition of np_min and np_max corrected + - Bugs on the solver_mm that was not handling properly the second order polynomials for the p modes ### v0.8.97 (*Released on 21 April 2020*) ### * Improvments: diff --git a/combi.cpp b/combi.cpp new file mode 100755 index 0000000..4bf2f8d --- /dev/null +++ b/combi.cpp @@ -0,0 +1,130 @@ +/* + * combi.cpp + * + * Function that handle combination generation + * and read/write into files + * + * Created on: 10 Oct 2017 + * Author: obenomar + */ +/** + * @file combi.cpp + * @brief Function that handles combination generation and read/write into files + * + * This file contains functions for generating combinations and reading/writing them into files. + * + * @date 10 Oct 2017 + * @author obenomar + */ + +# include +# include +#include +# include +# include +#include +# include "data.h" +# include "ioproc.h" +# include "format.h" + +using Eigen::VectorXi; +using Eigen::VectorXd; +using Eigen::MatrixXd; + +/* +* Function that generates all possible combinations recursively +*/ +void generate_combinations(const MatrixXd& Values, const VectorXi& Nvalues, const int Nparams, MatrixXd& allcombi, long& z, VectorXd& current_combi, int current_param) { + if (current_param == Nparams) { + allcombi.row(z) = current_combi; + z++; + return; + } + + for (int i = 0; i < Nvalues[current_param]; i++) { + current_combi(current_param) = Values(i, current_param); + generate_combinations(Values, Nvalues, Nparams, allcombi, z, current_combi, current_param + 1); + } +} + +/* +* Function that generates all possible combinations +*/ +MatrixXd define_all_combinations(const MatrixXd& Values, const VectorXi& Nvalues, const int Nparams) { + long Ncombi = Nvalues.prod(); + MatrixXd allcombi(Ncombi, Nparams); + long z = 0; + VectorXd current_combi(Nparams); + + generate_combinations(Values, Nvalues, Nparams, allcombi, z, current_combi, 0); + + return allcombi; +} + + +long read_id_allcombi(std::string file_combi){ + + std::string lastline; + std::vector vals_last; + + lastline=read_lastline_ascii(file_combi); + vals_last=strsplit(strtrim(lastline), " "); + + std::cout << "lastline=" << lastline << std::endl; + //for(int i=0; i +# include +#include +# include +# include +#include +# include "ioproc.h" + +using Eigen::VectorXi; +using Eigen::VectorXd; +using Eigen::MatrixXd; + + +/** + * @brief Function that generates all possible combinations recursively + * + * This function generates all possible combinations of values using a recursive approach. + * + * @param Values The matrix of values for each parameter + * @param Nvalues The vector containing the number of values for each parameter + * @param Nparams The number of parameters + * @param allcombi The matrix to store all the combinations + * @param z The current row index in the allcombi matrix + * @param current_combi The vector to store the current combination + * @param current_param The current parameter index + */ +void generate_combinations(const MatrixXd& Values, const VectorXi& Nvalues, const int Nparams, MatrixXd& allcombi, long& z, VectorXd& current_combi, int current_param); + +/** + * @brief Function that generates all possible combinations + * + * This function generates all possible combinations of values using the generate_combinations function. + * + * @param Values The matrix of values for each parameter + * @param Nvalues The vector containing the number of values for each parameter + * @param Nparams The number of parameters + * + * @return The matrix containing all the combinations + */ +MatrixXd define_all_combinations(const MatrixXd& Values, const VectorXi& Nvalues, const int Nparams); + +/** + * @brief Read the ID from the last line of a file containing combinations + * + * This function reads the last line of a file containing combinations and extracts the ID from it. + * + * @param file_combi The path to the file containing combinations + * @return The ID extracted from the last line of the file + */ +long read_id_allcombi(std::string file_combi); + +/** + * @brief Write all combinations to a file + * + * This function writes all combinations to a file, along with other information such as model name and parameter names. + * + * @param allcombi The matrix containing all the combinations + * @param cte_params The vector of constant parameters + * @param cfg The configuration data + * @param fileout The path to the output file + * @param erase_old_file Flag indicating whether to erase the old file or append to it + * @param iter The current iteration + * @param id0 The initial ID + * @param cte_names The names of the constant parameters + * @param var_names The names of the variable parameters + * @param param_names The names of all parameters + * @return The ID extracted from the last line of the file + */ +std::string write_allcombi(MatrixXd& allcombi, VectorXd& cte_params, Config_Data cfg, std::string fileout, bool erase_old_file, long iter, long id0, + std::vector cte_names, std::vector var_names, std::vector param_names); + diff --git a/data.h b/data.h index b038c37..a6b8769 100644 --- a/data.h +++ b/data.h @@ -1,11 +1,11 @@ -/* - * data.h - * - * Header file that contains all kind of class/structures - * used to process and/or encapsulate data +/** + * @file data.h + * @brief Header file that contains all kinds of classes/structures used to process and/or encapsulate data. * - * Created on: 22 Feb 2016 - * Author: obenomar + * This file contains the declarations of various classes and structures that are used to process and encapsulate data. + * + * @date 22 Feb 2016 + * @author obenomar */ #pragma once @@ -14,53 +14,132 @@ #include #include "gnuplot-iostream.h" -//using namespace std; - using Eigen::MatrixXd; using Eigen::VectorXd; +/** + * @struct Data_Nd + * @brief Structure that represents a 2D array of data. + * + * This structure represents a 2D array of data, where each column contains the values of a given parameter. + */ +struct Data_Nd { + MatrixXd data; ///< 2D array in which each column contains the values of a given parameter. + std::vector header; ///< Header of the data. + std::vector labels; ///< Labels for each column of data. + std::vector units; ///< Units for each column of data. +}; -struct Data_Nd{ - MatrixXd data; // 2D array in which each columns are expected to contain the values of a given parameter - std::vector header; - std::vector labels; - std::vector units; +/** + * @struct Model_data + * @brief Structure that represents data for a single model. + * + * This structure represents the data for a single model from a read text file. It contains the parameters, frequencies, and their labels. + */ +struct Model_data { + VectorXd params; ///< 1D array with the data for one single model from the read text file. + std::vector labels_params; ///< Name of the parameters within params. + MatrixXd freqs; ///< Table of frequencies with (l,n). + std::vector labels_freqs; ///< Labels for each frequency in freqs. }; +/** + * @struct gnuplt_Data + * @brief Structure used for data encapsulation when plotting with gnuplot-iostream.h. + * + * This structure is used as an encapsulator for data when plotting with gnuplot-iostream.h. It contains x and y values for up to three series. + */ struct gnuplt_Data { -/* - * This is an encapsulator for data when ploting with gnuplot-iostream.h -*/ - double x; // x axis value - double y1; // y axis series 1 - double y2; // y axis series 2 - double y3; // y axis series 3 + double x; ///< x-axis value. + double y1; ///< y-axis value for series 1. + double y2; ///< y-axis value for series 2. + double y3; ///< y-axis value for series 3. }; -struct Config_Data{ -/* - * Encapsulate the parameters used to generate the spectra -*/ +/** + * @struct Star_params + * @brief Data structure used by models that need to read parameters of a reference star from a .in file. + * + * This data structure is used by models that need to read the parameters of a reference star from a .in file to operate. + */ +struct Star_params { + VectorXd spec_params; ///< Parameters of the reference star. + MatrixXd mode_params; ///< Mode parameters. + MatrixXd noise_params; ///< Noise parameters. + std::string identifier; ///< Identifier of the reference star. + std::string noise_model="Harvey-like"; ///< Type of noise model used in the star. Could be Harvey-like or Kallinger+2014 + double cadence; ///< Cadence of the observations. + double Tobs; ///< Total observation time. +}; - bool erase_old_files; // if set to 1 any older of same name will be erased - bool doplots; // if set to 0, no plots - bool write_inmodel; // if set to 0, output ascii file does not contain a column with the input model - std::string model_name; - std::string forest_type; - double Tobs, Cadence, Nspectra; - std::vector labels; - std::vector val_min, val_max, step, forest_params; +/** + * @struct Config_Data + * @brief Encapsulates the parameters used to generate the spectra. + * + * This structure encapsulates the parameters used to generate the spectra. + */ +struct Config_Data { + bool erase_old_files; ///< Flag indicating whether to erase older files of the same name. + bool doplots; ///< Flag indicating whether to generate plots. + bool write_inmodel; ///< Flag indicating whether to include the input model in the output ASCII file. + bool limit_data_range; ///< Flag indicating whether to limit the data range. + bool do_modelfiles; ///< Flag indicating whether to generate model files. + std::string modefile_modelname; ///< Model name written within the model file. + std::string model_name; ///< Model name within this program. + std::string forest_type; ///< Type of forest. + std::string extra_params; ///< Extra parameters encoded in a string. + std::vector template_files; ///< List of template files used to determine height and widths. + double Tobs; ///< Total observation time. + double Cadence; ///< Cadence of the observations. + double Nspectra; ///< Number of spectra. + double Nrealisation; ///< Number of realizations. + std::vector labels; ///< Labels for the parameters. + std::vector distrib; ///< Distribution for the variables. Either Uniform, Gaussian or Fix. + std::vector val_min; ///< Minimum values for the parameters. + std::vector val_max; ///< Maximum values for the parameters. + std::vector step; ///< Step values for the parameters. + std::vector forest_params; ///< Forest parameters. +}; +/** + * @brief Noise configuration used for Kallinger+2014 noise models + * + * This structure is to encapsulate the data read from a noise configuration file. + * It is used in models that involve a Kallinger+2014 noise parametrisation. This parametrisation has specificities (a large set of parameters, with Gaussian distribution) that does not make it easy to read if put directly in the main.cfg file. Furthermore, it avoids the user to make too much errors in setting the noise, as the values are data-driven and should not be modified + */ +struct Config_Noise { + // For the random case + std::vector name_random; ///< Name of the variable in the random case. + std::vector distrib_random; ///< Name of the distribution from which we draw random variables in the grid case. + std::vector x1_random; ///< First value associated to the distribution (eg. the mean of a Gaussian). + std::vector x2_random; ///< Second value associated to the distribution (eg. the standard deviation of a Gaussian). + std::vector kerror_random; ///< Enlargement factor in the case of a Gaussian distribution. + // For the grid case + std::vector name_grid; ///< Name of the variable in the grid case. + std::vector distrib_grid; ///< Name of the distribution from which we draw random variables in the grid case. + std::vector x1_grid; ///< First value associated to the distribution in the grid case (eg. the min of the range of a Uniform distribution). + std::vector x2_grid; ///< Second value associated to the distribution in the grid case (eg. the max of the range of a Uniform distribution). + std::vector kerror_grid; ///< Enlargement factor or any relevant value required to compute the distribution. }; +/** + * @typedef gnuplt_Dataset + * @brief Typedef for a vector of gnuplt_Data structures. + */ typedef std::vector gnuplt_Dataset; namespace gnuplotio { + /** + * @brief Template specialization for sending gnuplt_Data to an output stream. + */ template<> struct TextSender { + /** + * @brief Sends gnuplt_Data to an output stream. + * @param stream The output stream. + * @param v The gnuplt_Data structure to send. + */ static void send(std::ostream &stream, const gnuplt_Data &v) { - // TextSender::send(stream, v.x); - stream << " "; TextSender::send(stream, v.x); stream << " "; TextSender::send(stream, v.y1); @@ -68,10 +147,18 @@ namespace gnuplotio { TextSender::send(stream, v.y2); stream << " "; TextSender::send(stream, v.y3); - } }; } - - +/** + * @struct Deriv_out + * @brief Structure that keeps information about derivatives. + * + * This structure keeps information about derivatives, including the x values, derivative values, and error values. + */ +struct Deriv_out { + VectorXd xderiv; ///< x values for the derivatives. + VectorXd deriv; ///< Derivative values. + VectorXd error; ///< Error values. +}; diff --git a/derivatives_handler.cpp b/derivatives_handler.cpp new file mode 100755 index 0000000..cff84bf --- /dev/null +++ b/derivatives_handler.cpp @@ -0,0 +1,611 @@ +/** + * @file derivatives_handler.cpp + * @brief A set of function to compute derivation + * + * This is a set of function that can compute the first and second derivatives for any discrete function + */ +#include +#include +#include "derivatives_handler.h" + +using Eigen::VectorXd; +using Eigen::VectorXi; +using Eigen::MatrixXd; + + +// --------------------------------------------------------- +// -------------- **** 1st Derivative ***** ---------------- +// --------------------------------------------------------- + + +/** + * @brief Computes the first order backward derivative with 1st order precision. + * + * @param y A vector containing 2 points: y at x-1 (y[0]) and y at x (y[1]). + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vector y must have a size of at least 2. + * If the size is less than 2, the program will exit with an error message. + */ +Deriv_out Fstder_backward_1err_reggrid(const VectorXd& y){ + Deriv_out der; + + der.deriv.resize(y.size()-1); + + if(y.size() < 2){ + std::cout << "Vectors must be at least of size 2 to compute the first order backward derivative at first order precision" << std::endl; + std::cout << "The program will stop now" << std::endl; + exit(EXIT_FAILURE); + } else{ + for(int i=0; i +#include +#include + +// Include the header file for the functions being tested +#include "my_functions.h" + +BOOST_AUTO_TEST_CASE(test_derivatives) +{ + VectorXd beta, dx, x; + Deriv_out dout, dout2; + + dx.resize(100); + x.resize(100); + beta.resize(100); + + for (int i = 0; i < beta.size(); i++) + { + dx[i] = 1; + if (i != 0) + x[i] = x[i - 1] + dx[i]; + else + x[i] = 0; + + beta[i] = x[i] * x[i] + 10; + } + + dout = Frstder_adaptive_reggrid(beta); + dout2 = Scndder_adaptive_reggrid(beta); + + std::cout << " ----- Without using a X-vector ----" << std::endl; + std::cout << "First Derivatives=" << std::endl; + for (int i = 0; i < beta.size(); i++) + std::cout << "x[" << i << "]=" << x[i] << " beta[" << i << "]=" << beta[i] << " deriv1[" << i << "]=" << dout.deriv[i] << std::endl; + + std::cout << "Second Derivative=" << std::endl; + for (int i = 0; i < beta.size(); i++) + std::cout << "x[" << i << "]=" << x[i] << " beta[" << i << "]=" << beta[i] << " deriv2[" << i << "]=" << dout2.deriv[i] << std::endl; + + for (long i = 0; i < beta.size(); i++) + { + dx[i] = 0.34435; //- 0.001*i; // 0.1*i; + if (i != 0) + x[i] = x[i - 1] + dx[i]; + else + x[i] = 0; + + beta[i] = x[i] * x[i] + 10; + } + + dout = Frstder_adaptive_reggrid(beta, x); + dout2 = Scndder_adaptive_reggrid(beta, x); + std::cout << " ----- Using X-vector (regular spacing) ----" << std::endl; + std::cout << "First Derivatives=" << std::endl; + for (int i = 0; i < beta.size(); i++) + std::cout << "x[" << i << "]=" << x[i] << " beta[" << i << "]=" << beta[i] << " deriv1[" << i << "]=" << dout.deriv[i] << std::endl; + + std::cout << "Second Derivative=" << std::endl; + for (int i = 0; i < beta.size(); i++) + std::cout << "x[" << i << "]=" << x[i] << " beta[" << i << "]=" << beta[i] << " deriv2[" << i << "]=" << dout2.deriv[i] << std::endl; + + // Add your assertions here + BOOST_CHECK_EQUAL(dout.deriv.size(), beta.size()); + BOOST_CHECK_EQUAL(dout2.deriv.size(), beta.size()); +} +*/ \ No newline at end of file diff --git a/derivatives_handler.h b/derivatives_handler.h new file mode 100755 index 0000000..987de53 --- /dev/null +++ b/derivatives_handler.h @@ -0,0 +1,236 @@ +/** + * @file derivatives_handler.h + * @brief A set of function to compute derivation + * + * This is a set of function that can compute the first and second derivatives for any discrete function + */ +#pragma once +#include +#include +#include "data.h" + +using Eigen::VectorXd; +using Eigen::VectorXi; +using Eigen::MatrixXd; + + +// --------------------------------------------------------- +// -------------- **** 1st Derivative ***** ---------------- +// --------------------------------------------------------- + +/** + * @brief Computes the first order backward derivative with 1st order precision. + * + * @param y A vector containing 2 points: y at x-1 (y[0]) and y at x (y[1]). + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vector y must have a size of at least 2. + * If the size is less than 2, the program will exit with an error message. + */ +Deriv_out Fstder_backward_1err_reggrid(const VectorXd& y); + +/** + * @brief Computes the first order backward derivative with 1st order precision. + * + * @param y A vector containing 2 points: y at x-1 (y[0]) and y at x (y[1]). + * @param x A vector containing the corresponding x values for the points in y. + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vectors y and x must have a size of at least 2. + * If the size is less than 2, the program will exit with an error message. + */ +Deriv_out Fstder_backward_1err_reggrid(const VectorXd& y, const VectorXd& x); + +/** + * @brief Computes the first order forward derivative with 1st order precision. + * + * @param y A vector containing 2 points: y at x (y[0]) and y at x+1 (y[1]). + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vector y must have a size of at least 2. + * If the size is less than 2, the program will exit with an error message. + */ +Deriv_out Fstder_forward_1err_reggrid(const VectorXd& y); + +/** + * @brief Computes the first order forward derivative with 1st order precision. + * + * @param y A vector containing 2 points: y at x (y[0]) and y at x+1 (y[1]). + * @param x A vector containing the corresponding x values for the points in y. + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vectors y and x must have a size of at least 2. + * If the size is less than 2, the program will exit with an error message. + */ +Deriv_out Fstder_forward_1err_reggrid(const VectorXd& y, const VectorXd& x); + +/** + * @brief Computes the first order centered derivative with 2nd order precision. + * + * @param y A vector containing 3 points: y at x-1 (y[0]), y at x (y[1]), and y at x+1 (y[2]). + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vector y must have a size of at least 3. + * If the size is less than 3, the program will exit with an error message. + */ +Deriv_out Fstder_centered_2err_reggrid(const VectorXd& y); + +/** + * @brief Computes the first order centered derivative with 2nd order precision. + * + * @param y A vector containing 3 points: the position y at x-1 (y[0]), y at x (y[1]), and y at x+1 (y[2]). + * @param x A vector containing the corresponding x values for the points in y. + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vectors y and x must have a size of at least 3. + * If the size is less than 3, the program will exit with an error message. + */ +Deriv_out Fstder_centered_2err_reggrid(const VectorXd& y, const VectorXd& x); + +/** + * @brief Computes the first order centered derivative with 4th order precision. + * + * @param y A vector containing 5 points: the position y at x-2 (y[0]) to y at x+2 (y[4]). + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vector y must have a size of at least 5. + * If the size is less than 5, the program will exit with an error message. + */ +Deriv_out Fstder_centered_4err_reggrid(const VectorXd y); + +/** + * @brief Computes the first order centered derivative with 4th order precision. + * + * @param y A vector containing 5 points: the position y at x-2 (y[0]) to y at x+2 (y[4]). + * @param x A vector containing the corresponding x values for the points in y. + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vectors y and x must have a size of at least 5. + * If the size is less than 5, the program will exit with an error message. + */ +Deriv_out Fstder_centered_4err_reggrid(const VectorXd& y, const VectorXd& x); + +/** + * @brief Computes the second order backward derivative with 1st order precision. + * + * @param y A vector containing 3 points: the position y at x-2 (y[0]) to y at x (y[2]). + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vector y must have a size of at least 3. + * If the size is less than 3, the program will exit with an error message. + */ +Deriv_out Scndder_backward_1err_reggrid(const VectorXd& y); + +/** + * @brief Computes the second order backward derivative with 1st order precision. + * + * @param y A vector containing 3 points: the position y at x-2 (y[0]) to y at x (y[2]). + * @param x A vector containing the corresponding x values for the points in y. + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vectors y and x must have a size of at least 3. + * If the size is less than 3, the program will exit with an error message. + */ +Deriv_out Scndder_backward_1err_reggrid(const VectorXd& y, const VectorXd& x); + +/** + * @brief Computes the second order forward derivative with 1st order precision. + * + * @param y A vector containing 3 points: the position y at x (y[0]) to y at x+2 (y[2]). + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vector y must have a size of at least 3. + * If the size is less than 3, the program will exit with an error message. + */ +Deriv_out Scndder_forward_1err_reggrid(const VectorXd& y); + +/** + * @brief Computes the second order forward derivative with 1st order precision. + * + * @param y A vector containing 3 points: the position y at x (y[0]) to y at x+2 (y[2]). + * @param x A vector containing the corresponding x values for the points in y. + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vectors y and x must have a size of at least 3. + * If the size is less than 3, the program will exit with an error message. + */ +Deriv_out Scndder_forward_1err_reggrid(const VectorXd& y, const VectorXd& x); + +/** + * @brief Computes the second order centered derivative with second order precision. + * + * @param y A vector containing 3 points: the position y at x-1 (y[0]) to y at x+1 (y[2]). + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vector y must have a size of at least 3. + * If the size is less than 3, the program will exit with an error message. + */ +Deriv_out Scndder_centered_2err_reggrid(const VectorXd& y); + +/** + * @brief Computes the second order centered derivative with second order precision. + * + * @param y A vector containing 3 points: the position y at x-1 (y[0]) to y at x+1 (y[2]). + * @param x A vector containing the corresponding x values for the points in y. + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vectors y and x must have a size of at least 3. + * If the size is less than 3, the program will exit with an error message. + */ +Deriv_out Scndder_centered_2err_reggrid(const VectorXd& y, const VectorXd& x); + +// Main Functions + +/** + * @brief Computes the first derivative of a list of values with adaptive precision. + * + * The computation is adaptive in the sense that the precision order of the derivative is automatically adjusted depending on the region (lower edge, center, upper edge) in which the derivative is computed. + * + * @param y A vector containing the list of values. + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vector y must have a size greater than or equal to 2. + * If the size is less than 2, the behavior is undefined. + */ +Deriv_out Frstder_adaptive_reggrid(const VectorXd& y); + +/** + * @brief Computes the first derivative of a list of values with adaptive precision. + * + * The computation is adaptive in the sense that the precision order of the derivative is automatically adjusted depending on the region (lower edge, center, upper edge) in which the derivative is computed. + * + * @param y A vector containing the list of values. + * @param x A vector containing the corresponding x values for the points in y. + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vectors y and x must have the same size and have a size greater than or equal to 2. + * If the size is less than 2 or the sizes of y and x are not equal, the behavior is undefined. + */ +Deriv_out Frstder_adaptive_reggrid(const VectorXd& y, const VectorXd& x); + +/** + * @brief Computes the second derivative of a list of values with adaptive precision. + * + * The computation is adaptive in the sense that the precision order of the derivative is automatically adjusted depending on the region (lower edge, center, upper edge) in which the derivative is computed. + * + * @param y A vector containing the list of values. + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vector y must have a size greater than or equal to 3. + * If the size is less than 3, the behavior is undefined. + */ +Deriv_out Scndder_adaptive_reggrid(const VectorXd& y); + +/** + * @brief Computes the second derivative of a list of values with adaptive precision. + * + * The computation is adaptive in the sense that the precision order of the derivative is automatically adjusted depending on the region (lower edge, center, upper edge) in which the derivative is computed. + * + * @param y A vector containing the list of values. + * @param x A vector containing the corresponding x values for the points in y. + * @return Deriv_out A structure containing the computed derivative. + * + * @note The vectors y and x must have the same size and have a size greater than or equal to 3. + * If the size is less than 3 or the sizes of y and x are not equal, the behavior is undefined. + */ +Deriv_out Scndder_adaptive_reggrid(const VectorXd& y, const VectorXd& x); diff --git a/docs/Doxyfile b/docs/Doxyfile new file mode 100644 index 0000000..5de7cff --- /dev/null +++ b/docs/Doxyfile @@ -0,0 +1,2823 @@ +# Doxyfile 1.9.8 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). +# +# Note: +# +# Use doxygen to compare the used configuration file with the template +# configuration file: +# doxygen -x [configFile] +# Use doxygen to compare the used configuration file with the template +# configuration file without replacing the environment variables or CMake type +# replacement variables: +# doxygen -x_noenv [configFile] + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "Solar-Like Spectrum Simulator" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = . + + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096 +# sub-directories (in 2 levels) under the output directory of each output format +# and will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to +# control the number of sub-directories. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# Controls the number of sub-directories that will be created when +# CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every +# level increment doubles the number of directories, resulting in 4096 +# directories at level 8 which is the default and also the maximum value. The +# sub-directories are organized in 2 levels, the first level always has a fixed +# number of 16 directories. +# Minimum value: 0, maximum value: 8, default value: 8. +# This tag requires that the tag CREATE_SUBDIRS is set to YES. + +CREATE_SUBDIRS_LEVEL = 8 + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian, +# Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English +# (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek, +# Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with +# English messages), Korean, Korean-en (Korean with English messages), Latvian, +# Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, +# Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, +# Swedish, Turkish, Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# By default Python docstrings are displayed as preformatted text and doxygen's +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the +# doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as doxygen documentation. +# The default value is: YES. + +PYTHON_DOCSTRING = YES + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:^^" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". Note that you cannot put \n's in the value part of an alias +# to insert newlines (in the resulting output). You can put ^^ in the value part +# of an alias to insert a newline as if a physical newline was in the original +# file. When you need a literal { or } or , in the value part of an alias you +# have to escape them by means of a backslash (\), this can lead to conflicts +# with the commands \{ and \} for these it is advised to use the version @{ and +# @} or use a double escape (\\{ and \\}) + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, +# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files). For instance to make doxygen treat .inc files +# as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See https://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 5 + +# The MARKDOWN_ID_STYLE tag can be used to specify the algorithm used to +# generate identifiers for the Markdown headings. Note: Every identifier is +# unique. +# Possible values are: DOXYGEN use a fixed 'autotoc_md' string followed by a +# sequence number starting at 0 and GITHUB use the lower case version of title +# with any whitespace replaced by '-' and punctuation characters removed. +# The default value is: DOXYGEN. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +MARKDOWN_ID_STYLE = DOXYGEN + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +# The NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use +# during processing. When set to 0 doxygen will based this on the number of +# cores available in the system. You can set it explicitly to a value larger +# than 0 to get more control over the balance between CPU load and processing +# speed. At this moment only the input processing can be done using multiple +# threads. Since this is still an experimental feature the default is set to 1, +# which effectively disables parallel processing. Please report any issues you +# encounter. Generating dot graphs in parallel is controlled by the +# DOT_NUM_THREADS setting. +# Minimum value: 0, maximum value: 32, default value: 1. + +NUM_PROC_THREADS = 1 + +# If the TIMESTAMP tag is set different from NO then each generated page will +# contain the date or date and time when the page was generated. Setting this to +# NO can help when comparing the output of multiple runs. +# Possible values are: YES, NO, DATETIME and DATE. +# The default value is: NO. + +TIMESTAMP = NO + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# will also hide undocumented C++ concepts if enabled. This option has no effect +# if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# declarations. If set to NO, these declarations will be included in the +# documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and MacOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. +# Possible values are: SYSTEM, NO and YES. +# The default value is: SYSTEM. + +CASE_SENSE_NAMES = SYSTEM + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class +# will show which file needs to be included to use the class. +# The default value is: YES. + +SHOW_HEADERFILE = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as documenting some parameters in +# a documented function twice, or documenting parameters that don't exist or +# using markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete +# function parameter documentation. If set to NO, doxygen will accept that some +# parameters have no documentation without warning. +# The default value is: YES. + +WARN_IF_INCOMPLETE_DOC = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong parameter +# documentation, but not about the absence of documentation. If EXTRACT_ALL is +# set to YES then this flag will automatically be disabled. See also +# WARN_IF_INCOMPLETE_DOC +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, doxygen will warn about +# undocumented enumeration values. If set to NO, doxygen will accept +# undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: NO. + +WARN_IF_UNDOC_ENUM_VAL = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the doxygen process doxygen will return with a non-zero status. +# If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS_PRINT then doxygen behaves +# like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined doxygen will not +# write the warning messages in between other messages but write them at the end +# of a run, in case a WARN_LOGFILE is defined the warning messages will be +# besides being in the defined file also be shown at the end of a run, unless +# the WARN_LOGFILE is defined as - i.e. standard output (stdout) in that case +# the behavior will remain as with the setting FAIL_ON_WARNINGS. +# Possible values are: NO, YES, FAIL_ON_WARNINGS and FAIL_ON_WARNINGS_PRINT. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# See also: WARN_LINE_FORMAT +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# In the $text part of the WARN_FORMAT command it is possible that a reference +# to a more specific place is given. To make it easier to jump to this place +# (outside of doxygen) the user can define a custom "cut" / "paste" string. +# Example: +# WARN_LINE_FORMAT = "'vi $file +$line'" +# See also: WARN_FORMAT +# The default value is: at line $line of file $file. + +WARN_LINE_FORMAT = "at line $line of file $file" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). In case the file specified cannot be opened for writing the +# warning and error messages are written to standard error. When as file - is +# specified the warning and error messages are written to standard output +# (stdout). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = .. + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# See also: INPUT_FILE_ENCODING +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses The INPUT_FILE_ENCODING tag can be used to specify +# character encoding on a per file pattern basis. Doxygen will compare the file +# name with each pattern and apply the encoding instead of the default +# INPUT_ENCODING) if there is a match. The character encodings are a list of the +# form: pattern=encoding (like *.php=ISO-8859-1). See cfg_input_encoding +# "INPUT_ENCODING" for further information on supported encodings. + +INPUT_FILE_ENCODING = + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cxxm, +# *.cpp, *.cppm, *.c++, *.c++m, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, +# *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, *.h++, *.ixx, *.l, *.cs, *.d, *.php, +# *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be +# provided as doxygen C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.f18, *.f, *.for, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cxxm \ + *.cpp \ + *.cppm \ + *.c++ \ + *.c++m \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.ixx \ + *.l \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.pyw \ + *.f90 \ + *.f95 \ + *.f03 \ + *.f08 \ + *.f18 \ + *.f \ + *.for \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf \ + *.ice + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = ../gnuplot-iostream.h ../CHANGELOG.md + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# ANamespace::AClass, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that doxygen will use the data processed and written to standard output +# for further processing, therefore nothing else, like debug statements or used +# commands (so in case of a Windows batch file always use @echo OFF), should be +# written to standard output. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +# The Fortran standard specifies that for fixed formatted Fortran code all +# characters from position 72 are to be considered as comment. A common +# extension is to allow longer lines before the automatic comment starts. The +# setting FORTRAN_COMMENT_AFTER will also make it possible that longer lines can +# be processed before the automatic comment starts. +# Minimum value: 7, maximum value: 10000, default value: 72. + +FORTRAN_COMMENT_AFTER = 72 + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# entity all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The IGNORE_PREFIX tag can be used to specify a prefix (or a list of prefixes) +# that should be ignored while generating the index headers. The IGNORE_PREFIX +# tag works for classes, function and member names. The entity will be placed in +# the alphabetical list under the first letter of the entity name that remains +# after removing the prefix. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). +# Note: Since the styling of scrollbars can currently not be overruled in +# Webkit/Chromium, the styling will be left out of the default doxygen.css if +# one or more extra stylesheets have been specified. So if scrollbar +# customization is desired it has to be added explicitly. For an example see the +# documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE tag can be used to specify if the generated HTML output +# should be rendered with a dark or light theme. +# Possible values are: LIGHT always generate light mode output, DARK always +# generate dark mode output, AUTO_LIGHT automatically set the mode according to +# the user preference, use light mode if no preference is set (the default), +# AUTO_DARK automatically set the mode according to the user preference, use +# dark mode if no preference is set and TOGGLE allow to user to switch between +# light and dark mode via a button. +# The default value is: AUTO_LIGHT. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE = AUTO_LIGHT + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a color-wheel, see +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use gray-scales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via JavaScript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have JavaScript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# If the HTML_CODE_FOLDING tag is set to YES then classes and functions can be +# dynamically folded and expanded in the generated HTML source code. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_CODE_FOLDING = YES + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag determines the URL of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDURL = + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# on Windows. In the beginning of 2021 Microsoft took the original page, with +# a.o. the download links, offline the HTML help workshop was already many years +# in maintenance mode). You can download the HTML help workshop from the web +# archives at Installation executable (see: +# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo +# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the main .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# The SITEMAP_URL tag is used to specify the full URL of the place where the +# generated documentation will be placed on the server by the user during the +# deployment of the documentation. The generated sitemap is called sitemap.xml +# and placed on the directory specified by HTML_OUTPUT. In case no SITEMAP_URL +# is specified no sitemap is generated. For information about the sitemap +# protocol see https://www.sitemaps.org +# This tag requires that the tag GENERATE_HTML is set to YES. + +SITEMAP_URL = + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# run qhelpgenerator on the generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine tune the look of the index (see "Fine-tuning the output"). As an +# example, the default style sheet generated by doxygen has an example that +# shows how to put an image at the root of the tree instead of the PROJECT_NAME. +# Since the tree basically has the same information as the tab index, you could +# consider setting DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = NO + +# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the +# FULL_SIDEBAR option determines if the side bar is limited to only the treeview +# area (value NO) or if it should extend to the full height of the window (value +# YES). Setting this to YES gives a layout similar to +# https://docs.readthedocs.io with more room for contents, but less room for the +# project logo, title, and description. If either GENERATE_TREEVIEW or +# DISABLE_INDEX is set to NO, this option has no effect. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FULL_SIDEBAR = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email +# addresses. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +OBFUSCATE_EMAILS = YES + +# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see +# https://inkscape.org) to generate formulas as SVG images instead of PNGs for +# the HTML output. These images will generally look nicer at scaled resolutions. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). +# The default value is: png. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FORMULA_FORMAT = png + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands +# to create new LaTeX commands to be used in formulas as building blocks. See +# the section "Including formulas" for details. + +FORMULA_MACROFILE = + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side JavaScript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# With MATHJAX_VERSION it is possible to specify the MathJax version to be used. +# Note that the different versions of MathJax have different requirements with +# regards to the different settings, so it is possible that also other MathJax +# settings have to be changed when switching between the different MathJax +# versions. +# Possible values are: MathJax_2 and MathJax_3. +# The default value is: MathJax_2. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_VERSION = MathJax_2 + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. For more details about the output format see MathJax +# version 2 (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 +# (see: +# http://docs.mathjax.org/en/latest/web/components/output.html). +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility. This is the name for Mathjax version 2, for MathJax version 3 +# this will be translated into chtml), NativeMML (i.e. MathML. Only supported +# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This +# is the name for Mathjax version 3, for MathJax version 2 this will be +# translated into HTML-CSS) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. The default value is: +# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 +# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# for MathJax version 2 (see +# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# For example for MathJax version 3 (see +# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): +# MATHJAX_EXTENSIONS = ams +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /