From f9b51d96d1465c03302f86aa911014ab43704cc7 Mon Sep 17 00:00:00 2001 From: jlnav Date: Fri, 27 Feb 2026 13:39:14 -0600 Subject: [PATCH 01/18] Add ensemblesweep --- README.md | 6 + ensemblesweep/.gitattributes | 2 + ensemblesweep/.gitignore | 7 + ensemblesweep/.pre-commit-config.yaml | 34 + ensemblesweep/README.md | 121 + ensemblesweep/examples/build_forces.sh | 54 + ensemblesweep/examples/forces.c | 544 ++++ ensemblesweep/examples/prototype.py | 81 + ensemblesweep/examples/run_forces.py | 23 + .../examples/six_hump_camel_sample.py | 30 + ensemblesweep/pixi.lock | 2499 +++++++++++++++++ ensemblesweep/pyproject.toml | 41 + ensemblesweep/setup.py | 3 + ensemblesweep/src/ensemblesweep/__init__.py | 4 + ensemblesweep/src/ensemblesweep/data.py | 60 + ensemblesweep/src/ensemblesweep/sim_funcs.py | 105 + ensemblesweep/src/ensemblesweep/sweep.py | 166 ++ ensemblesweep/src/ensemblesweep/version.py | 1 + 18 files changed, 3781 insertions(+) create mode 100644 ensemblesweep/.gitattributes create mode 100644 ensemblesweep/.gitignore create mode 100644 ensemblesweep/.pre-commit-config.yaml create mode 100644 ensemblesweep/README.md create mode 100755 ensemblesweep/examples/build_forces.sh create mode 100755 ensemblesweep/examples/forces.c create mode 100644 ensemblesweep/examples/prototype.py create mode 100644 ensemblesweep/examples/run_forces.py create mode 100644 ensemblesweep/examples/six_hump_camel_sample.py create mode 100644 ensemblesweep/pixi.lock create mode 100644 ensemblesweep/pyproject.toml create mode 100644 ensemblesweep/setup.py create mode 100644 ensemblesweep/src/ensemblesweep/__init__.py create mode 100644 ensemblesweep/src/ensemblesweep/data.py create mode 100644 ensemblesweep/src/ensemblesweep/sim_funcs.py create mode 100644 ensemblesweep/src/ensemblesweep/sweep.py create mode 100644 ensemblesweep/src/ensemblesweep/version.py diff --git a/README.md b/README.md index c2604cc..3c8a9d0 100644 --- a/README.md +++ b/README.md @@ -136,3 +136,9 @@ and has [API documentation available online](https://libensemble.readthedocs.io/ [Tasmanian](https://github.com/ORNL/TASMANIAN) is a collection of robust libraries for high dimensional integration and interpolation as well as parameter calibration. The included generator and tests were part of libEnsemble through v1.5.0. + +14. #### ensemblesweep + *Workflow Software* + + ``ensemblesweep`` is a small library for parallel parameter sweeps of objective functions or executables. + See ``ensemblesweep/README.md`` for more information. \ No newline at end of file diff --git a/ensemblesweep/.gitattributes b/ensemblesweep/.gitattributes new file mode 100644 index 0000000..997504b --- /dev/null +++ b/ensemblesweep/.gitattributes @@ -0,0 +1,2 @@ +# SCM syntax highlighting & preventing 3-way merges +pixi.lock merge=binary linguist-language=YAML linguist-generated=true -diff diff --git a/ensemblesweep/.gitignore b/ensemblesweep/.gitignore new file mode 100644 index 0000000..238654b --- /dev/null +++ b/ensemblesweep/.gitignore @@ -0,0 +1,7 @@ +# pixi environments +.pixi/* +!.pixi/config.toml +*.egg-info +*.stat +*.x +*__pycache__/ \ No newline at end of file diff --git a/ensemblesweep/.pre-commit-config.yaml b/ensemblesweep/.pre-commit-config.yaml new file mode 100644 index 0000000..de927cf --- /dev/null +++ b/ensemblesweep/.pre-commit-config.yaml @@ -0,0 +1,34 @@ +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v6.0.0 + hooks: + - id: end-of-file-fixer + exclude: ^(.*\.xml|.*\.svg)$ + - id: trailing-whitespace + exclude: ^(.*\.xml|.*\.svg)$ + +- repo: https://github.com/pycqa/isort + rev: 7.0.0 + hooks: + - id: isort + args: [--profile=black, --line-length=120] + +- repo: https://github.com/psf/black + rev: 25.12.0 + hooks: + - id: black + args: [--line-length=120] + +- repo: https://github.com/PyCQA/flake8 + rev: 7.3.0 + hooks: + - id: flake8 + args: [--max-line-length=120] + +- repo: https://github.com/asottile/blacken-docs + rev: 1.20.0 + hooks: + - id: blacken-docs + additional_dependencies: [black==22.12.0] + files: ^(.*\.py|.*\.rst)$ + args: [--line-length=120] diff --git a/ensemblesweep/README.md b/ensemblesweep/README.md new file mode 100644 index 0000000..c3dc676 --- /dev/null +++ b/ensemblesweep/README.md @@ -0,0 +1,121 @@ + +============= +ensemblesweep +============= + +``ensemblesweep`` is a small library based on [libEnsemble](https://libensemble.readthedocs.io/en/latest/) +for parallel parameter sweeps of objective functions or executables. + +Installation +============ + +In the project directory: + +```bash +pip install . +``` + +Usage +===== + +Simple usage +------------ + +1. Specify any number of iterable inputs to a ``Data`` object. + +2. Specify an objective function to the ``Sweep`` object. Provide the input data. + +3. Run the sweep. All instances are run in parallel, up to the number of available cores. + +```python + +from ensemblesweep import Sweep, Data + +# Define the function to be evaluated +def my_function(core, edge, x): + return float(edge) * np.sum(x) + core + +data = Data( + core=random.sample(["rocm", "cuda", "cpu"]*6, 6), + edge=random.sample(range(10), 4), + x = np.random.uniform(lb, ub, (3, 3)) +) + +# Create a sweep object +sweep = Sweep( + objective_function=my_function, + input_data=data, +) + +if __name__ == "__main__": + + sweep.run() + print(sweep.results) +``` + +Executables +----------- + + +- Specify an *executable* to the ``Sweep`` object. + - The ``Data`` parameters will be passed as arguments to the executable in the order they are defined. + - The output of the executable will be read: + - from the file specified by ``objective_output`` (if provided). + - or, if ``objective_output`` is not specified, the last line of the executable's stdout. + +```python + + # an objective can also be an *executable* + objective_path = os.path.join(os.path.dirname(__file__), "forces.x") + + data = Data( + num_particles=random.sample(range(100, 1000, 10), 10), + num_steps = [10, 100, 1000], + rand_seed = 100, + kill_rate = [0.01, 0.1, 0.5] + ) + + # each of the samples will be given to the executable as arguments, in the exact order. Parallel runs. + sweep = Sweep( + objective_executable=objective_path, + objective_output="forces.stat", + input_data=data, + ) + + sweep.run() +``` + +Additional Features +------------------- + +- Run a subset of the total points. This also updates the estimated time (in seconds) to run the entire sweep. + +```python + + if __name__ == "__main__": + + sweep.run(10) + + # estimated time is in seconds, for the entire sweep + if sweep.estimated_time() > 10: + print("Estimated time is too long, only doing a little bit") + sweep.run(10) # run 10 concurrently. Max concurrency is number of cores + else: + print("Estimated time is acceptable, continuing") + sweep.run() +``` + +- Estimate the runtime for a subset of the total points. Parallelism is considered. + +```python + + sweep.estimated_time(4) +``` + +- Get results as NumPy + +```python + + # print the results, numpy + print(sweep.results.to_numpy()) +``` diff --git a/ensemblesweep/examples/build_forces.sh b/ensemblesweep/examples/build_forces.sh new file mode 100755 index 0000000..b8b379e --- /dev/null +++ b/ensemblesweep/examples/build_forces.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# ------------------------------------------------- +# Building flat MPI +# ------------------------------------------------- + +# GCC +mpicc -O3 -o forces.x forces.c -lm + +# Intel +# mpiicc -O3 -o forces.x forces.c + +# Cray +# cc -O3 -o forces.x forces.c + +# ------------------------------------------------- +# Building with OpenMP for CPU +# ------------------------------------------------- + +# GCC +# mpicc -O3 -fopenmp -o forces.x forces.c -lm + +# Intel +# mpiicc -O3 -qopenmp -o forces.x forces.c + +# Cray / Intel (for CCE OpenMP is recognized by default) +# cc -O3 -qopenmp -o forces.x forces.c + +# xl +# xlc_r -O3 -qsmp=omp -o forces.x forces.c + +# Aurora: Intel oneAPI (Clang based) Compiler +# mpicc -O3 -fiopenmp -o forces_cpu.x forces.c + +# ------------------------------------------------- +# Building with OpenMP for target device (e.g. GPU) +# ------------------------------------------------- + +# Aurora: Intel oneAPI (Clang based) Compiler (JIT compiled for device) +# mpicc -DGPU -O3 -fiopenmp -fopenmp-targets=spir64 -o forces.x forces.c + +# Frontier (AMD ROCm compiler) +# cc -DGPU -I${ROCM_PATH}/include -L${ROCM_PATH}/lib -lamdhip64 -fopenmp -O3 -o forces.x forces.c + +# Nvidia (nvc) compiler with mpicc and on Cray system with target (Perlmutter) +# mpicc -DGPU -O3 -fopenmp -mp=gpu -o forces.x forces.c +# cc -DGPU -Wl,-znoexecstack -O3 -fopenmp -mp=gpu -target-accel=nvidia80 -o forces.x forces.c + +# xl (plain and using mpicc on Summit) +# xlc_r -DGPU -O3 -qsmp=omp -qoffload -o forces.x forces.c +# mpicc -DGPU -O3 -qsmp=omp -qoffload -o forces.x forces.c + +# Summit with gcc (Need up to offload capable gcc: module load gcc/12.1.0) - slower than xlc +# mpicc -DGPU -Ofast -fopenmp -Wl,-rpath=/sw/summit/gcc/12.1.0-0/lib64 -lm -foffload=nvptx-none forces.c -o forces.x diff --git a/ensemblesweep/examples/forces.c b/ensemblesweep/examples/forces.c new file mode 100755 index 0000000..80cbe05 --- /dev/null +++ b/ensemblesweep/examples/forces.c @@ -0,0 +1,544 @@ +/* -------------------------------------------------------------------- + Naive Electrostatics Code Example + This is designed only as an artificial, highly configurable test + code for a libEnsemble sim func. + + Particles position and charge are initiated by a random stream. + Particles are replicated on all ranks. + Each rank computes forces for a subset of particles. + Particle force arrays are allreduced across ranks. + + Sept 2019: + Added OpenMP options for CPU and GPU. + + Jan 2022: + Use GPU preprocessor option to compile for GPU (e.g. -DGPU). + + Run executable on N procs: + + mpirun -np N ./forces.x + + Author: S Hudson. +-------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include +#include + +#define min(a, b) \ + ({ __typeof__ (a) _a = (a); \ + __typeof__ (b) _b = (b); \ + _a < _b ? _a : _b; }) + +// Flags 0 or 1 +#define PRINT_HOSTNAME_ALL_PROCS 0 +#define PRINT_PARTICLE_DECOMP 0 +#define PRINT_ALL_PARTICLES 0 +#define CHECK_THREADS 0 +#define CHECK_TARGET_DEVICE 1 +#define MAX_LINE_LENGTH 256 + +static FILE* stat_fp; + +// Return elapsed wall clock time from start/end timevals +double elapsed(struct timeval *tv1, struct timeval *tv2) { + return (double)(tv2->tv_usec - tv1->tv_usec) / 1000000 + + (double)(tv2->tv_sec - tv1->tv_sec); +} + +// Print from each thread. +int check_threads(int rank) { + #if defined(_OPENMP) + int tid, nthreads; + #pragma omp parallel private(tid, nthreads) + { + nthreads = omp_get_num_threads(); + tid = omp_get_thread_num(); + printf("Rank: %d: ThreadID: %d Num threads: %d\n", rank, tid, nthreads); + + } + #else + printf("Rank: %d: OpenMP is disabled\n", rank); + #endif + return 0; +} + +typedef struct particle { + double p[3]; // Particle position + double f[3]; // Particle force + double q; // Particle charge +}__attribute__((__packed__)) particle; + + +// Seed RNG +int seed_rand(int seed) { + srand(seed); + return 0; +} + +// Return a random number from a persistent stream +//TODO Use parallel RNG - As replicated data can currently do on first rank. +double get_rand() { + double randnum; + randnum = (double)rand()/(double)(RAND_MAX + 1.0); //[0, 1) + return randnum; +} + + +// Particles start at random locations in 10x10x10 cube +int build_system(int n, particle* parr) { + int q_range_low = -10; + int q_range_high = 10; + double extent = 10.0; + int i, dim; + + for(i=0; i= rate) { + bad_run = 1; + } + return bad_run; +} + + +int main(int argc, char **argv) { + + FILE *input_file; + char line[MAX_LINE_LENGTH]; + int num_devices; + int num_particles = 10; // default no. of particles + int num_steps = 10; // default no. of timesteps + int rand_seed = 1; // default seed + double kill_rate = 0.0; // default proportion of tasks to kill + + int rank, num_procs, k, m, p_lower, p_upper, local_n; + int step; + double compute_forces_time, comms_time, total_time; + struct timeval tstart, tend; + struct timeval compute_start, compute_end; + struct timeval comms_start, comms_end; + + double local_en, total_en; + double step_survival_rate; + int badrun = 0; + + // Try to open the file "forces_input" in read mode + input_file = fopen("forces_input", "r"); + + if (input_file) { + // If the file exists, read it line by line + while (fgets(line, sizeof(line), input_file)) { + if (sscanf(line, "num_particles = %d", &num_particles) == 1) { + continue; + } + if (sscanf(line, "num_steps = %d", &num_steps) == 1) { + continue; + } + if (sscanf(line, "rand_seed = %d", &rand_seed) == 1) { + continue; + } + if (sscanf(line, "kill_rate = %lf", &kill_rate) == 1) { + continue; + } + } + fclose(input_file); + } + + // Overwrite with command line arguments if provided + + if (argc >=2) { + num_particles = atoi(argv[1]); // No. of particles + } + + if (argc >=3) { + num_steps = atoi(argv[2]); // No. of timesteps + } + + if (argc >=4) { + rand_seed = atoi(argv[3]); // RNG seed + } + + if (argc >=5) { + kill_rate = atof(argv[4]); // Proportion of tasks to kill + } + + seed_rand(rand_seed); + step_survival_rate = pow((1-kill_rate),(1.0/num_steps)); + + particle* parr = (particle*)malloc(num_particles * sizeof(particle)); + build_system(num_particles, parr); + //printf("\n"); + + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &num_procs); + + if (rank == 0) { + printf("Particles: %d\n", num_particles); + printf("Timesteps: %d\n", num_steps); + printf("MPI Ranks: %d\n", num_procs); + printf("Random seed: %d\n", rand_seed); + } + + // For multi-gpu node - use one GPU per rank i + num_devices = 0; + #if defined(_OPENMP) + num_devices = omp_get_num_devices(); + if (num_devices > 0) { + omp_set_default_device(rank % num_devices); + } + #endif + + if (PRINT_HOSTNAME_ALL_PROCS) { + MPI_Barrier(MPI_COMM_WORLD); + char processor_name[MPI_MAX_PROCESSOR_NAME]; + int name_len; + MPI_Get_processor_name(processor_name, &name_len); + printf("Proc: %d is on node %s\n", rank, processor_name); + } + + if (CHECK_THREADS) { + if (num_devices == 0) { + check_threads(rank); + } + } + + k = num_particles / num_procs; + m = num_particles % num_procs; // Remainder = no. procs with extra particle + p_lower = rank * k + min(rank, m); + p_upper = (rank + 1) * k + min(rank + 1, m); + local_n = p_upper - p_lower; + + if (PRINT_PARTICLE_DECOMP) { + MPI_Barrier(MPI_COMM_WORLD); + printf("Proc: %d has %d particles\n", rank, local_n); + } + MPI_Barrier(MPI_COMM_WORLD); + fflush(stdout); + + if (rank == 0) { + open_stat_file(); + } + + gettimeofday(&tstart, NULL); + for (step=0; step 10: + print("Estimated time is too long, only doing a little bit") + sweep.run(10) # run 10 concurrently. Max concurrency is number of cores + else: + print("Estimated time is acceptable, continuing") + sweep.run() # run all concurrently. Max concurrency is number of cores. + + sweep.estimated_time(4) # estimate time for 4 points. Parallelism matters, so if this value <= number of cores, assume same amount of time as 1 point. + # if cores == 10 and sweep.estimated_time(20), assume same amount of time as 2 points. + + # Print the results, jsonlines + print(sweep.results) + + # print the results, numpy + print(sweep.results.to_numpy()) + + ################### + + # an objective can also be an *executable* + objective_path = os.path.join(os.path.dirname(__file__), "forces.x") + + data = Data( + num_particles=random.sample(range(100, 1000, 10), 10), + num_steps = [10, 100, 1000], + rand_seed = 100, + kill_rate = [0.01, 0.1, 0.5] + ) + + # each of the samples will be given to the executable as arguments, in the exact order. Parallel runs. + + sweep = Sweep( + objective_executable=objective_path, + objective_output="forces.stat", # the output file name, otherwise pipe exe's stdout to file and assume the last line is the output + input_data=data, + ) + + sweep.run() + print(sweep.results) + + # Results are also separated into individual files in the sweep directory \ No newline at end of file diff --git a/ensemblesweep/examples/run_forces.py b/ensemblesweep/examples/run_forces.py new file mode 100644 index 0000000..be5f41e --- /dev/null +++ b/ensemblesweep/examples/run_forces.py @@ -0,0 +1,23 @@ +from ensemblesweep import Sweep, Data +import random +import os + +objective_path = os.path.join(os.path.dirname(__file__), "forces.x") + +data = Data( + num_particles=random.sample(range(100, 1000, 10), 10), + num_steps = [10, 100, 1000], + rand_seed = 100, + kill_rate = [0.01, 0.1, 0.5] +) + +sweep = Sweep( + objective_executable=objective_path, + objective_output="forces.stat", + input_data=data, +) + +if __name__ == "__main__": + + sweep.run() + print(sweep.results) \ No newline at end of file diff --git a/ensemblesweep/examples/six_hump_camel_sample.py b/ensemblesweep/examples/six_hump_camel_sample.py new file mode 100644 index 0000000..6908fe1 --- /dev/null +++ b/ensemblesweep/examples/six_hump_camel_sample.py @@ -0,0 +1,30 @@ +import numpy as np +from ensemblesweep import Sweep, Data + +def six_hump_camel_func(x0, x1): + """ + Definition of the six-hump camel + """ + term1 = (4 - 2.1 * x0**2 + (x0**4) / 3) * x0**2 + term2 = x0 * x1 + term3 = (-4 + 4 * x1**2) * x1**2 + + f = term1 + term2 + term3 + return f, term1, term2, term3 + + +if __name__ == "__main__": + + data = Data( + x0 = np.linspace(-3, 3, 10), + x1 = np.linspace(-2, 2, 10) + ) + + sweep = Sweep( + objective_function=six_hump_camel_func, + objective_output=["f", "t1", "t2", "t3"], + input_data=data, + ) + + sweep.run() + print(sweep.results) \ No newline at end of file diff --git a/ensemblesweep/pixi.lock b/ensemblesweep/pixi.lock new file mode 100644 index 0000000..ef6b75e --- /dev/null +++ b/ensemblesweep/pixi.lock @@ -0,0 +1,2499 @@ +version: 6 +environments: + default: + channels: + - url: https://conda.anaconda.org/conda-forge/ + indexes: + - https://pypi.org/simple + options: + pypi-prerelease-mode: if-necessary-or-explicit + packages: + linux-64: + - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libensemble-1.5.0-nompi_py314h8bb396f_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.4-hecca717_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nlopt-2.10.0-py314h411e966_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.2-py314h2b28147_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py314h0f05182_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.41.5-py314h2e6c369_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py314h67df5f8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.1-py314hf07bd8e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-82.0.0-pyh332efcf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda + - pypi: ./ + osx-arm64: + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-7_kmp_llvm.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-5_h51639a9_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-5_hb0561ab_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.0-h55c6f16_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libensemble-1.5.0-nompi_py314h809f670_101.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.4-hf6b4638_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_18.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_18.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_18.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h84a0fba_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.2-h1ae2325_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-22.1.0-hc7d1edf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlopt-2.10.0-py314hbfffb6e_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.2-py314hae46ccb_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.2-py314ha14b1ff_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py314haad56a0_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.3-h4c637c5_101_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py314h6e9b3f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.1-py314hfc1f868_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-82.0.0-pyh332efcf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda + - pypi: ./ + dev: + channels: + - url: https://conda.anaconda.org/conda-forge/ + indexes: + - https://pypi.org/simple + options: + pypi-prerelease-mode: if-necessary-or-explicit + packages: + linux-64: + - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.2-h39aace5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.45.1-default_hfdba357_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cctools_impl_osx-arm64-1030.6.3-llvm22_1_h2631141_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cctools_osx-arm64-1030.6.3-llvm22_1_hd174d4c_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py314h4a8dc5f_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-22-22.1.0-default_h99862b1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/clang_impl_linux-64-22.1.0-default_h666bb00_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/clang_impl_osx-arm64-22.1.0-h2e4477e_31.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/clang_osx-arm64-22.1.0-h4fa46f7_31.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/compiler-rt-22.1.0-ha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/compiler-rt22-22.1.0-hb700be7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt22_linux-64-22.1.0-hffcefe0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt22_osx-arm64-22.1.0-h7e67a1e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_linux-64-22.1.0-ha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-arm64-22.1.0-hce30654_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.24.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_9.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld64_osx-arm64-956.6-llvm22_1_h1f1a275_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcap-2.77-h3ff7636_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp22.1-22.1.0-default_h99862b1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcompiler-rt-22.1.0-hb700be7_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdispatch-6.2-ha1474c7_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libensemble-1.5.0-nompi_py314h8bb396f_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.4-hecca717_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libfabric-2.4.0-ha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libfabric1-2.4.0-h8f87c3e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.2.0-hcc6f6b0_118.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.13.0-default_he001693_1000.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm22-22.1.0-hf7376ad_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnl-3.11.0-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsigtool-0.1.3-ha2d1da1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-257.10-hd0affe5_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libudev1-257.10-hd0affe5_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-hca6bf5a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-he237659_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-22.1.0-h4922eb0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-22-22.1.0-h3b15d91_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-22.1.0-hb700be7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mpi-1.0.1-mpich.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mpich-5.0.0-h6f9170e_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nlopt-2.10.0-py314h411e966_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.2-py314h2b28147_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.0.1-pyh145f28c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py314h0f05182_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.41.5-py314h2e6c369_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py314h67df5f8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/rdma-core-61.0-h192683f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.15.2-h40fa522_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.1-py314hf07bd8e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sdkroot_env_osx-arm64-26.0-ha3f98da_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-82.0.0-pyh332efcf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/sigtool-codesign-0.1.3-ha2d1da1_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-h4ee821c_9.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tapi-1600.0.11.8-hfd2156b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ucx-1.20.0-hf72d326_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.1.0-py314h9891dd4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.39.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda + - pypi: https://files.pythonhosted.org/packages/b1/02/5dbdecc50207c884a70e6f2f561d4c53fb353d755b12c049ad15cc905bc0/wat-0.7.0-py3-none-any.whl + - pypi: ./ + osx-arm64: + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-7_kmp_llvm.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_impl_osx-arm64-1030.6.3-llvm22_1_hb5e89dc_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_osx-arm64-1030.6.3-llvm22_1_hbe26303_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py314h44086f9_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-22-22.1.0-default_hb52604d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_impl_osx-arm64-22.1.0-default_h17d1ed9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_osx-arm64-22.1.0-hec3a5e5_31.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt-22.1.0-hce30654_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt22-22.1.0-hd34ed20_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt22_osx-arm64-22.1.0-h7e67a1e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-arm64-22.1.0-hce30654_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.24.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64_osx-arm64-956.6-llvm22_1_h692d5aa_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-5_h51639a9_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-5_hb0561ab_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp22.1-22.1.0-default_hf3020a7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcompiler-rt-22.1.0-hd34ed20_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.0-h55c6f16_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libensemble-1.5.0-nompi_py314h809f670_101.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.4-hf6b4638_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libfabric-2.4.0-hce30654_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libfabric1-2.4.0-h84a0fba_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_18.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_18.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_18.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.13.0-default_ha97f43a_1000.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm22-22.1.0-h89af1be_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h84a0fba_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsigtool-0.1.3-h98dc951_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.2-h1ae2325_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h5ef1a60_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.1-h8d039ee_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-22.1.0-hc7d1edf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-22-22.1.0-hb545844_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-22.1.0-hd34ed20_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mpi-1.0.1-mpich.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpich-5.0.0-ha380261_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlopt-2.10.0-py314hbfffb6e_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.2-py314hae46ccb_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.0.1-pyh145f28c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.2-py314ha14b1ff_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py314haad56a0_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.3-h4c637c5_101_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py314h6e9b3f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.15.2-h279115b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.1-py314hfc1f868_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sdkroot_env_osx-arm64-26.0-ha3f98da_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-82.0.0-pyh332efcf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-codesign-0.1.3-h98dc951_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1600.0.11.8-h997e182_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.1.0-py314h6cfcd04_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.39.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda + - pypi: https://files.pythonhosted.org/packages/b1/02/5dbdecc50207c884a70e6f2f561d4c53fb353d755b12c049ad15cc905bc0/wat-0.7.0-py3-none-any.whl + - pypi: ./ +packages: +- conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda + build_number: 20 + sha256: 1dd3fffd892081df9726d7eb7e0dea6198962ba775bd88842135a4ddb4deb3c9 + md5: a9f577daf3de00bca7c3c76c0ecbd1de + depends: + - __glibc >=2.17,<3.0.a0 + - libgomp >=7.5.0 + constrains: + - openmp_impl <0.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 28948 + timestamp: 1770939786096 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-7_kmp_llvm.conda + build_number: 7 + sha256: 7acaa2e0782cad032bdaf756b536874346ac1375745fb250e9bdd6a48a7ab3cd + md5: a44032f282e7d2acdeb1c240308052dd + depends: + - llvm-openmp >=9.0.1 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 8325 + timestamp: 1764092507920 +- conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48 + md5: 2934f256a8acfe48f6ebb4fce6cde29c + depends: + - python >=3.9 + - typing-extensions >=4.0.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/annotated-types?source=hash-mapping + size: 18074 + timestamp: 1733247158254 +- conda: https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.2-h39aace5_0.conda + sha256: a9c114cbfeda42a226e2db1809a538929d2f118ef855372293bd188f71711c48 + md5: 791365c5f65975051e4e017b5da3abf5 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: GPL-2.0-or-later + license_family: GPL + purls: [] + size: 68072 + timestamp: 1756738968573 +- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.45.1-default_hfdba357_101.conda + sha256: 74341b26a2b9475dc14ba3cf12432fcd10a23af285101883e720216d81d44676 + md5: 83aa53cb3f5fc849851a84d777a60551 + depends: + - ld_impl_linux-64 2.45.1 default_hbd61a6d_101 + - sysroot_linux-64 + - zstd >=1.5.7,<1.6.0a0 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 3744895 + timestamp: 1770267152681 +- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda + sha256: 0b75d45f0bba3e95dc693336fa51f40ea28c980131fec438afb7ce6118ed05f6 + md5: d2ffd7602c02f2b316fd921d39876885 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 260182 + timestamp: 1771350215188 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda + sha256: 540fe54be35fac0c17feefbdc3e29725cce05d7367ffedfaaa1bdda234b019df + md5: 620b85a3f45526a8bc4d23fd78fc22f0 + depends: + - __osx >=11.0 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 124834 + timestamp: 1771350416561 +- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda + sha256: 67cc7101b36421c5913a1687ef1b99f85b5d6868da3abbf6ec1a4181e79782fc + md5: 4492fd26db29495f0ba23f146cd5638d + depends: + - __unix + license: ISC + purls: [] + size: 147413 + timestamp: 1772006283803 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cctools_impl_osx-arm64-1030.6.3-llvm22_1_h2631141_4.conda + sha256: 464d232860c059186ebd62d34c4de78e5d177fe3e78d1e50de0435dadc2aa4a0 + md5: 1831c358050ae3b6d918390c6a5e5574 + depends: + - __glibc >=2.17,<3.0.a0 + - ld64_osx-arm64 >=956.6,<956.7.0a0 + - libgcc >=14 + - libllvm22 >=22.1.0,<22.2.0a0 + - libstdcxx >=14 + - libzlib >=1.3.1,<2.0a0 + - llvm-tools 22.1.* + - sigtool-codesign + constrains: + - ld64 956.6.* + - clang 22.1.* + - cctools 1030.6.3.* + license: APSL-2.0 + license_family: Other + purls: [] + size: 2269061 + timestamp: 1772018370585 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_impl_osx-arm64-1030.6.3-llvm22_1_hb5e89dc_4.conda + sha256: 97075a1afeac8a7a4dca258ac10efb70638e3c734cbf5a6328ca1e0718e09c41 + md5: 97768bb89683757d7e535f9b7dcba39d + depends: + - __osx >=11.0 + - ld64_osx-arm64 >=956.6,<956.7.0a0 + - libcxx + - libllvm22 >=22.1.0,<22.2.0a0 + - libzlib >=1.3.1,<2.0a0 + - llvm-tools 22.1.* + - sigtool-codesign + constrains: + - clang 22.1.* + - ld64 956.6.* + - cctools 1030.6.3.* + license: APSL-2.0 + license_family: Other + purls: [] + size: 749166 + timestamp: 1772019681419 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cctools_osx-arm64-1030.6.3-llvm22_1_hd174d4c_4.conda + sha256: bfc81e33a60ce657415d17d5607c459d0e2d05a5550ed41add8bb53a7bcb5afe + md5: f4ca1ce906a97042366d220da5be75b4 + depends: + - cctools_impl_osx-arm64 1030.6.3 llvm22_1_h2631141_4 + - ld64_osx-arm64 956.6 llvm22_1_h1f1a275_4 + constrains: + - cctools 1030.6.3.* + license: APSL-2.0 + license_family: Other + purls: [] + size: 23383 + timestamp: 1772018377666 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_osx-arm64-1030.6.3-llvm22_1_hbe26303_4.conda + sha256: c90c927dd77afb7d8115a3777b567d9ab84169ab797436d79789d75d0bd1a399 + md5: a08c9f61e81b5d4a0a653495545ec2b8 + depends: + - cctools_impl_osx-arm64 1030.6.3 llvm22_1_hb5e89dc_4 + - ld64_osx-arm64 956.6 llvm22_1_h692d5aa_4 + constrains: + - cctools 1030.6.3.* + license: APSL-2.0 + license_family: Other + purls: [] + size: 23468 + timestamp: 1772019757885 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py314h4a8dc5f_1.conda + sha256: c6339858a0aaf5d939e00d345c98b99e4558f285942b27232ac098ad17ac7f8e + md5: cf45f4278afd6f4e6d03eda0f435d527 + depends: + - __glibc >=2.17,<3.0.a0 + - libffi >=3.5.2,<3.6.0a0 + - libgcc >=14 + - pycparser + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cffi?source=hash-mapping + size: 300271 + timestamp: 1761203085220 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py314h44086f9_1.conda + sha256: 5b5ee5de01eb4e4fd2576add5ec9edfc654fbaf9293e7b7ad2f893a67780aa98 + md5: 10dd19e4c797b8f8bdb1ec1fbb6821d7 + depends: + - __osx >=11.0 + - libffi >=3.5.2,<3.6.0a0 + - pycparser + - python >=3.14,<3.15.0a0 + - python >=3.14,<3.15.0a0 *_cp314 + - python_abi 3.14.* *_cp314 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cffi?source=hash-mapping + size: 292983 + timestamp: 1761203354051 +- conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda + sha256: aa589352e61bb221351a79e5946d56916e3c595783994884accdb3b97fe9d449 + md5: 381bd45fb7aa032691f3063aff47e3a1 + depends: + - python >=3.10 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cfgv?source=hash-mapping + size: 13589 + timestamp: 1763607964133 +- conda: https://conda.anaconda.org/conda-forge/linux-64/clang-22-22.1.0-default_h99862b1_0.conda + sha256: a24a4eb8522693fbfc6c6b9ab1914314437ca0858b8ac6909275b47be3e93e39 + md5: 1f2b771fc99f1c8115301a9d232dfd94 + depends: + - __glibc >=2.17,<3.0.a0 + - compiler-rt22 22.1.0.* + - libclang-cpp22.1 22.1.0 default_h99862b1_0 + - libgcc >=14 + - libllvm22 >=22.1.0,<22.2.0a0 + - libstdcxx >=14 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 835553 + timestamp: 1772101189757 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-22-22.1.0-default_hb52604d_0.conda + sha256: 1ddb3174cf5ef28d8c572baf94d678304b96a9cb402e174198baa8cd73b144fe + md5: b66137f75711d76e55e96800a34f6c94 + depends: + - __osx >=11.0 + - compiler-rt22 22.1.0.* + - libclang-cpp22.1 22.1.0 default_hf3020a7_0 + - libcxx >=22.1.0 + - libllvm22 >=22.1.0,<22.2.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 819994 + timestamp: 1772097931030 +- conda: https://conda.anaconda.org/conda-forge/linux-64/clang_impl_linux-64-22.1.0-default_h666bb00_0.conda + sha256: e8969275248f985f6a465d2b74441a12660397343cd2f3af91b6d00ea54dd028 + md5: c78f3e4c82f68b3eab04a727f33eae96 + depends: + - binutils_impl_linux-64 + - clang-22 22.1.0 default_h99862b1_0 + - compiler-rt 22.1.0.* + - compiler-rt_linux-64 + - libgcc-devel_linux-64 + - sysroot_linux-64 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 27612 + timestamp: 1772101271596 +- conda: https://conda.anaconda.org/conda-forge/linux-64/clang_impl_osx-arm64-22.1.0-h2e4477e_31.conda + sha256: f421df0085db4d0c8c0b4cba79d5264d2576c213de79eccb96f2552d4f997159 + md5: 71277ff8819c4f0873c719355fe8a06e + depends: + - cctools_impl_osx-arm64 + - clang-22 + - compiler-rt 22.1.0.* + - compiler-rt_osx-arm64 22.1.0.* + - ld64_osx-arm64 * llvm22_1_* + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 18065 + timestamp: 1772108335044 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_impl_osx-arm64-22.1.0-default_h17d1ed9_0.conda + sha256: 393632a170e60e5a977cb832e1adbf283e98ef008fe7210f6604c98dedd67a4b + md5: b574304dee3b4b6411866159c2a77a86 + depends: + - cctools_impl_osx-arm64 + - clang-22 22.1.0 default_hb52604d_0 + - compiler-rt 22.1.0.* + - compiler-rt_osx-arm64 + - ld64_osx-arm64 * llvm22_1_* + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 27718 + timestamp: 1772098160125 +- conda: https://conda.anaconda.org/conda-forge/linux-64/clang_osx-arm64-22.1.0-h4fa46f7_31.conda + sha256: 4c3a72a693fee95a88e0935ff7cfb894ca1797ac34484e0a94eab4f5af8003b6 + md5: 4fb7d13ec0fa75162e76f427d12741a2 + depends: + - cctools_osx-arm64 + - clang_impl_linux-64 22.1.0.* + - clang_impl_osx-arm64 22.1.0.* + - sdkroot_env_osx-arm64 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 20840 + timestamp: 1772108337351 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_osx-arm64-22.1.0-hec3a5e5_31.conda + sha256: 9a1deefa50cc320c65ba659fa481c56e4124a55c636e288b258b021c6cb42be6 + md5: 0fa64073626e71b596f6f346595a8060 + depends: + - cctools_osx-arm64 + - clang_impl_osx-arm64 22.1.0.* + - sdkroot_env_osx-arm64 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 20937 + timestamp: 1772108825552 +- conda: https://conda.anaconda.org/conda-forge/linux-64/compiler-rt-22.1.0-ha770c72_0.conda + sha256: 6c6cd8ec8b99e9e4bbe121b77e0f356a2f8845add6d0cd4d6f71f6201fa654c2 + md5: 98cc540405de03e37417cc94f4191301 + depends: + - compiler-rt22 22.1.0 hb700be7_0 + - libcompiler-rt 22.1.0 hb700be7_0 + constrains: + - clang 22.1.0 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 16378 + timestamp: 1772021047024 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt-22.1.0-hce30654_0.conda + sha256: 118f1e097963595a59c8eb37de91630c8c054506f622d14868eba03411a8cd48 + md5: 47de28daf7e77015627f8246fc51b93b + depends: + - compiler-rt22 22.1.0 hd34ed20_0 + - libcompiler-rt 22.1.0 hd34ed20_0 + constrains: + - clang 22.1.0 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 16406 + timestamp: 1772019647121 +- conda: https://conda.anaconda.org/conda-forge/linux-64/compiler-rt22-22.1.0-hb700be7_0.conda + sha256: a23f7a8bd6722b41abea88ebd0cea674b0daf8dfee70ece8d2cc798556144675 + md5: 6930338793ffed4140d0903011f6937e + depends: + - __glibc >=2.17,<3.0.a0 + - compiler-rt22_linux-64 22.1.0.* + - libgcc >=14 + - libstdcxx >=14 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 114932 + timestamp: 1772021045728 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt22-22.1.0-hd34ed20_0.conda + sha256: 17308db182a4658e3d8710c174b5d017d8672dae2f79c606f85b6f1bd2f5fad7 + md5: 68393fcc06d1b85d290da5baa0dc19c0 + depends: + - __osx >=11.0 + - compiler-rt22_osx-arm64 22.1.0.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 99273 + timestamp: 1772019641057 +- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt22_linux-64-22.1.0-hffcefe0_0.conda + sha256: a37472aa2288bea0c588ae47aca6291238558303fdc2e814b58b8de64937263b + md5: 1254d960f9dd3d269c093ee6db94a454 + constrains: + - compiler-rt >=9.0.1 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 48094890 + timestamp: 1772020917994 +- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt22_osx-arm64-22.1.0-h7e67a1e_0.conda + sha256: dba44345ee2ddcd08582c7cc829304171e43e4dc0b89b92ee3cd6ecebc9cb1c4 + md5: 967cc614311d9b563ee948cc014ed27a + constrains: + - compiler-rt >=9.0.1 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 10835385 + timestamp: 1772019517770 +- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_linux-64-22.1.0-ha770c72_0.conda + sha256: 081a126085b6656b8f5e0ffe0636eb07287d81376bdb8d49f5e0e455dce8bce9 + md5: 00fd62b3f1c0019f6aa9d6913f0917f9 + depends: + - compiler-rt22_linux-64 22.1.0 hffcefe0_0 + constrains: + - clang 22.1.0 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 16403 + timestamp: 1772021046573 +- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-arm64-22.1.0-hce30654_0.conda + sha256: f5045a00ad82e0150eeba2c3e9bdcafca7b759a6656cfc5b8111bf0c3fca65e3 + md5: 00a38308b4aab3f97ee95ede2146ba5c + depends: + - compiler-rt22_osx-arm64 22.1.0 h7e67a1e_0 + constrains: + - clang 22.1.0 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 16573 + timestamp: 1772019644740 +- conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda + sha256: 6d977f0b2fc24fee21a9554389ab83070db341af6d6f09285360b2e09ef8b26e + md5: 003b8ba0a94e2f1e117d0bd46aebc901 + depends: + - python >=3.9 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/distlib?source=hash-mapping + size: 275642 + timestamp: 1752823081585 +- pypi: ./ + name: ensemblesweep + version: 0.1.0 + sha256: 6d734bcc15cb11795de058348caf2f7089d834ddc5ce38264c3829fc031826b1 + requires_dist: + - libensemble>=1.5.0,<2 + requires_python: '>=3.11' +- conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.24.3-pyhd8ed1ab_0.conda + sha256: 6d576ed3bd0e7c57b1144f0b2014de9ea3fab9786316bc3e748105d44e0140a0 + md5: 9dbb20eec24beb026291c20a35ce1ff9 + depends: + - python >=3.10 + license: Unlicense + purls: + - pkg:pypi/filelock?source=compressed-mapping + size: 24808 + timestamp: 1771468713029 +- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda + sha256: 142a722072fa96cf16ff98eaaf641f54ab84744af81754c292cb81e0881c0329 + md5: 186a18e3ba246eccfc7cff00cd19a870 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + license: MIT + license_family: MIT + purls: [] + size: 12728445 + timestamp: 1767969922681 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda + sha256: d4cefbca587429d1192509edc52c88de52bc96c2447771ddc1f8bee928aed5ef + md5: 1e93aca311da0210e660d2247812fa02 + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: [] + size: 12358010 + timestamp: 1767970350308 +- conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda + sha256: 6a88cdde151469131df1948839ac2315ada99cf8d38aaacc9a7a5984e9cd8c19 + md5: 8bc5851c415865334882157127e75799 + depends: + - python >=3.10 + - ukkonen + license: MIT + license_family: MIT + purls: + - pkg:pypi/identify?source=compressed-mapping + size: 79302 + timestamp: 1768295306539 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda + sha256: c18ab120a0613ada4391b15981d86ff777b5690ca461ea7e9e49531e8f374745 + md5: 63ccfdc3a3ce25b027b8767eb722fca8 + depends: + - python >=3.9 + - zipp >=3.20 + - python + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/importlib-metadata?source=hash-mapping + size: 34641 + timestamp: 1747934053147 +- conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_9.conda + sha256: 41557eeadf641de6aeae49486cef30d02a6912d8da98585d687894afd65b356a + md5: 86d9cba083cd041bfbf242a01a7a1999 + constrains: + - sysroot_linux-64 ==2.28 + license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later + license_family: GPL + purls: [] + size: 1278712 + timestamp: 1765578681495 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ld64_osx-arm64-956.6-llvm22_1_h1f1a275_4.conda + sha256: c4d883bcb0b874b1b0d59ee9759c86449d9ce0827ead6ee709bd14efb811f56d + md5: f45ac8eed1f5341e70f0153db1da90d2 + depends: + - __glibc >=2.17,<3.0.a0 + - libdispatch >=6.2,<7.0a0 + - libgcc >=14 + - libllvm22 >=22.1.0,<22.2.0a0 + - libstdcxx >=14 + - libuuid >=2.41.3,<3.0a0 + - sigtool-codesign + - tapi >=1600.0.11.8,<1601.0a0 + constrains: + - ld64 956.6.* + - clang 22.1.* + - cctools 1030.6.3.* + - cctools_impl_osx-arm64 1030.6.3.* + license: APSL-2.0 + license_family: Other + purls: [] + size: 6352512 + timestamp: 1772018332867 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64_osx-arm64-956.6-llvm22_1_h692d5aa_4.conda + sha256: e4ae2ef85672c094aa3467d466f932ccdc1dda9bd4adac64f4252cc796149091 + md5: 4c2255bf859bff6c52ed38960e3bc963 + depends: + - __osx >=11.0 + - libcxx + - libllvm22 >=22.1.0,<22.2.0a0 + - sigtool-codesign + - tapi >=1600.0.11.8,<1601.0a0 + constrains: + - clang 22.1.* + - ld64 956.6.* + - cctools_impl_osx-arm64 1030.6.3.* + - cctools 1030.6.3.* + license: APSL-2.0 + license_family: Other + purls: [] + size: 1038027 + timestamp: 1772019602406 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_101.conda + sha256: 565941ac1f8b0d2f2e8f02827cbca648f4d18cd461afc31f15604cd291b5c5f3 + md5: 12bd9a3f089ee6c9266a37dab82afabd + depends: + - __glibc >=2.17,<3.0.a0 + - zstd >=1.5.7,<1.6.0a0 + constrains: + - binutils_impl_linux-64 2.45.1 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 725507 + timestamp: 1770267139900 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda + build_number: 5 + sha256: 18c72545080b86739352482ba14ba2c4815e19e26a7417ca21a95b76ec8da24c + md5: c160954f7418d7b6e87eaf05a8913fa9 + depends: + - libopenblas >=0.3.30,<0.3.31.0a0 + - libopenblas >=0.3.30,<1.0a0 + constrains: + - mkl <2026 + - liblapack 3.11.0 5*_openblas + - libcblas 3.11.0 5*_openblas + - blas 2.305 openblas + - liblapacke 3.11.0 5*_openblas + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 18213 + timestamp: 1765818813880 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-5_h51639a9_openblas.conda + build_number: 5 + sha256: 620a6278f194dcabc7962277da6835b1e968e46ad0c8e757736255f5ddbfca8d + md5: bcc025e2bbaf8a92982d20863fe1fb69 + depends: + - libopenblas >=0.3.30,<0.3.31.0a0 + - libopenblas >=0.3.30,<1.0a0 + constrains: + - libcblas 3.11.0 5*_openblas + - liblapack 3.11.0 5*_openblas + - liblapacke 3.11.0 5*_openblas + - blas 2.305 openblas + - mkl <2026 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 18546 + timestamp: 1765819094137 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libcap-2.77-h3ff7636_0.conda + sha256: 9517cce5193144af0fcbf19b7bd67db0a329c2cc2618f28ffecaa921a1cbe9d3 + md5: 09c264d40c67b82b49a3f3b89037bd2e + depends: + - __glibc >=2.17,<3.0.a0 + - attr >=2.5.2,<2.6.0a0 + - libgcc >=14 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 121429 + timestamp: 1762349484074 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda + build_number: 5 + sha256: 0cbdcc67901e02dc17f1d19e1f9170610bd828100dc207de4d5b6b8ad1ae7ad8 + md5: 6636a2b6f1a87572df2970d3ebc87cc0 + depends: + - libblas 3.11.0 5_h4a7cf45_openblas + constrains: + - liblapacke 3.11.0 5*_openblas + - blas 2.305 openblas + - liblapack 3.11.0 5*_openblas + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 18194 + timestamp: 1765818837135 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-5_hb0561ab_openblas.conda + build_number: 5 + sha256: 38809c361bbd165ecf83f7f05fae9b791e1baa11e4447367f38ae1327f402fc0 + md5: efd8bd15ca56e9d01748a3beab8404eb + depends: + - libblas 3.11.0 5_h51639a9_openblas + constrains: + - liblapacke 3.11.0 5*_openblas + - liblapack 3.11.0 5*_openblas + - blas 2.305 openblas + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 18548 + timestamp: 1765819108956 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp22.1-22.1.0-default_h99862b1_0.conda + sha256: 914da94dbf829192b2bb360a7684b32e46f047a57de96a2f5ab39a011aeae6ea + md5: d966a23335e090a5410cc4f0dec8d00a + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libllvm22 >=22.1.0,<22.2.0a0 + - libstdcxx >=14 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 21661249 + timestamp: 1772101075353 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp22.1-22.1.0-default_hf3020a7_0.conda + sha256: 87028410f716ce686e06f10294a3f3093a3c378af8d934bf2b2be156f052ec2f + md5: eafb2adb22cd13c6821f1e967bbbb774 + depends: + - __osx >=11.0 + - libcxx >=22.1.0 + - libllvm22 >=22.1.0,<22.2.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 14185830 + timestamp: 1772097754373 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libcompiler-rt-22.1.0-hb700be7_0.conda + sha256: a80eb63faa09b9e091922e805a5d6bd8e3531948d9bbe09b841c0f84f058bf00 + md5: a5c4f5f06ed7db43eb32bbc80ce28300 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + constrains: + - compiler-rt >=9.0.1 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 10658616 + timestamp: 1772021015681 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcompiler-rt-22.1.0-hd34ed20_0.conda + sha256: a97799a22737d57cacb6307a4928e9a06b4a9b696cbdc17fa211741574cfe9fb + md5: bd58c622babec344e90e35eb4eb2cfb4 + depends: + - __osx >=11.0 + constrains: + - compiler-rt >=9.0.1 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 1375369 + timestamp: 1772019616868 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.0-h55c6f16_1.conda + sha256: ce1049fa6fda9cf08ff1c50fb39573b5b0ea6958375d8ea7ccd8456ab81a0bcb + md5: e9c56daea841013e7774b5cd46f41564 + depends: + - __osx >=11.0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 568910 + timestamp: 1772001095642 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libdispatch-6.2-ha1474c7_1.conda + sha256: 8790c27ebe1d61c47468c27a213e330e7cb73cd259e39c981864a6e1a9e3798d + md5: b21c3ab8e8deff6f0a9de0e4b23dad87 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=13 + - libstdcxx-ng >=13 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 162406 + timestamp: 1769957134613 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libensemble-1.5.0-nompi_py314h8bb396f_101.conda + sha256: cff2fbcf70a8ec04e7f4a7ade28ded7f82c4bfd854ad2657ca1ae8a7f935b137 + md5: 8b07b5c639abf16a3aedf97168e6fcf7 + depends: + - mpmath + - nlopt + - numpy + - psutil + - pydantic >=1.10 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + - pyyaml + - scipy + - setuptools + - tomli + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/libensemble?source=hash-mapping + size: 799785 + timestamp: 1762181191605 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libensemble-1.5.0-nompi_py314h809f670_101.conda + sha256: df2ce68ac2b0f04e7e2bcdfb816e25dc4fd75c0b8e5eb70c65e65ba7427ac718 + md5: 6b5d76c99e8056ba23d90bd1a81f08b8 + depends: + - mpmath + - nlopt + - numpy + - psutil + - pydantic >=1.10 + - python >=3.14,<3.15.0a0 + - python >=3.14,<3.15.0a0 *_cp314 + - python_abi 3.14.* *_cp314 + - pyyaml + - scipy + - setuptools + - tomli + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/libensemble?source=hash-mapping + size: 801852 + timestamp: 1762182797113 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.4-hecca717_0.conda + sha256: d78f1d3bea8c031d2f032b760f36676d87929b18146351c4464c66b0869df3f5 + md5: e7f7ce06ec24cfcfb9e36d28cf82ba57 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + constrains: + - expat 2.7.4.* + license: MIT + license_family: MIT + purls: [] + size: 76798 + timestamp: 1771259418166 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.4-hf6b4638_0.conda + sha256: 03887d8080d6a8fe02d75b80929271b39697ecca7628f0657d7afaea87761edf + md5: a92e310ae8dfc206ff449f362fc4217f + depends: + - __osx >=11.0 + constrains: + - expat 2.7.4.* + license: MIT + license_family: MIT + purls: [] + size: 68199 + timestamp: 1771260020767 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libfabric-2.4.0-ha770c72_1.conda + sha256: c5298c27fe1be477b17cd989566eb6c1a1bb50222f2f90389143b6f06ba95398 + md5: 647939791f2cc2de3b4ecac28d216279 + depends: + - libfabric1 2.4.0 h8f87c3e_1 + license: BSD-2-Clause OR GPL-2.0-only + license_family: BSD + purls: [] + size: 14406 + timestamp: 1769190335747 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libfabric-2.4.0-hce30654_1.conda + sha256: a2a9779347d26c0d66f18705183e8701aeba420db01edaa5dcde3ae76cbf9c00 + md5: b356b8b9cdb1cb1f3cbfb25d00d35515 + depends: + - libfabric1 2.4.0 h84a0fba_1 + license: BSD-2-Clause OR GPL-2.0-only + license_family: BSD + purls: [] + size: 14420 + timestamp: 1769190772410 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libfabric1-2.4.0-h8f87c3e_1.conda + sha256: 3110ee1b3debb97638897bb0d7074ee257ff33519520327064c36a35391dec50 + md5: c5fc7dbc3dbabcae1eec5d6c62251df8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libnl >=3.11.0,<4.0a0 + - rdma-core >=61.0 + license: BSD-2-Clause OR GPL-2.0-only + license_family: BSD + purls: [] + size: 699849 + timestamp: 1769190335048 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libfabric1-2.4.0-h84a0fba_1.conda + sha256: c57c240b11a0051f62d9f26560ae2c94df0ba5e30a33c59cd79786bf2d8588c6 + md5: 17b27d39ff83af87065476ab6d8b7e74 + depends: + - __osx >=11.0 + license: BSD-2-Clause OR GPL-2.0-only + license_family: BSD + purls: [] + size: 330902 + timestamp: 1769190770219 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda + sha256: 31f19b6a88ce40ebc0d5a992c131f57d919f73c0b92cd1617a5bec83f6e961e6 + md5: a360c33a5abe61c07959e449fa1453eb + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: MIT + license_family: MIT + purls: [] + size: 58592 + timestamp: 1769456073053 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda + sha256: 6686a26466a527585e6a75cc2a242bf4a3d97d6d6c86424a441677917f28bec7 + md5: 43c04d9cb46ef176bb2a4c77e324d599 + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: [] + size: 40979 + timestamp: 1769456747661 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda + sha256: faf7d2017b4d718951e3a59d081eb09759152f93038479b768e3d612688f83f5 + md5: 0aa00f03f9e39fb9876085dee11a85d4 + depends: + - __glibc >=2.17,<3.0.a0 + - _openmp_mutex >=4.5 + constrains: + - libgcc-ng ==15.2.0=*_18 + - libgomp 15.2.0 he0feb66_18 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 1041788 + timestamp: 1771378212382 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_18.conda + sha256: 1d9c4f35586adb71bcd23e31b68b7f3e4c4ab89914c26bed5f2859290be5560e + md5: 92df6107310b1fff92c4cc84f0de247b + depends: + - _openmp_mutex + constrains: + - libgcc-ng ==15.2.0=*_18 + - libgomp 15.2.0 18 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 401974 + timestamp: 1771378877463 +- conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.2.0-hcc6f6b0_118.conda + sha256: af69fc5852908d26e5b630b270982ac792506551dd6af1614bf0370dd5ab5746 + md5: 5d3a96d55f1be45fef88ee23155effd9 + depends: + - __unix + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 3085932 + timestamp: 1771378098166 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_18.conda + sha256: e318a711400f536c81123e753d4c797a821021fb38970cebfb3f454126016893 + md5: d5e96b1ed75ca01906b3d2469b4ce493 + depends: + - libgcc 15.2.0 he0feb66_18 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 27526 + timestamp: 1771378224552 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_18.conda + sha256: d2c9fad338fd85e4487424865da8e74006ab2e2475bd788f624d7a39b2a72aee + md5: 9063115da5bc35fdc3e1002e69b9ef6e + depends: + - libgfortran5 15.2.0 h68bc16d_18 + constrains: + - libgfortran-ng ==15.2.0=*_18 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 27523 + timestamp: 1771378269450 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_18.conda + sha256: 63f89087c3f0c8621c5c89ecceec1e56e5e1c84f65fc9c5feca33a07c570a836 + md5: 26981599908ed2205366e8fc91b37fc6 + depends: + - libgfortran5 15.2.0 hdae7583_18 + constrains: + - libgfortran-ng ==15.2.0=*_18 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 138973 + timestamp: 1771379054939 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_18.conda + sha256: 539b57cf50ec85509a94ba9949b7e30717839e4d694bc94f30d41c9d34de2d12 + md5: 646855f357199a12f02a87382d429b75 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15.2.0 + constrains: + - libgfortran 15.2.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 2482475 + timestamp: 1771378241063 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_18.conda + sha256: 91033978ba25e6a60fb86843cf7e1f7dc8ad513f9689f991c9ddabfaf0361e7e + md5: c4a6f7989cffb0544bfd9207b6789971 + depends: + - libgcc >=15.2.0 + constrains: + - libgfortran 15.2.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 598634 + timestamp: 1771378886363 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda + sha256: 21337ab58e5e0649d869ab168d4e609b033509de22521de1bfed0c031bfc5110 + md5: 239c5e9546c38a1e884d69effcf4c882 + depends: + - __glibc >=2.17,<3.0.a0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 603262 + timestamp: 1771378117851 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.13.0-default_he001693_1000.conda + sha256: 5041d295813dfb84652557839825880aae296222ab725972285c5abe3b6e4288 + md5: c197985b58bc813d26b42881f0021c82 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + - libxml2 + - libxml2-16 >=2.14.6 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 2436378 + timestamp: 1770953868164 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.13.0-default_ha97f43a_1000.conda + sha256: d47c3c030671d196ff1cdd343e93eb2ae0d7b665cb79f8164cc91488796db437 + md5: fed55ddd65a830cb62e78f07cfffcd41 + depends: + - __osx >=11.0 + - libcxx >=19 + - libxml2 + - libxml2-16 >=2.14.6 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 2339152 + timestamp: 1770953916323 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda + sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f + md5: 915f5995e94f60e9a4826e0b0920ee88 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: LGPL-2.1-only + purls: [] + size: 790176 + timestamp: 1754908768807 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda + sha256: de0336e800b2af9a40bdd694b03870ac4a848161b35c8a2325704f123f185f03 + md5: 4d5a7445f0b25b6a3ddbb56e790f5251 + depends: + - __osx >=11.0 + license: LGPL-2.1-only + purls: [] + size: 750379 + timestamp: 1754909073836 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda + build_number: 5 + sha256: c723b6599fcd4c6c75dee728359ef418307280fa3e2ee376e14e85e5bbdda053 + md5: b38076eb5c8e40d0106beda6f95d7609 + depends: + - libblas 3.11.0 5_h4a7cf45_openblas + constrains: + - blas 2.305 openblas + - liblapacke 3.11.0 5*_openblas + - libcblas 3.11.0 5*_openblas + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 18200 + timestamp: 1765818857876 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda + build_number: 5 + sha256: 735a6e6f7d7da6f718b6690b7c0a8ae4815afb89138aa5793abe78128e951dbb + md5: ca9d752201b7fa1225bca036ee300f2b + depends: + - libblas 3.11.0 5_h51639a9_openblas + constrains: + - libcblas 3.11.0 5*_openblas + - blas 2.305 openblas + - liblapacke 3.11.0 5*_openblas + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 18551 + timestamp: 1765819121855 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm22-22.1.0-hf7376ad_0.conda + sha256: 2efe1d8060c6afeb2df037fc61c182fb84e10f49cdbd29ed672e112d4d4ce2d7 + md5: 213f51bbcce2964ff2ec00d0fdd38541 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + - libxml2 + - libxml2-16 >=2.14.6 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 44236214 + timestamp: 1772009776202 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm22-22.1.0-h89af1be_0.conda + sha256: 19e2c69bd90cffc66a9fd9feff2bfe6093cda8bf69aa01a6e1c41cbc0a5c24a0 + md5: 620fe27ebf89177446fb7cc3c26c9cc0 + depends: + - __osx >=11.0 + - libcxx >=19 + - libxml2 + - libxml2-16 >=2.14.6 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 30060199 + timestamp: 1771978789197 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + sha256: 755c55ebab181d678c12e49cced893598f2bab22d582fbbf4d8b83c18be207eb + md5: c7c83eecbb72d88b940c249af56c8b17 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + constrains: + - xz 5.8.2.* + license: 0BSD + purls: [] + size: 113207 + timestamp: 1768752626120 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda + sha256: 7bfc7ffb2d6a9629357a70d4eadeadb6f88fa26ebc28f606b1c1e5e5ed99dc7e + md5: 009f0d956d7bfb00de86901d16e486c7 + depends: + - __osx >=11.0 + constrains: + - xz 5.8.2.* + license: 0BSD + purls: [] + size: 92242 + timestamp: 1768752982486 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda + sha256: fe171ed5cf5959993d43ff72de7596e8ac2853e9021dec0344e583734f1e0843 + md5: 2c21e66f50753a083cbe6b80f38268fa + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: BSD-2-Clause + license_family: BSD + purls: [] + size: 92400 + timestamp: 1769482286018 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h84a0fba_1.conda + sha256: 1089c7f15d5b62c622625ec6700732ece83be8b705da8c6607f4dabb0c4bd6d2 + md5: 57c4be259f5e0b99a5983799a228ae55 + depends: + - __osx >=11.0 + license: BSD-2-Clause + license_family: BSD + purls: [] + size: 73690 + timestamp: 1769482560514 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libnl-3.11.0-hb9d3cd8_0.conda + sha256: ba7c5d294e3d80f08ac5a39564217702d1a752e352e486210faff794ac5001b4 + md5: db63358239cbe1ff86242406d440e44a + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: LGPL-2.1-or-later + license_family: LGPL + purls: [] + size: 741323 + timestamp: 1731846827427 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda + sha256: 199d79c237afb0d4780ccd2fbf829cea80743df60df4705202558675e07dd2c5 + md5: be43915efc66345cccb3c310b6ed0374 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libgfortran + - libgfortran5 >=14.3.0 + constrains: + - openblas >=0.3.30,<0.3.31.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 5927939 + timestamp: 1763114673331 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda + sha256: ebbbc089b70bcde87c4121a083c724330f02a690fb9d7c6cd18c30f1b12504fa + md5: a6f6d3a31bb29e48d37ce65de54e2df0 + depends: + - __osx >=11.0 + - libgfortran + - libgfortran5 >=14.3.0 + - llvm-openmp >=19.1.7 + constrains: + - openblas >=0.3.30,<0.3.31.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 4284132 + timestamp: 1768547079205 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsigtool-0.1.3-ha2d1da1_0.conda + sha256: 92e2c932cbf752f87bb2f6946165947e52c0e76cdcc302c99fc48a9e481f4345 + md5: 2420d35f7e5448dd6944029d78f79a8e + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + - openssl >=3.5.4,<4.0a0 + license: MIT + license_family: MIT + purls: [] + size: 42259 + timestamp: 1767044845321 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsigtool-0.1.3-h98dc951_0.conda + sha256: 421f7bd7caaa945d9cd5d374cc3f01e75637ca7372a32d5e7695c825a48a30d1 + md5: c08557d00807785decafb932b5be7ef5 + depends: + - __osx >=11.0 + - openssl >=3.5.4,<4.0a0 + license: MIT + license_family: MIT + purls: [] + size: 36416 + timestamp: 1767045062496 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda + sha256: 04596fcee262a870e4b7c9807224680ff48d4d0cc0dac076a602503d3dc6d217 + md5: da5be73701eecd0e8454423fd6ffcf30 + depends: + - __glibc >=2.17,<3.0.a0 + - icu >=78.2,<79.0a0 + - libgcc >=14 + - libzlib >=1.3.1,<2.0a0 + license: blessing + purls: [] + size: 942808 + timestamp: 1768147973361 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.2-h1ae2325_0.conda + sha256: 6e9b9f269732cbc4698c7984aa5b9682c168e2a8d1e0406e1ff10091ca046167 + md5: 4b0bf313c53c3e89692f020fb55d5f2c + depends: + - __osx >=11.0 + - icu >=78.2,<79.0a0 + - libzlib >=1.3.1,<2.0a0 + license: blessing + purls: [] + size: 909777 + timestamp: 1768148320535 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda + sha256: 78668020064fdaa27e9ab65cd2997e2c837b564ab26ce3bf0e58a2ce1a525c6e + md5: 1b08cd684f34175e4514474793d44bcb + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc 15.2.0 he0feb66_18 + constrains: + - libstdcxx-ng ==15.2.0=*_18 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 5852330 + timestamp: 1771378262446 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_18.conda + sha256: 3c902ffd673cb3c6ddde624cdb80f870b6c835f8bf28384b0016e7d444dd0145 + md5: 6235adb93d064ecdf3d44faee6f468de + depends: + - libstdcxx 15.2.0 h934c35e_18 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 27575 + timestamp: 1771378314494 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-257.10-hd0affe5_4.conda + sha256: f0356bb344a684e7616fc84675cfca6401140320594e8686be30e8ac7547aed2 + md5: 1d4c18d75c51ed9d00092a891a547a7d + depends: + - __glibc >=2.17,<3.0.a0 + - libcap >=2.77,<2.78.0a0 + - libgcc >=14 + license: LGPL-2.1-or-later + purls: [] + size: 491953 + timestamp: 1770738638119 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libudev1-257.10-hd0affe5_4.conda + sha256: ed4d2c01fbeb1330f112f7e399408634db277d3dfb2dec1d0395f56feaa24351 + md5: 6c74fba677b61a0842cbf0f63eee683b + depends: + - __glibc >=2.17,<3.0.a0 + - libcap >=2.77,<2.78.0a0 + - libgcc >=14 + license: LGPL-2.1-or-later + purls: [] + size: 144654 + timestamp: 1770738650966 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda + sha256: 1a7539cfa7df00714e8943e18de0b06cceef6778e420a5ee3a2a145773758aee + md5: db409b7c1720428638e7c0d509d3e1b5 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 40311 + timestamp: 1766271528534 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-he237659_1.conda + sha256: 047be059033c394bd32ae5de66ce389824352120b3a7c0eff980195f7ed80357 + md5: 417955234eccd8f252b86a265ccdab7f + depends: + - __glibc >=2.17,<3.0.a0 + - icu >=78.1,<79.0a0 + - libgcc >=14 + - libiconv >=1.18,<2.0a0 + - liblzma >=5.8.1,<6.0a0 + - libxml2-16 2.15.1 hca6bf5a_1 + - libzlib >=1.3.1,<2.0a0 + license: MIT + license_family: MIT + purls: [] + size: 45402 + timestamp: 1766327161688 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.1-h8d039ee_1.conda + sha256: 59f96fa27cce6a9a27414c5bb301eedda1a1b85cd0d8f5d68f77e46b86e7c95f + md5: fd804ee851e20faca4fecc7df0901d07 + depends: + - __osx >=11.0 + - icu >=78.1,<79.0a0 + - libiconv >=1.18,<2.0a0 + - liblzma >=5.8.1,<6.0a0 + - libxml2-16 2.15.1 h5ef1a60_1 + - libzlib >=1.3.1,<2.0a0 + license: MIT + license_family: MIT + purls: [] + size: 40607 + timestamp: 1766327501392 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-hca6bf5a_1.conda + sha256: 8331284bf9ae641b70cdc0e5866502dd80055fc3b9350979c74bb1d192e8e09e + md5: 3fdd8d99683da9fe279c2f4cecd1e048 + depends: + - __glibc >=2.17,<3.0.a0 + - icu >=78.1,<79.0a0 + - libgcc >=14 + - libiconv >=1.18,<2.0a0 + - liblzma >=5.8.1,<6.0a0 + - libzlib >=1.3.1,<2.0a0 + constrains: + - libxml2 2.15.1 + license: MIT + license_family: MIT + purls: [] + size: 555747 + timestamp: 1766327145986 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h5ef1a60_1.conda + sha256: 2d5ab15113b0ba21f4656d387d26ab59e4fbaf3027f5e58a2a4fe370821eb106 + md5: 7eed1026708e26ee512f43a04d9d0027 + depends: + - __osx >=11.0 + - icu >=78.1,<79.0a0 + - libiconv >=1.18,<2.0a0 + - liblzma >=5.8.1,<6.0a0 + - libzlib >=1.3.1,<2.0a0 + constrains: + - libxml2 2.15.1 + license: MIT + license_family: MIT + purls: [] + size: 464886 + timestamp: 1766327479416 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 + md5: edb0dca6bc32e4f4789199455a1dbeb8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + purls: [] + size: 60963 + timestamp: 1727963148474 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + sha256: ce34669eadaba351cd54910743e6a2261b67009624dbc7daeeafdef93616711b + md5: 369964e85dc26bfe78f41399b366c435 + depends: + - __osx >=11.0 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + purls: [] + size: 46438 + timestamp: 1727963202283 +- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-22.1.0-h4922eb0_0.conda + sha256: 543c9f17cf6ee6d7b635823fb9009df421d510c36739534df6ae43eadaf6ff4e + md5: 5e7da5333653c631d27732893b934351 + depends: + - __glibc >=2.17,<3.0.a0 + constrains: + - intel-openmp <0.0a0 + - openmp 22.1.0|22.1.0.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 6136884 + timestamp: 1772024545 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-22.1.0-hc7d1edf_0.conda + sha256: 0daeedb3872ad0fdd6f0d7e7165c63488e8a315d7057907434145fba0c1e7b3d + md5: ff0820b5588b20be3b858552ecf8ffae + depends: + - __osx >=11.0 + constrains: + - openmp 22.1.0|22.1.0.* + - intel-openmp <0.0a0 + license: Apache-2.0 WITH LLVM-exception + purls: [] + size: 285558 + timestamp: 1772028716784 +- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-22.1.0-hb700be7_0.conda + sha256: acaaddc3d0e5110e476254eac7ff37bac45d92def9644bee77955a3f937e6f15 + md5: e903c2e7a8823466d3745cd7e816f050 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libllvm22 22.1.0 hf7376ad_0 + - libstdcxx >=14 + - llvm-tools-22 22.1.0 h3b15d91_0 + constrains: + - llvmdev 22.1.0 + - llvm 22.1.0 + - clang 22.1.0 + - clang-tools 22.1.0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 50826 + timestamp: 1772010024536 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-22.1.0-hd34ed20_0.conda + sha256: 13540d63bf2615ec4dfea40f311c2c4a96bf8bea63fcfb25f20e8054a03920e6 + md5: 2e8bcdb32582101601c13078e22c98fa + depends: + - __osx >=11.0 + - libllvm22 22.1.0 h89af1be_0 + - llvm-tools-22 22.1.0 hb545844_0 + constrains: + - llvm 22.1.0 + - llvmdev 22.1.0 + - clang 22.1.0 + - clang-tools 22.1.0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 51193 + timestamp: 1771979258364 +- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-22-22.1.0-h3b15d91_0.conda + sha256: d1dfea954e527a9bee36baf9a70aca8b8de990f3d0c0371fdd27a77dd5c7589d + md5: 02038708711926b9052f15386eccb7b3 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libllvm22 22.1.0 hf7376ad_0 + - libstdcxx >=14 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 25332782 + timestamp: 1772009946264 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-22-22.1.0-hb545844_0.conda + sha256: 307c71f3185383ce1239b8b0314dfc4f87c7acd8c6214671ecf57d68175977e8 + md5: 6fdadfcb14107a0c3917c059c8c40b51 + depends: + - __osx >=11.0 + - libcxx >=19 + - libllvm22 22.1.0 h89af1be_0 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 17838140 + timestamp: 1771979103964 +- conda: https://conda.anaconda.org/conda-forge/noarch/mpi-1.0.1-mpich.conda + sha256: eacc189267202669a1c5c849dcca2298f41acb3918f05cf912d7d61ee7176fac + md5: 1052de900d672ec8b3713b8e300a8f06 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6522 + timestamp: 1727683134241 +- conda: https://conda.anaconda.org/conda-forge/linux-64/mpich-5.0.0-h6f9170e_1.conda + sha256: 6ce05b2bab0afc6f48d4d4214c253f44d4ed9267a4f2d1d2d95bc97943d639f8 + md5: d9ec39e87f3141e599b37d8d548dced3 + depends: + - mpi 1.0.* mpich + - libgfortran5 >=14.3.0 + - libgfortran + - libgcc >=14 + - libstdcxx >=14 + - __glibc >=2.17,<3.0.a0 + - libhwloc >=2.13.0,<2.13.1.0a0 + - libfabric + - libfabric1 >=1.14.0 + - ucx >=1.20.0,<1.21.0a0 + license: LicenseRef-MPICH + purls: [] + size: 10152145 + timestamp: 1771225005984 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpich-5.0.0-ha380261_1.conda + sha256: 7ee0700b565aafee58be46f027bfce87a86d8a7aef760751336c9ef675523a17 + md5: 962b92c41e5d645290f99050d03a383a + depends: + - mpi 1.0.* mpich + - libcxx >=19 + - __osx >=11.0 + - libgfortran + - libgfortran5 >=14.3.0 + - libfabric + - libfabric1 >=1.14.0 + - libhwloc >=2.13.0,<2.13.1.0a0 + license: LicenseRef-MPICH + purls: [] + size: 6770167 + timestamp: 1771225096126 +- conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.0-pyhd8ed1ab_0.conda + sha256: 0f6f76159c40af2c7ae483934513e27a9e4137364ec717c1d69511dd4bbc6a68 + md5: 74149a38e723261f9f61bddd69e90022 + depends: + - python >=3.10 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/mpmath?source=compressed-mapping + size: 464419 + timestamp: 1771870721583 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda + sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586 + md5: 47e340acb35de30501a76c7c799c41d7 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: X11 AND BSD-3-Clause + purls: [] + size: 891641 + timestamp: 1738195959188 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda + sha256: 2827ada40e8d9ca69a153a45f7fd14f32b2ead7045d3bbb5d10964898fe65733 + md5: 068d497125e4bf8a66bf707254fff5ae + depends: + - __osx >=11.0 + license: X11 AND BSD-3-Clause + purls: [] + size: 797030 + timestamp: 1738196177597 +- conda: https://conda.anaconda.org/conda-forge/linux-64/nlopt-2.10.0-py314h411e966_3.conda + sha256: 679520c5109c1d79c68f1e81cd6bbfd01d67d4c9106df40ca567202aea42cfea + md5: b3cfbd243e4a955e5147a0961b72966e + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + - numpy >=1.23,<3 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + license: LGPL-2.1-or-later + purls: + - pkg:pypi/nlopt?source=hash-mapping + size: 414906 + timestamp: 1768584812132 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlopt-2.10.0-py314hbfffb6e_3.conda + sha256: 13dd85bb3632899b3600afcb6ea6f47626eff6340819c114add1a1d68700f4e5 + md5: ca86ff609e6c13e1888d40a5db3c0cde + depends: + - __osx >=11.0 + - libcxx >=19 + - numpy >=1.23,<3 + - python >=3.14,<3.15.0a0 + - python >=3.14,<3.15.0a0 *_cp314 + - python_abi 3.14.* *_cp314 + license: LGPL-2.1-or-later + purls: + - pkg:pypi/nlopt?source=hash-mapping + size: 332108 + timestamp: 1768585405844 +- conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda + sha256: 4fa40e3e13fc6ea0a93f67dfc76c96190afd7ea4ffc1bac2612d954b42cdc3ee + md5: eb52d14a901e23c39e9e7b4a1a5c015f + depends: + - python >=3.10 + - setuptools + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/nodeenv?source=hash-mapping + size: 40866 + timestamp: 1766261270149 +- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.2-py314h2b28147_1.conda + sha256: 1d8377c8001c15ed12c2713b723213474b435706ab9d34ede69795d64af9e94d + md5: 4ea6b620fdf24a1a0bc4f1c7134dfafb + depends: + - python + - libstdcxx >=14 + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - libcblas >=3.9.0,<4.0a0 + - python_abi 3.14.* *_cp314 + - libblas >=3.9.0,<4.0a0 + - liblapack >=3.9.0,<4.0a0 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/numpy?source=compressed-mapping + size: 8926994 + timestamp: 1770098474394 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.2-py314hae46ccb_1.conda + sha256: 43b5ed0ead36e5133ee8462916d23284f0bce0e5f266fa4bd31a020a6cc22f14 + md5: 0f0ddf0575b98d91cda9e3ca9eaeb9a2 + depends: + - python + - __osx >=11.0 + - python 3.14.* *_cp314 + - libcxx >=19 + - libblas >=3.9.0,<4.0a0 + - liblapack >=3.9.0,<4.0a0 + - python_abi 3.14.* *_cp314 + - libcblas >=3.9.0,<4.0a0 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/numpy?source=hash-mapping + size: 6992958 + timestamp: 1770098398327 +- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda + sha256: 44c877f8af015332a5d12f5ff0fb20ca32f896526a7d0cdb30c769df1144fb5c + md5: f61eb8cd60ff9057122a3d338b99c00f + depends: + - __glibc >=2.17,<3.0.a0 + - ca-certificates + - libgcc >=14 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 3164551 + timestamp: 1769555830639 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda + sha256: 361f5c5e60052abc12bdd1b50d7a1a43e6a6653aab99a2263bf2288d709dcf67 + md5: f4f6ad63f98f64191c3e77c5f5f29d76 + depends: + - __osx >=11.0 + - ca-certificates + license: Apache-2.0 + license_family: Apache + purls: [] + size: 3104268 + timestamp: 1769556384749 +- conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.0.1-pyh145f28c_0.conda + sha256: 5f66ea31d62188c266c5a8752119b0cc90a5bf05963f665cf48a33e0ec58d39c + md5: 09a970fbf75e8ed1aa633827ded6aa4f + depends: + - python >=3.13.0a0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pip?source=compressed-mapping + size: 1180743 + timestamp: 1770270312477 +- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.2-pyhcf101f3_0.conda + sha256: 7f263219cecf0ba6d74c751efa60c4676ce823157ca90aa43ebba5ac615ca0fa + md5: 4fefefb892ce9cc1539405bec2f1a6cd + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/platformdirs?source=compressed-mapping + size: 25643 + timestamp: 1771233827084 +- conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda + sha256: 5b81b7516d4baf43d0c185896b245fa7384b25dc5615e7baa504b7fa4e07b706 + md5: 7f3ac694319c7eaf81a0325d6405e974 + depends: + - cfgv >=2.0.0 + - identify >=1.0.0 + - nodeenv >=0.11.1 + - python >=3.10 + - pyyaml >=5.1 + - virtualenv >=20.10.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pre-commit?source=hash-mapping + size: 200827 + timestamp: 1765937577534 +- conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py314h0f05182_0.conda + sha256: f15574ed6c8c8ed8c15a0c5a00102b1efe8b867c0bd286b498cd98d95bd69ae5 + md5: 4f225a966cfee267a79c5cb6382bd121 + depends: + - python + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.14.* *_cp314 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/psutil?source=hash-mapping + size: 231303 + timestamp: 1769678156552 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.2-py314ha14b1ff_0.conda + sha256: e0f31c053eb11803d63860c213b2b1b57db36734f5f84a3833606f7c91fedff9 + md5: fc4c7ab223873eee32080d51600ce7e7 + depends: + - python + - __osx >=11.0 + - python 3.14.* *_cp314 + - python_abi 3.14.* *_cp314 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/psutil?source=hash-mapping + size: 245502 + timestamp: 1769678303655 +- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + sha256: 79db7928d13fab2d892592223d7570f5061c192f27b9febd1a418427b719acc6 + md5: 12c566707c80111f9799308d9e265aef + depends: + - python >=3.9 + - python + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pycparser?source=hash-mapping + size: 110100 + timestamp: 1733195786147 +- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda + sha256: 868569d9505b7fe246c880c11e2c44924d7613a8cdcc1f6ef85d5375e892f13d + md5: c3946ed24acdb28db1b5d63321dbca7d + depends: + - typing-inspection >=0.4.2 + - typing_extensions >=4.14.1 + - python >=3.10 + - typing-extensions >=4.6.1 + - annotated-types >=0.6.0 + - pydantic-core ==2.41.5 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic?source=hash-mapping + size: 340482 + timestamp: 1764434463101 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.41.5-py314h2e6c369_1.conda + sha256: 7e0ae379796e28a429f8e48f2fe22a0f232979d65ec455e91f8dac689247d39f + md5: 432b0716a1dfac69b86aa38fdd59b7e6 + depends: + - python + - typing-extensions >=4.6.0,!=4.7.0 + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.14.* *_cp314 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1943088 + timestamp: 1762988995556 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py314haad56a0_1.conda + sha256: dded9092d89f1d8c267d5ce8b5e21f935c51acb7a64330f507cdfb3b69a98116 + md5: 420a4b8024e9b22880f1e03b612afa7d + depends: + - python + - typing-extensions >=4.6.0,!=4.7.0 + - __osx >=11.0 + - python 3.14.* *_cp314 + - python_abi 3.14.* *_cp314 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1784478 + timestamp: 1762989019956 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda + build_number: 101 + sha256: cb0628c5f1732f889f53a877484da98f5a0e0f47326622671396fb4f2b0cd6bd + md5: c014ad06e60441661737121d3eae8a60 + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.7.3,<3.0a0 + - libffi >=3.5.2,<3.6.0a0 + - libgcc >=14 + - liblzma >=5.8.2,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.51.2,<4.0a0 + - libuuid >=2.41.3,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.5.5,<4.0a0 + - python_abi 3.14.* *_cp314 + - readline >=8.3,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - zstd >=1.5.7,<1.6.0a0 + license: Python-2.0 + purls: [] + size: 36702440 + timestamp: 1770675584356 + python_site_packages_path: lib/python3.14/site-packages +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.3-h4c637c5_101_cp314.conda + build_number: 101 + sha256: fccce2af62d11328d232df9f6bbf63464fd45f81f718c661757f9c628c4378ce + md5: 753c8d0447677acb7ddbcc6e03e82661 + depends: + - __osx >=11.0 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.7.3,<3.0a0 + - libffi >=3.5.2,<3.6.0a0 + - liblzma >=5.8.2,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.51.2,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.5.5,<4.0a0 + - python_abi 3.14.* *_cp314 + - readline >=8.3,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - zstd >=1.5.7,<1.6.0a0 + license: Python-2.0 + purls: [] + size: 13522698 + timestamp: 1770675365241 + python_site_packages_path: lib/python3.14/site-packages +- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda + build_number: 8 + sha256: ad6d2e9ac39751cc0529dd1566a26751a0bf2542adb0c232533d32e176e21db5 + md5: 0539938c55b6b1a59b560e843ad864a4 + constrains: + - python 3.14.* *_cp314 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6989 + timestamp: 1752805904792 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py314h67df5f8_1.conda + sha256: b318fb070c7a1f89980ef124b80a0b5ccf3928143708a85e0053cde0169c699d + md5: 2035f68f96be30dc60a5dfd7452c7941 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pyyaml?source=compressed-mapping + size: 202391 + timestamp: 1770223462836 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py314h6e9b3f0_1.conda + sha256: 95f385f9606e30137cf0b5295f63855fd22223a4cf024d306cf9098ea1c4a252 + md5: dcf51e564317816cb8d546891019b3ab + depends: + - __osx >=11.0 + - python >=3.14,<3.15.0a0 + - python >=3.14,<3.15.0a0 *_cp314 + - python_abi 3.14.* *_cp314 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pyyaml?source=hash-mapping + size: 189475 + timestamp: 1770223788648 +- conda: https://conda.anaconda.org/conda-forge/linux-64/rdma-core-61.0-h192683f_0.conda + sha256: 8e0b7962cf8bec9a016cd91a6c6dc1f9ebc8e7e316b1d572f7b9047d0de54717 + md5: d487d93d170e332ab39803e05912a762 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libnl >=3.11.0,<4.0a0 + - libstdcxx >=14 + - libsystemd0 >=257.10 + - libudev1 >=257.10 + license: Linux-OpenIB + license_family: BSD + purls: [] + size: 1268666 + timestamp: 1769154883613 +- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda + sha256: 12ffde5a6f958e285aa22c191ca01bbd3d6e710aa852e00618fa6ddc59149002 + md5: d7d95fc8287ea7bf33e0e7116d2b95ec + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - ncurses >=6.5,<7.0a0 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 345073 + timestamp: 1765813471974 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda + sha256: a77010528efb4b548ac2a4484eaf7e1c3907f2aec86123ed9c5212ae44502477 + md5: f8381319127120ce51e081dce4865cf4 + depends: + - __osx >=11.0 + - ncurses >=6.5,<7.0a0 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 313930 + timestamp: 1765813902568 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.15.2-h40fa522_0.conda + noarch: python + sha256: e0403324ac0de06f51c76ae2a4671255d48551a813d1f1dc03bd4db7364604f0 + md5: 8dec25bd8a94496202f6f3c9085f2ad3 + depends: + - python + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + purls: + - pkg:pypi/ruff?source=hash-mapping + size: 9284016 + timestamp: 1771570005837 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.15.2-h279115b_0.conda + noarch: python + sha256: 80f93811d26e58bf5a635d1034cba8497223c2bf9efa2a67776a18903e40944a + md5: a52cf978daa5290b1414d3bba6b6ea0b + depends: + - python + - __osx >=11.0 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/ruff?source=hash-mapping + size: 8415205 + timestamp: 1771570140500 +- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.1-py314hf07bd8e_0.conda + sha256: 1ae427836d7979779c9005388a05993a3addabcc66c4422694639a4272d7d972 + md5: d0510124f87c75403090e220db1e9d41 + depends: + - __glibc >=2.17,<3.0.a0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc >=14 + - libgfortran + - libgfortran5 >=14.3.0 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx >=14 + - numpy <2.7 + - numpy >=1.23,<3 + - numpy >=1.25.2 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/scipy?source=compressed-mapping + size: 17225275 + timestamp: 1771880751368 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.1-py314hfc1f868_0.conda + sha256: 6ca2abcaff2cd071aabaabd82b10a87fc7de3a4619f6c98820cc28e90cc2cb20 + md5: 7806ce54b78b0b11517b465a3398e910 + depends: + - __osx >=11.0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libcxx >=19 + - libgfortran + - libgfortran5 >=14.3.0 + - liblapack >=3.9.0,<4.0a0 + - numpy <2.7 + - numpy >=1.23,<3 + - numpy >=1.25.2 + - python >=3.14,<3.15.0a0 + - python >=3.14,<3.15.0a0 *_cp314 + - python_abi 3.14.* *_cp314 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/scipy?source=compressed-mapping + size: 13986990 + timestamp: 1771881110844 +- conda: https://conda.anaconda.org/conda-forge/noarch/sdkroot_env_osx-arm64-26.0-ha3f98da_7.conda + sha256: fabfe031ede99898cb2b0b805f6c0d64fcc24ecdb444de3a83002d8135bf4804 + md5: 5f0ebbfea12d8e5bddff157e271fdb2f + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 4971 + timestamp: 1771434195389 +- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-82.0.0-pyh332efcf_0.conda + sha256: fd7201e38e38bf7f25818d624ca8da97b8998957ca9ae3fb7fdc9c17e6b25fcd + md5: 1d00d46c634177fc8ede8b99d6089239 + depends: + - python >=3.10 + license: MIT + license_family: MIT + purls: + - pkg:pypi/setuptools?source=compressed-mapping + size: 637506 + timestamp: 1770634745653 +- conda: https://conda.anaconda.org/conda-forge/linux-64/sigtool-codesign-0.1.3-ha2d1da1_0.conda + sha256: c0c3801c98c890b545263fd73bc1719203594c333364467ce5e8355d19a50fd3 + md5: 62a0d148859feaf8237c521a3f462920 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libsigtool 0.1.3 ha2d1da1_0 + - libstdcxx >=14 + - openssl >=3.5.4,<4.0a0 + license: MIT + license_family: MIT + purls: [] + size: 118547 + timestamp: 1767044865465 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-codesign-0.1.3-h98dc951_0.conda + sha256: f3d006e2441f110160a684744d90921bbedbffa247d7599d7e76b5cd048116dc + md5: ade77ad7513177297b1d75e351e136ce + depends: + - __osx >=11.0 + - libsigtool 0.1.3 h98dc951_0 + - openssl >=3.5.4,<4.0a0 + license: MIT + license_family: MIT + purls: [] + size: 114331 + timestamp: 1767045086274 +- conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-h4ee821c_9.conda + sha256: c47299fe37aebb0fcf674b3be588e67e4afb86225be4b0d452c7eb75c086b851 + md5: 13dc3adbc692664cd3beabd216434749 + depends: + - __glibc >=2.28 + - kernel-headers_linux-64 4.18.0 he073ed8_9 + - tzdata + license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later + license_family: GPL + purls: [] + size: 24008591 + timestamp: 1765578833462 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tapi-1600.0.11.8-hfd2156b_0.conda + sha256: 2f3d234120e8782cd51607660f5731455566304856e1f9663054b0170c8e51ea + md5: c503c511abb0dc309279055dd9262d11 + depends: + - libstdcxx >=14 + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: NCSA + purls: [] + size: 330655 + timestamp: 1762535093161 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1600.0.11.8-h997e182_0.conda + sha256: dcb678fa77f448fa981bf3783902afe09b8838436f3092e9ecaf6a718c87f642 + md5: 347261d575a245cb6111fb2cb5a79fc7 + depends: + - libcxx >=19.0.0.a0 + - __osx >=11.0 + - ncurses >=6.5,<7.0a0 + license: NCSA + purls: [] + size: 199699 + timestamp: 1762535277608 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda + sha256: cafeec44494f842ffeca27e9c8b0c27ed714f93ac77ddadc6aaf726b5554ebac + md5: cffd3bdd58090148f4cfcd831f4b26ab + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libzlib >=1.3.1,<2.0a0 + constrains: + - xorg-libx11 >=1.8.12,<2.0a0 + license: TCL + license_family: BSD + purls: [] + size: 3301196 + timestamp: 1769460227866 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda + sha256: 799cab4b6cde62f91f750149995d149bc9db525ec12595e8a1d91b9317f038b3 + md5: a9d86bc62f39b94c4661716624eb21b0 + depends: + - __osx >=11.0 + - libzlib >=1.3.1,<2.0a0 + license: TCL + license_family: BSD + purls: [] + size: 3127137 + timestamp: 1769460817696 +- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + sha256: 62940c563de45790ba0f076b9f2085a842a65662268b02dd136a8e9b1eaf47a8 + md5: 72e780e9aa2d0a3295f59b1874e3768b + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/tomli?source=compressed-mapping + size: 21453 + timestamp: 1768146676791 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda + sha256: 7c2df5721c742c2a47b2c8f960e718c930031663ac1174da67c1ed5999f7938c + md5: edd329d7d3a4ab45dcf905899a7a6115 + depends: + - typing_extensions ==4.15.0 pyhcf101f3_0 + license: PSF-2.0 + license_family: PSF + purls: [] + size: 91383 + timestamp: 1756220668932 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda + sha256: 70db27de58a97aeb7ba7448366c9853f91b21137492e0b4430251a1870aa8ff4 + md5: a0a4a3035667fc34f29bfbd5c190baa6 + depends: + - python >=3.10 + - typing_extensions >=4.12.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/typing-inspection?source=hash-mapping + size: 18923 + timestamp: 1764158430324 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda + sha256: 032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731 + md5: 0caa1af407ecff61170c9437a808404d + depends: + - python >=3.10 + - python + license: PSF-2.0 + license_family: PSF + purls: + - pkg:pypi/typing-extensions?source=hash-mapping + size: 51692 + timestamp: 1756220668932 +- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + sha256: 1d30098909076af33a35017eed6f2953af1c769e273a0626a04722ac4acaba3c + md5: ad659d0a2b3e47e38d829aa8cad2d610 + license: LicenseRef-Public-Domain + purls: [] + size: 119135 + timestamp: 1767016325805 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ucx-1.20.0-hf72d326_1.conda + sha256: 350c5179e1bda17434acf99eb8247f5b6d9b7f991dfd19c582abf538ed41733a + md5: d878a39ba2fc02440785a6a5c4657b09 + depends: + - __glibc >=2.28,<3.0.a0 + - _openmp_mutex >=4.5 + - libgcc >=14 + - libstdcxx >=14 + - rdma-core >=61.0 + constrains: + - cuda-cudart + - cuda-version >=13,<14.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 7801740 + timestamp: 1769197798676 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.1.0-py314h9891dd4_0.conda + sha256: c84034056dc938c853e4f61e72e5bd37e2ec91927a661fb9762f678cbea52d43 + md5: 5d3c008e54c7f49592fca9c32896a76f + depends: + - __glibc >=2.17,<3.0.a0 + - cffi + - libgcc >=14 + - libstdcxx >=14 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + license: MIT + license_family: MIT + purls: + - pkg:pypi/ukkonen?source=hash-mapping + size: 15004 + timestamp: 1769438727085 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.1.0-py314h6cfcd04_0.conda + sha256: 033dbf9859fe58fb85350cf6395be6b1346792e1766d2d5acab538a6eb3659fb + md5: e229f444fbdb28d8c4f40e247154d993 + depends: + - __osx >=11.0 + - cffi + - libcxx >=19 + - python >=3.14,<3.15.0a0 + - python >=3.14,<3.15.0a0 *_cp314 + - python_abi 3.14.* *_cp314 + license: MIT + license_family: MIT + purls: + - pkg:pypi/ukkonen?source=hash-mapping + size: 14884 + timestamp: 1769439056290 +- conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.39.0-pyhcf101f3_0.conda + sha256: de93eed364f14f08f78ff41994dfe22ff018521c4702e432630d10c0eb0eff6b + md5: e73db224203e56b25e040446fa1584db + depends: + - python >=3.10 + - distlib >=0.3.7,<1 + - platformdirs >=3.9.1,<5 + - typing_extensions >=4.13.2 + - importlib-metadata >=6.6 + - filelock >=3.24.2,<4 + - python + license: MIT + purls: + - pkg:pypi/virtualenv?source=compressed-mapping + size: 4657721 + timestamp: 1771967166128 +- pypi: https://files.pythonhosted.org/packages/b1/02/5dbdecc50207c884a70e6f2f561d4c53fb353d755b12c049ad15cc905bc0/wat-0.7.0-py3-none-any.whl + name: wat + version: 0.7.0 + sha256: 4d7d1a3030111899d04c230372a631d61d7a290f255e21d3c27d1dc0e32a6cef + requires_python: '>=3.8' +- conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda + sha256: 6d9ea2f731e284e9316d95fa61869fe7bbba33df7929f82693c121022810f4ad + md5: a77f85f77be52ff59391544bfe73390a + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + license: MIT + license_family: MIT + purls: [] + size: 85189 + timestamp: 1753484064210 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda + sha256: b03433b13d89f5567e828ea9f1a7d5c5d697bf374c28a4168d71e9464f5dafac + md5: 78a0fe9e9c50d2c381e8ee47e3ea437d + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: [] + size: 83386 + timestamp: 1753484079473 +- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda + sha256: b4533f7d9efc976511a73ef7d4a2473406d7f4c750884be8e8620b0ce70f4dae + md5: 30cd29cb87d819caead4d55184c1d115 + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/zipp?source=hash-mapping + size: 24194 + timestamp: 1764460141901 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda + sha256: 68f0206ca6e98fea941e5717cec780ed2873ffabc0e1ed34428c061e2c6268c7 + md5: 4a13eeac0b5c8e5b8ab496e6c4ddd829 + depends: + - __glibc >=2.17,<3.0.a0 + - libzlib >=1.3.1,<2.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 601375 + timestamp: 1764777111296 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda + sha256: 9485ba49e8f47d2b597dd399e88f4802e100851b27c21d7525625b0b4025a5d9 + md5: ab136e4c34e97f34fb621d2592a393d8 + depends: + - __osx >=11.0 + - libzlib >=1.3.1,<2.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 433413 + timestamp: 1764777166076 diff --git a/ensemblesweep/pyproject.toml b/ensemblesweep/pyproject.toml new file mode 100644 index 0000000..4cc35fb --- /dev/null +++ b/ensemblesweep/pyproject.toml @@ -0,0 +1,41 @@ +[project] +authors = [{ name = "jlnav", email = "jnavarro@anl.gov" }] +description = "A libEnsemble-based parameter sweep tool" +dependencies = ["libensemble>=1.5.0,<2"] +name = "ensemblesweep" +requires-python = ">= 3.11" +version = "0.1.0" + +[build-system] +build-backend = "setuptools.build_meta" +requires = ["setuptools", "wheel", "pip>=24.3.1,<27", "setuptools>=75.1.0,<83"] + +[tool.setuptools.dynamic] +version = { attr = "ensemblesweep.version.__version__" } + +[tool.pixi.workspace] +channels = ["conda-forge"] +platforms = ["osx-arm64", "linux-64"] + +[tool.pixi.environments] +default = [] +dev = ["dev"] + +[tool.pixi.pypi-dependencies] +ensemblesweep = { path = ".", editable = true } + +[tool.pixi.tasks] + +[tool.pixi.dependencies] +libensemble = ">=1.5.0,<2" + +[tool.pixi.feature.dev.dependencies] +pre-commit = ">=4.5.1,<5" +ruff = ">=0.15.2,<0.16" +pip = ">=26.0.1,<27" +llvm-openmp = ">=22.1.0,<23" +clang_osx-arm64 = ">=22.1.0,<23" +mpich = ">=5.0.0,<6" + +[dependency-groups] +dev = ["wat>=0.7.0,<0.8"] diff --git a/ensemblesweep/setup.py b/ensemblesweep/setup.py new file mode 100644 index 0000000..6068493 --- /dev/null +++ b/ensemblesweep/setup.py @@ -0,0 +1,3 @@ +from setuptools import setup + +setup() diff --git a/ensemblesweep/src/ensemblesweep/__init__.py b/ensemblesweep/src/ensemblesweep/__init__.py new file mode 100644 index 0000000..bc0b7fb --- /dev/null +++ b/ensemblesweep/src/ensemblesweep/__init__.py @@ -0,0 +1,4 @@ +from .sweep import Sweep +from .data import Data + +__all__ = ["Sweep", "Data"] diff --git a/ensemblesweep/src/ensemblesweep/data.py b/ensemblesweep/src/ensemblesweep/data.py new file mode 100644 index 0000000..e2dbd5e --- /dev/null +++ b/ensemblesweep/src/ensemblesweep/data.py @@ -0,0 +1,60 @@ +import numpy as np +import itertools + +class Data: + def __init__(self, **kwargs): + """ + Initializes the Data class. + Takes arbitrary keyword arguments and computes the Cartesian product + of all parameters that are list-like or array-like. + """ + self._keys = [] + self._values = [] + self._shapes = {} + + parsed_args = {} + for k, v in kwargs.items(): + self._keys.append(k) + # Handle numpy arrays, lists, tuples + if isinstance(v, (list, tuple)) or (isinstance(v, np.ndarray) and v.ndim > 0): + parsed_args[k] = list(v) + else: + # Wrap scalars in a list so itertools.product works + parsed_args[k] = [v] + + # Compute cartesian product + product = list(itertools.product(*[parsed_args[k] for k in self._keys])) + + self.total = len(product) + self.combinations = product + + # Prepare the libEnsemble dtype specification for inputs + self.dtype_spec = [] + for k in self._keys: + sample_val = parsed_args[k][0] + if isinstance(sample_val, np.ndarray): + self.dtype_spec.append((k, sample_val.dtype, sample_val.shape)) + elif isinstance(sample_val, int): + self.dtype_spec.append((k, int)) + elif isinstance(sample_val, float): + self.dtype_spec.append((k, float)) + elif isinstance(sample_val, str): + self.dtype_spec.append((k, "U100")) # fallback string + else: + self.dtype_spec.append((k, object)) # Fallback + + def to_h0(self): + """ + Converts the computed parameter space to a libEnsemble H0 array. + """ + # Add basic libEnsemble fields + full_dtype = self.dtype_spec + [("sim_id", int), ("sim_started", bool), ("sim_ended", bool)] + H0 = np.zeros(self.total, dtype=full_dtype) + + for i, combo in enumerate(self.combinations): + for j, key in enumerate(self._keys): + H0[key][i] = combo[j] + H0["sim_id"][i] = i + H0["sim_started"][i] = False + + return H0 diff --git a/ensemblesweep/src/ensemblesweep/sim_funcs.py b/ensemblesweep/src/ensemblesweep/sim_funcs.py new file mode 100644 index 0000000..5da12ed --- /dev/null +++ b/ensemblesweep/src/ensemblesweep/sim_funcs.py @@ -0,0 +1,105 @@ +import time +import numpy as np +import os +from libensemble.message_numbers import WORKER_DONE, TASK_FAILED + +def generic_function_simf(H, persis_info, sim_specs, *args): + """ + sim_f for executing generic Python functions. + """ + start_time = time.time() + + # Get user function and expected parameters + func = sim_specs["user"]["objective_function"] + input_keys = sim_specs["user"]["input_keys"] + + # Extract arguments from H, passing only the first row's data + args = [H[k][0] for k in input_keys] + + calc_status = WORKER_DONE + result = np.nan + try: + # Evaluate function + result = func(*args) + except Exception as e: + print(f"Error evaluating objective_function: {e}") + calc_status = TASK_FAILED + + eval_time = time.time() - start_time + + # Format output based on the result type + output = np.zeros(1, dtype=sim_specs["out"]) + out_fields = [n for n in output.dtype.names if n != 'eval_time'] + + if isinstance(result, dict): + matched = False + for k, v in result.items(): + if k in output.dtype.names: + output[k] = v + matched = True + if not matched: + print(f"Warning: Objective function returned dictionary with keys {list(result.keys())}, but none match the expected output fields {out_fields}.") + elif isinstance(result, (list, tuple)): + # If it's a single-element list/tuple, treat it as a scalar or map to first field + if len(result) == 1: + if out_fields: + output[out_fields[0]] = result[0] + else: + # Map elements to output fields in order + for i, v in enumerate(result): + if i < len(out_fields): + output[out_fields[i]] = v + else: + # Scalar result + if out_fields: + output[out_fields[0]] = result + + output["eval_time"] = eval_time + return output, persis_info, calc_status + +def generic_executable_simf(H, persis_info, sim_specs, libE_info): + """ + sim_f for executing binaries using MPIExecutor. + """ + start_time = time.time() + calc_status = WORKER_DONE + + output_file = sim_specs["user"]["objective_output"] + input_keys = sim_specs["user"]["input_keys"] + + # Build arguments string + args_list = [str(H[k][0]) for k in input_keys] + args = " ".join(args_list) + + exctr = libE_info["executor"] + + # Execute without redirecting stdout unless we don't have an output file + if output_file: + task = exctr.submit(app_name="executable", app_args=args) + else: + output_file = "sim.out" # pipe exe's stdout to file and assume the last line is the output + task = exctr.submit(app_name="executable", app_args=args, stdout=output_file) + + task.wait() + + final_data = np.nan + if task.state == "FINISHED": + filepath = os.path.join(task.workdir, output_file) + try: + # We assume output can be processed by np.loadtxt + data = np.loadtxt(filepath) + final_data = data[-1] if data.ndim > 0 else data.item() + except Exception as e: + print(f"Error reading output file {filepath}: {e}") + calc_status = TASK_FAILED + else: + calc_status = TASK_FAILED + + eval_time = time.time() - start_time + + output = np.zeros(1, dtype=sim_specs["out"]) + if "output" in output.dtype.names: + output["output"] = final_data + output["eval_time"] = eval_time + + return output, persis_info, calc_status diff --git a/ensemblesweep/src/ensemblesweep/sweep.py b/ensemblesweep/src/ensemblesweep/sweep.py new file mode 100644 index 0000000..5014cd5 --- /dev/null +++ b/ensemblesweep/src/ensemblesweep/sweep.py @@ -0,0 +1,166 @@ +import math +import os +import time +import numpy as np + +from libensemble import Ensemble +from libensemble import logger +from libensemble.comms.logs import LogConfig +from libensemble.specs import SimSpecs, AllocSpecs, ExitCriteria +from libensemble.alloc_funcs.give_pregenerated_work import give_pregenerated_sim_work as alloc_f + +from .sim_funcs import generic_function_simf, generic_executable_simf + +logs = LogConfig.config +logs.stat_filename = "stats.txt" + +class ResultWrapper: + def __init__(self, sweep): + self.sweep = sweep + + def __len__(self): + return int(np.sum(self.sweep._H_total["sim_ended"])) + + def __getitem__(self, i): + results = self.sweep._H_total[self.sweep._H_total["sim_ended"]] + if len(results) == 0: + return [] + + sliced = results[i] + + # format out fields, exclude internal libEnsemble properties + ignore_fields = ["sim_id", "sim_started", "sim_started_time", "sim_ended", "sim_ended_time", + "sim_worker", "sim_time", "given", "given_time", "cancel_requested", "kill_sent", + "gen_informed", "gen_informed_time", "gen_started_time", "gen_ended_time", "gen_worker"] + + if isinstance(sliced, np.void): + out = {} + for name in sliced.dtype.names: + if name not in ignore_fields: + out[name] = sliced[name] + return out + else: + out_list = [] + for item in sliced: + out = {} + for name in item.dtype.names: + if name not in ignore_fields: + out[name] = item[name] + out_list.append(out) + return out_list + + def to_numpy(self): + return self.sweep._H_total[self.sweep._H_total["sim_ended"]] + + def __str__(self): + # We can format it nicely + results = self.sweep._H_total[self.sweep._H_total["sim_ended"]] + if len(results) == 0: + return "[]" + return str(self[:]) + + def __repr__(self): + return repr(self[:]) + +class Sweep: + def __init__(self, objective_function=None, input_data=None, objective_executable=None, objective_output=None): + self.objective_function = objective_function + self.objective_executable = objective_executable + self.objective_output = objective_output + self.input_data = input_data + + if self.objective_function and self.objective_executable: + raise ValueError("Provide either objective_function or objective_executable, not both.") + + self._H_total = input_data.to_h0() + self.evaluated = 0 + self.results = ResultWrapper(self) + + def run(self, n=None): + total_points = len(self._H_total) + if self.evaluated >= total_points: + print("All points already evaluated.") + return + + to_evaluate = total_points - self.evaluated + if n is not None: + to_evaluate = min(n, to_evaluate) + + target_sim_max = self.evaluated + to_evaluate + + cores = max(1, os.cpu_count() - 1) + libE_specs = { + "comms": "local", + "nworkers": cores, + "sim_dirs_make": True, + "ensemble_dir_path": f"sweep_{int(time.time())}", + "reuse_output_dir": True, + "use_workflow_dir": True, + "save_H_and_persis_on_abort": False, + } + ensemble = Ensemble(parse_args=False, libE_specs=libE_specs) + ensemble.H0 = self._H_total + + if self.objective_function: + out_fields = self.objective_output if self.objective_output else "output" + if isinstance(out_fields, str): + out_fields = [out_fields] + + out_spec = [(f, float) for f in out_fields] + [("eval_time", float)] + + sim_specs = SimSpecs( + sim_f=generic_function_simf, + inputs=self.input_data._keys, + out=out_spec, + user={ + "objective_function": self.objective_function, + "input_keys": self.input_data._keys + } + ) + else: + out_spec = [("output", float), ("eval_time", float)] + sim_specs = SimSpecs( + sim_f=generic_executable_simf, + inputs=self.input_data._keys, + out=out_spec, + user={ + "objective_executable": self.objective_executable, + "objective_output": self.objective_output, + "input_keys": self.input_data._keys + } + ) + + ensemble.sim_specs = sim_specs + ensemble.alloc_specs = AllocSpecs(alloc_f=alloc_f) + ensemble.exit_criteria = ExitCriteria(sim_max=target_sim_max) + + if self.objective_executable: + from libensemble.executors.mpi_executor import MPIExecutor + exctr = MPIExecutor() + # Register using absolute path effectively + exctr.register_app(full_path=self.objective_executable, app_name="executable") + + ensemble.run() + + if ensemble.is_manager: + self._H_total = ensemble.H + self.evaluated = np.sum(self._H_total["sim_ended"]) + + def estimated_time(self, n=None): + if self.evaluated == 0: + print("Cannot estimate time without running at least one evaluation.") + return -1.0 + + results = self._H_total[self._H_total["sim_ended"]] + if "eval_time" not in results.dtype.names: + return -1.0 + + avg_time = np.mean(results["eval_time"]) + + if n is None: + n = len(self._H_total) - self.evaluated + + cores = max(1, os.cpu_count() - 1) + + batches = math.ceil(n / cores) + return batches * avg_time \ No newline at end of file diff --git a/ensemblesweep/src/ensemblesweep/version.py b/ensemblesweep/src/ensemblesweep/version.py new file mode 100644 index 0000000..b3c06d4 --- /dev/null +++ b/ensemblesweep/src/ensemblesweep/version.py @@ -0,0 +1 @@ +__version__ = "0.0.1" \ No newline at end of file From f8695b761b49461dcac2aedaf2d8cc6f0613fd24 Mon Sep 17 00:00:00 2001 From: jlnav Date: Fri, 27 Feb 2026 14:13:15 -0600 Subject: [PATCH 02/18] tiny adjusts --- ensemblesweep/README.md | 6 ++++++ pixi.lock | 2 +- pyproject.toml | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ensemblesweep/README.md b/ensemblesweep/README.md index c3dc676..0b35c71 100644 --- a/ensemblesweep/README.md +++ b/ensemblesweep/README.md @@ -15,6 +15,12 @@ In the project directory: pip install . ``` +Or to use the provided [Pixi](https://pixi.prefix.dev/latest/) environment: + +```bash +pixi shell +``` + Usage ===== diff --git a/pixi.lock b/pixi.lock index 278211e..01c0178 100644 --- a/pixi.lock +++ b/pixi.lock @@ -2316,7 +2316,7 @@ packages: - pypi: ./ name: libe-community-examples version: 0.1.0 - sha256: 32bda8c2e8f5a1e2ee6c63952d393a4ad4da6ca0e302676c20320809de8af17f + sha256: c54926956e7d408646cae96538c7f23ae34db86b0b67834c2369682f1b848316 requires_dist: - ray>=2.44.1,<3 - dh-scikit-optimize @ git+https://github.com/ytopt-team/scikit-optimize.git diff --git a/pyproject.toml b/pyproject.toml index a099b45..5aa9d18 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,7 @@ requires = ["setuptools", "wheel", "pip"] [tool.setuptools] py-modules = [] -[tool.pixi.project] +[tool.pixi.workspace] channels = ["conda-forge"] platforms = ["osx-arm64", "linux-64"] From 1ebe16ef935b29ba010e2b8ea69761f2af5c4f91 Mon Sep 17 00:00:00 2001 From: jlnav Date: Wed, 4 Mar 2026 10:33:22 -0600 Subject: [PATCH 03/18] make initial parameter names more generic. specify parameter names being arbitrary. use "parallel" instead of "concurrent" --- ensemblesweep/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ensemblesweep/README.md b/ensemblesweep/README.md index 0b35c71..a7a3c1a 100644 --- a/ensemblesweep/README.md +++ b/ensemblesweep/README.md @@ -27,7 +27,7 @@ Usage Simple usage ------------ -1. Specify any number of iterable inputs to a ``Data`` object. +1. Specify any number of iterable inputs with arbitrary parameter names to a ``Data`` object. 2. Specify an objective function to the ``Sweep`` object. Provide the input data. @@ -38,13 +38,13 @@ Simple usage from ensemblesweep import Sweep, Data # Define the function to be evaluated -def my_function(core, edge, x): - return float(edge) * np.sum(x) + core +def my_function(variable_1, variable_2, variable_3): + return float(variable_2) * np.sum(variable_3) + variable_1 data = Data( - core=random.sample(["rocm", "cuda", "cpu"]*6, 6), - edge=random.sample(range(10), 4), - x = np.random.uniform(lb, ub, (3, 3)) + variable_1=random.sample(["param1", "param2", "param3"]*6, 6), + variable_2=random.sample(range(10), 4), + variable_3 = np.random.uniform(lb, ub, (3, 3)) ) # Create a sweep object @@ -105,7 +105,7 @@ Additional Features # estimated time is in seconds, for the entire sweep if sweep.estimated_time() > 10: print("Estimated time is too long, only doing a little bit") - sweep.run(10) # run 10 concurrently. Max concurrency is number of cores + sweep.run(10) # run 10 in parallel. Max parallelism is number of cores else: print("Estimated time is acceptable, continuing") sweep.run() From 80f486b65483182c3c2a44d7975b6dd896cdae8d Mon Sep 17 00:00:00 2001 From: jlnav Date: Wed, 11 Mar 2026 11:26:21 -0500 Subject: [PATCH 04/18] add lockfile to git-lfs --- ensemblesweep/.gitattributes | 1 + ensemblesweep/pixi.lock | 2502 +--------------------------------- ensemblesweep/pyproject.toml | 1 + 3 files changed, 5 insertions(+), 2499 deletions(-) diff --git a/ensemblesweep/.gitattributes b/ensemblesweep/.gitattributes index 997504b..40adb61 100644 --- a/ensemblesweep/.gitattributes +++ b/ensemblesweep/.gitattributes @@ -1,2 +1,3 @@ # SCM syntax highlighting & preventing 3-way merges pixi.lock merge=binary linguist-language=YAML linguist-generated=true -diff +*.lock filter=lfs diff=lfs merge=lfs -text diff --git a/ensemblesweep/pixi.lock b/ensemblesweep/pixi.lock index ef6b75e..4415b5d 100644 --- a/ensemblesweep/pixi.lock +++ b/ensemblesweep/pixi.lock @@ -1,2499 +1,3 @@ -version: 6 -environments: - default: - channels: - - url: https://conda.anaconda.org/conda-forge/ - indexes: - - https://pypi.org/simple - options: - pypi-prerelease-mode: if-necessary-or-explicit - packages: - linux-64: - - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libensemble-1.5.0-nompi_py314h8bb396f_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.4-hecca717_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nlopt-2.10.0-py314h411e966_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.2-py314h2b28147_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py314h0f05182_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.41.5-py314h2e6c369_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py314h67df5f8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.1-py314hf07bd8e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-82.0.0-pyh332efcf_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda - - pypi: ./ - osx-arm64: - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-7_kmp_llvm.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-5_h51639a9_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-5_hb0561ab_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.0-h55c6f16_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libensemble-1.5.0-nompi_py314h809f670_101.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.4-hf6b4638_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_18.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_18.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_18.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h84a0fba_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.2-h1ae2325_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-22.1.0-hc7d1edf_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlopt-2.10.0-py314hbfffb6e_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.2-py314hae46ccb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.2-py314ha14b1ff_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py314haad56a0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.3-h4c637c5_101_cp314.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py314h6e9b3f0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.1-py314hfc1f868_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-82.0.0-pyh332efcf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda - - pypi: ./ - dev: - channels: - - url: https://conda.anaconda.org/conda-forge/ - indexes: - - https://pypi.org/simple - options: - pypi-prerelease-mode: if-necessary-or-explicit - packages: - linux-64: - - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.2-h39aace5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.45.1-default_hfdba357_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cctools_impl_osx-arm64-1030.6.3-llvm22_1_h2631141_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cctools_osx-arm64-1030.6.3-llvm22_1_hd174d4c_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py314h4a8dc5f_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-22-22.1.0-default_h99862b1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/clang_impl_linux-64-22.1.0-default_h666bb00_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/clang_impl_osx-arm64-22.1.0-h2e4477e_31.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/clang_osx-arm64-22.1.0-h4fa46f7_31.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/compiler-rt-22.1.0-ha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/compiler-rt22-22.1.0-hb700be7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt22_linux-64-22.1.0-hffcefe0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt22_osx-arm64-22.1.0-h7e67a1e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_linux-64-22.1.0-ha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-arm64-22.1.0-hce30654_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.24.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_9.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld64_osx-arm64-956.6-llvm22_1_h1f1a275_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcap-2.77-h3ff7636_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp22.1-22.1.0-default_h99862b1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcompiler-rt-22.1.0-hb700be7_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libdispatch-6.2-ha1474c7_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libensemble-1.5.0-nompi_py314h8bb396f_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.4-hecca717_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libfabric-2.4.0-ha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libfabric1-2.4.0-h8f87c3e_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.2.0-hcc6f6b0_118.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.13.0-default_he001693_1000.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm22-22.1.0-hf7376ad_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnl-3.11.0-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsigtool-0.1.3-ha2d1da1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-257.10-hd0affe5_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libudev1-257.10-hd0affe5_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-hca6bf5a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-he237659_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-22.1.0-h4922eb0_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-22-22.1.0-h3b15d91_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-22.1.0-hb700be7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mpi-1.0.1-mpich.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mpich-5.0.0-h6f9170e_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nlopt-2.10.0-py314h411e966_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.2-py314h2b28147_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.0.1-pyh145f28c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.2-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py314h0f05182_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.41.5-py314h2e6c369_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py314h67df5f8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/rdma-core-61.0-h192683f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.15.2-h40fa522_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.1-py314hf07bd8e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sdkroot_env_osx-arm64-26.0-ha3f98da_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-82.0.0-pyh332efcf_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sigtool-codesign-0.1.3-ha2d1da1_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-h4ee821c_9.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tapi-1600.0.11.8-hfd2156b_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ucx-1.20.0-hf72d326_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.1.0-py314h9891dd4_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.39.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda - - pypi: https://files.pythonhosted.org/packages/b1/02/5dbdecc50207c884a70e6f2f561d4c53fb353d755b12c049ad15cc905bc0/wat-0.7.0-py3-none-any.whl - - pypi: ./ - osx-arm64: - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-7_kmp_llvm.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_impl_osx-arm64-1030.6.3-llvm22_1_hb5e89dc_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_osx-arm64-1030.6.3-llvm22_1_hbe26303_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py314h44086f9_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-22-22.1.0-default_hb52604d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_impl_osx-arm64-22.1.0-default_h17d1ed9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_osx-arm64-22.1.0-hec3a5e5_31.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt-22.1.0-hce30654_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt22-22.1.0-hd34ed20_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt22_osx-arm64-22.1.0-h7e67a1e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-arm64-22.1.0-hce30654_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.24.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64_osx-arm64-956.6-llvm22_1_h692d5aa_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-5_h51639a9_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-5_hb0561ab_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp22.1-22.1.0-default_hf3020a7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcompiler-rt-22.1.0-hd34ed20_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.0-h55c6f16_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libensemble-1.5.0-nompi_py314h809f670_101.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.4-hf6b4638_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libfabric-2.4.0-hce30654_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libfabric1-2.4.0-h84a0fba_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_18.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_18.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_18.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.13.0-default_ha97f43a_1000.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm22-22.1.0-h89af1be_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h84a0fba_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsigtool-0.1.3-h98dc951_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.2-h1ae2325_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h5ef1a60_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.1-h8d039ee_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-22.1.0-hc7d1edf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-22-22.1.0-hb545844_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-22.1.0-hd34ed20_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mpi-1.0.1-mpich.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpich-5.0.0-ha380261_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlopt-2.10.0-py314hbfffb6e_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.2-py314hae46ccb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.0.1-pyh145f28c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.2-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.2-py314ha14b1ff_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py314haad56a0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.3-h4c637c5_101_cp314.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py314h6e9b3f0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.15.2-h279115b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.1-py314hfc1f868_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sdkroot_env_osx-arm64-26.0-ha3f98da_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-82.0.0-pyh332efcf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-codesign-0.1.3-h98dc951_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1600.0.11.8-h997e182_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.1.0-py314h6cfcd04_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.39.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda - - pypi: https://files.pythonhosted.org/packages/b1/02/5dbdecc50207c884a70e6f2f561d4c53fb353d755b12c049ad15cc905bc0/wat-0.7.0-py3-none-any.whl - - pypi: ./ -packages: -- conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - build_number: 20 - sha256: 1dd3fffd892081df9726d7eb7e0dea6198962ba775bd88842135a4ddb4deb3c9 - md5: a9f577daf3de00bca7c3c76c0ecbd1de - depends: - - __glibc >=2.17,<3.0.a0 - - libgomp >=7.5.0 - constrains: - - openmp_impl <0.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 28948 - timestamp: 1770939786096 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-7_kmp_llvm.conda - build_number: 7 - sha256: 7acaa2e0782cad032bdaf756b536874346ac1375745fb250e9bdd6a48a7ab3cd - md5: a44032f282e7d2acdeb1c240308052dd - depends: - - llvm-openmp >=9.0.1 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 8325 - timestamp: 1764092507920 -- conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48 - md5: 2934f256a8acfe48f6ebb4fce6cde29c - depends: - - python >=3.9 - - typing-extensions >=4.0.0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/annotated-types?source=hash-mapping - size: 18074 - timestamp: 1733247158254 -- conda: https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.2-h39aace5_0.conda - sha256: a9c114cbfeda42a226e2db1809a538929d2f118ef855372293bd188f71711c48 - md5: 791365c5f65975051e4e017b5da3abf5 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: GPL-2.0-or-later - license_family: GPL - purls: [] - size: 68072 - timestamp: 1756738968573 -- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.45.1-default_hfdba357_101.conda - sha256: 74341b26a2b9475dc14ba3cf12432fcd10a23af285101883e720216d81d44676 - md5: 83aa53cb3f5fc849851a84d777a60551 - depends: - - ld_impl_linux-64 2.45.1 default_hbd61a6d_101 - - sysroot_linux-64 - - zstd >=1.5.7,<1.6.0a0 - license: GPL-3.0-only - license_family: GPL - purls: [] - size: 3744895 - timestamp: 1770267152681 -- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda - sha256: 0b75d45f0bba3e95dc693336fa51f40ea28c980131fec438afb7ce6118ed05f6 - md5: d2ffd7602c02f2b316fd921d39876885 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: bzip2-1.0.6 - license_family: BSD - purls: [] - size: 260182 - timestamp: 1771350215188 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda - sha256: 540fe54be35fac0c17feefbdc3e29725cce05d7367ffedfaaa1bdda234b019df - md5: 620b85a3f45526a8bc4d23fd78fc22f0 - depends: - - __osx >=11.0 - license: bzip2-1.0.6 - license_family: BSD - purls: [] - size: 124834 - timestamp: 1771350416561 -- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - sha256: 67cc7101b36421c5913a1687ef1b99f85b5d6868da3abbf6ec1a4181e79782fc - md5: 4492fd26db29495f0ba23f146cd5638d - depends: - - __unix - license: ISC - purls: [] - size: 147413 - timestamp: 1772006283803 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cctools_impl_osx-arm64-1030.6.3-llvm22_1_h2631141_4.conda - sha256: 464d232860c059186ebd62d34c4de78e5d177fe3e78d1e50de0435dadc2aa4a0 - md5: 1831c358050ae3b6d918390c6a5e5574 - depends: - - __glibc >=2.17,<3.0.a0 - - ld64_osx-arm64 >=956.6,<956.7.0a0 - - libgcc >=14 - - libllvm22 >=22.1.0,<22.2.0a0 - - libstdcxx >=14 - - libzlib >=1.3.1,<2.0a0 - - llvm-tools 22.1.* - - sigtool-codesign - constrains: - - ld64 956.6.* - - clang 22.1.* - - cctools 1030.6.3.* - license: APSL-2.0 - license_family: Other - purls: [] - size: 2269061 - timestamp: 1772018370585 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_impl_osx-arm64-1030.6.3-llvm22_1_hb5e89dc_4.conda - sha256: 97075a1afeac8a7a4dca258ac10efb70638e3c734cbf5a6328ca1e0718e09c41 - md5: 97768bb89683757d7e535f9b7dcba39d - depends: - - __osx >=11.0 - - ld64_osx-arm64 >=956.6,<956.7.0a0 - - libcxx - - libllvm22 >=22.1.0,<22.2.0a0 - - libzlib >=1.3.1,<2.0a0 - - llvm-tools 22.1.* - - sigtool-codesign - constrains: - - clang 22.1.* - - ld64 956.6.* - - cctools 1030.6.3.* - license: APSL-2.0 - license_family: Other - purls: [] - size: 749166 - timestamp: 1772019681419 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cctools_osx-arm64-1030.6.3-llvm22_1_hd174d4c_4.conda - sha256: bfc81e33a60ce657415d17d5607c459d0e2d05a5550ed41add8bb53a7bcb5afe - md5: f4ca1ce906a97042366d220da5be75b4 - depends: - - cctools_impl_osx-arm64 1030.6.3 llvm22_1_h2631141_4 - - ld64_osx-arm64 956.6 llvm22_1_h1f1a275_4 - constrains: - - cctools 1030.6.3.* - license: APSL-2.0 - license_family: Other - purls: [] - size: 23383 - timestamp: 1772018377666 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_osx-arm64-1030.6.3-llvm22_1_hbe26303_4.conda - sha256: c90c927dd77afb7d8115a3777b567d9ab84169ab797436d79789d75d0bd1a399 - md5: a08c9f61e81b5d4a0a653495545ec2b8 - depends: - - cctools_impl_osx-arm64 1030.6.3 llvm22_1_hb5e89dc_4 - - ld64_osx-arm64 956.6 llvm22_1_h692d5aa_4 - constrains: - - cctools 1030.6.3.* - license: APSL-2.0 - license_family: Other - purls: [] - size: 23468 - timestamp: 1772019757885 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py314h4a8dc5f_1.conda - sha256: c6339858a0aaf5d939e00d345c98b99e4558f285942b27232ac098ad17ac7f8e - md5: cf45f4278afd6f4e6d03eda0f435d527 - depends: - - __glibc >=2.17,<3.0.a0 - - libffi >=3.5.2,<3.6.0a0 - - libgcc >=14 - - pycparser - - python >=3.14,<3.15.0a0 - - python_abi 3.14.* *_cp314 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cffi?source=hash-mapping - size: 300271 - timestamp: 1761203085220 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py314h44086f9_1.conda - sha256: 5b5ee5de01eb4e4fd2576add5ec9edfc654fbaf9293e7b7ad2f893a67780aa98 - md5: 10dd19e4c797b8f8bdb1ec1fbb6821d7 - depends: - - __osx >=11.0 - - libffi >=3.5.2,<3.6.0a0 - - pycparser - - python >=3.14,<3.15.0a0 - - python >=3.14,<3.15.0a0 *_cp314 - - python_abi 3.14.* *_cp314 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cffi?source=hash-mapping - size: 292983 - timestamp: 1761203354051 -- conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - sha256: aa589352e61bb221351a79e5946d56916e3c595783994884accdb3b97fe9d449 - md5: 381bd45fb7aa032691f3063aff47e3a1 - depends: - - python >=3.10 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cfgv?source=hash-mapping - size: 13589 - timestamp: 1763607964133 -- conda: https://conda.anaconda.org/conda-forge/linux-64/clang-22-22.1.0-default_h99862b1_0.conda - sha256: a24a4eb8522693fbfc6c6b9ab1914314437ca0858b8ac6909275b47be3e93e39 - md5: 1f2b771fc99f1c8115301a9d232dfd94 - depends: - - __glibc >=2.17,<3.0.a0 - - compiler-rt22 22.1.0.* - - libclang-cpp22.1 22.1.0 default_h99862b1_0 - - libgcc >=14 - - libllvm22 >=22.1.0,<22.2.0a0 - - libstdcxx >=14 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 835553 - timestamp: 1772101189757 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-22-22.1.0-default_hb52604d_0.conda - sha256: 1ddb3174cf5ef28d8c572baf94d678304b96a9cb402e174198baa8cd73b144fe - md5: b66137f75711d76e55e96800a34f6c94 - depends: - - __osx >=11.0 - - compiler-rt22 22.1.0.* - - libclang-cpp22.1 22.1.0 default_hf3020a7_0 - - libcxx >=22.1.0 - - libllvm22 >=22.1.0,<22.2.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 819994 - timestamp: 1772097931030 -- conda: https://conda.anaconda.org/conda-forge/linux-64/clang_impl_linux-64-22.1.0-default_h666bb00_0.conda - sha256: e8969275248f985f6a465d2b74441a12660397343cd2f3af91b6d00ea54dd028 - md5: c78f3e4c82f68b3eab04a727f33eae96 - depends: - - binutils_impl_linux-64 - - clang-22 22.1.0 default_h99862b1_0 - - compiler-rt 22.1.0.* - - compiler-rt_linux-64 - - libgcc-devel_linux-64 - - sysroot_linux-64 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 27612 - timestamp: 1772101271596 -- conda: https://conda.anaconda.org/conda-forge/linux-64/clang_impl_osx-arm64-22.1.0-h2e4477e_31.conda - sha256: f421df0085db4d0c8c0b4cba79d5264d2576c213de79eccb96f2552d4f997159 - md5: 71277ff8819c4f0873c719355fe8a06e - depends: - - cctools_impl_osx-arm64 - - clang-22 - - compiler-rt 22.1.0.* - - compiler-rt_osx-arm64 22.1.0.* - - ld64_osx-arm64 * llvm22_1_* - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 18065 - timestamp: 1772108335044 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_impl_osx-arm64-22.1.0-default_h17d1ed9_0.conda - sha256: 393632a170e60e5a977cb832e1adbf283e98ef008fe7210f6604c98dedd67a4b - md5: b574304dee3b4b6411866159c2a77a86 - depends: - - cctools_impl_osx-arm64 - - clang-22 22.1.0 default_hb52604d_0 - - compiler-rt 22.1.0.* - - compiler-rt_osx-arm64 - - ld64_osx-arm64 * llvm22_1_* - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 27718 - timestamp: 1772098160125 -- conda: https://conda.anaconda.org/conda-forge/linux-64/clang_osx-arm64-22.1.0-h4fa46f7_31.conda - sha256: 4c3a72a693fee95a88e0935ff7cfb894ca1797ac34484e0a94eab4f5af8003b6 - md5: 4fb7d13ec0fa75162e76f427d12741a2 - depends: - - cctools_osx-arm64 - - clang_impl_linux-64 22.1.0.* - - clang_impl_osx-arm64 22.1.0.* - - sdkroot_env_osx-arm64 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 20840 - timestamp: 1772108337351 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_osx-arm64-22.1.0-hec3a5e5_31.conda - sha256: 9a1deefa50cc320c65ba659fa481c56e4124a55c636e288b258b021c6cb42be6 - md5: 0fa64073626e71b596f6f346595a8060 - depends: - - cctools_osx-arm64 - - clang_impl_osx-arm64 22.1.0.* - - sdkroot_env_osx-arm64 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 20937 - timestamp: 1772108825552 -- conda: https://conda.anaconda.org/conda-forge/linux-64/compiler-rt-22.1.0-ha770c72_0.conda - sha256: 6c6cd8ec8b99e9e4bbe121b77e0f356a2f8845add6d0cd4d6f71f6201fa654c2 - md5: 98cc540405de03e37417cc94f4191301 - depends: - - compiler-rt22 22.1.0 hb700be7_0 - - libcompiler-rt 22.1.0 hb700be7_0 - constrains: - - clang 22.1.0 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 16378 - timestamp: 1772021047024 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt-22.1.0-hce30654_0.conda - sha256: 118f1e097963595a59c8eb37de91630c8c054506f622d14868eba03411a8cd48 - md5: 47de28daf7e77015627f8246fc51b93b - depends: - - compiler-rt22 22.1.0 hd34ed20_0 - - libcompiler-rt 22.1.0 hd34ed20_0 - constrains: - - clang 22.1.0 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 16406 - timestamp: 1772019647121 -- conda: https://conda.anaconda.org/conda-forge/linux-64/compiler-rt22-22.1.0-hb700be7_0.conda - sha256: a23f7a8bd6722b41abea88ebd0cea674b0daf8dfee70ece8d2cc798556144675 - md5: 6930338793ffed4140d0903011f6937e - depends: - - __glibc >=2.17,<3.0.a0 - - compiler-rt22_linux-64 22.1.0.* - - libgcc >=14 - - libstdcxx >=14 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 114932 - timestamp: 1772021045728 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt22-22.1.0-hd34ed20_0.conda - sha256: 17308db182a4658e3d8710c174b5d017d8672dae2f79c606f85b6f1bd2f5fad7 - md5: 68393fcc06d1b85d290da5baa0dc19c0 - depends: - - __osx >=11.0 - - compiler-rt22_osx-arm64 22.1.0.* - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 99273 - timestamp: 1772019641057 -- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt22_linux-64-22.1.0-hffcefe0_0.conda - sha256: a37472aa2288bea0c588ae47aca6291238558303fdc2e814b58b8de64937263b - md5: 1254d960f9dd3d269c093ee6db94a454 - constrains: - - compiler-rt >=9.0.1 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 48094890 - timestamp: 1772020917994 -- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt22_osx-arm64-22.1.0-h7e67a1e_0.conda - sha256: dba44345ee2ddcd08582c7cc829304171e43e4dc0b89b92ee3cd6ecebc9cb1c4 - md5: 967cc614311d9b563ee948cc014ed27a - constrains: - - compiler-rt >=9.0.1 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 10835385 - timestamp: 1772019517770 -- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_linux-64-22.1.0-ha770c72_0.conda - sha256: 081a126085b6656b8f5e0ffe0636eb07287d81376bdb8d49f5e0e455dce8bce9 - md5: 00fd62b3f1c0019f6aa9d6913f0917f9 - depends: - - compiler-rt22_linux-64 22.1.0 hffcefe0_0 - constrains: - - clang 22.1.0 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 16403 - timestamp: 1772021046573 -- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-arm64-22.1.0-hce30654_0.conda - sha256: f5045a00ad82e0150eeba2c3e9bdcafca7b759a6656cfc5b8111bf0c3fca65e3 - md5: 00a38308b4aab3f97ee95ede2146ba5c - depends: - - compiler-rt22_osx-arm64 22.1.0 h7e67a1e_0 - constrains: - - clang 22.1.0 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 16573 - timestamp: 1772019644740 -- conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - sha256: 6d977f0b2fc24fee21a9554389ab83070db341af6d6f09285360b2e09ef8b26e - md5: 003b8ba0a94e2f1e117d0bd46aebc901 - depends: - - python >=3.9 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/distlib?source=hash-mapping - size: 275642 - timestamp: 1752823081585 -- pypi: ./ - name: ensemblesweep - version: 0.1.0 - sha256: 6d734bcc15cb11795de058348caf2f7089d834ddc5ce38264c3829fc031826b1 - requires_dist: - - libensemble>=1.5.0,<2 - requires_python: '>=3.11' -- conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.24.3-pyhd8ed1ab_0.conda - sha256: 6d576ed3bd0e7c57b1144f0b2014de9ea3fab9786316bc3e748105d44e0140a0 - md5: 9dbb20eec24beb026291c20a35ce1ff9 - depends: - - python >=3.10 - license: Unlicense - purls: - - pkg:pypi/filelock?source=compressed-mapping - size: 24808 - timestamp: 1771468713029 -- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda - sha256: 142a722072fa96cf16ff98eaaf641f54ab84744af81754c292cb81e0881c0329 - md5: 186a18e3ba246eccfc7cff00cd19a870 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - license: MIT - license_family: MIT - purls: [] - size: 12728445 - timestamp: 1767969922681 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda - sha256: d4cefbca587429d1192509edc52c88de52bc96c2447771ddc1f8bee928aed5ef - md5: 1e93aca311da0210e660d2247812fa02 - depends: - - __osx >=11.0 - license: MIT - license_family: MIT - purls: [] - size: 12358010 - timestamp: 1767970350308 -- conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - sha256: 6a88cdde151469131df1948839ac2315ada99cf8d38aaacc9a7a5984e9cd8c19 - md5: 8bc5851c415865334882157127e75799 - depends: - - python >=3.10 - - ukkonen - license: MIT - license_family: MIT - purls: - - pkg:pypi/identify?source=compressed-mapping - size: 79302 - timestamp: 1768295306539 -- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda - sha256: c18ab120a0613ada4391b15981d86ff777b5690ca461ea7e9e49531e8f374745 - md5: 63ccfdc3a3ce25b027b8767eb722fca8 - depends: - - python >=3.9 - - zipp >=3.20 - - python - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/importlib-metadata?source=hash-mapping - size: 34641 - timestamp: 1747934053147 -- conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_9.conda - sha256: 41557eeadf641de6aeae49486cef30d02a6912d8da98585d687894afd65b356a - md5: 86d9cba083cd041bfbf242a01a7a1999 - constrains: - - sysroot_linux-64 ==2.28 - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later - license_family: GPL - purls: [] - size: 1278712 - timestamp: 1765578681495 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ld64_osx-arm64-956.6-llvm22_1_h1f1a275_4.conda - sha256: c4d883bcb0b874b1b0d59ee9759c86449d9ce0827ead6ee709bd14efb811f56d - md5: f45ac8eed1f5341e70f0153db1da90d2 - depends: - - __glibc >=2.17,<3.0.a0 - - libdispatch >=6.2,<7.0a0 - - libgcc >=14 - - libllvm22 >=22.1.0,<22.2.0a0 - - libstdcxx >=14 - - libuuid >=2.41.3,<3.0a0 - - sigtool-codesign - - tapi >=1600.0.11.8,<1601.0a0 - constrains: - - ld64 956.6.* - - clang 22.1.* - - cctools 1030.6.3.* - - cctools_impl_osx-arm64 1030.6.3.* - license: APSL-2.0 - license_family: Other - purls: [] - size: 6352512 - timestamp: 1772018332867 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64_osx-arm64-956.6-llvm22_1_h692d5aa_4.conda - sha256: e4ae2ef85672c094aa3467d466f932ccdc1dda9bd4adac64f4252cc796149091 - md5: 4c2255bf859bff6c52ed38960e3bc963 - depends: - - __osx >=11.0 - - libcxx - - libllvm22 >=22.1.0,<22.2.0a0 - - sigtool-codesign - - tapi >=1600.0.11.8,<1601.0a0 - constrains: - - clang 22.1.* - - ld64 956.6.* - - cctools_impl_osx-arm64 1030.6.3.* - - cctools 1030.6.3.* - license: APSL-2.0 - license_family: Other - purls: [] - size: 1038027 - timestamp: 1772019602406 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_101.conda - sha256: 565941ac1f8b0d2f2e8f02827cbca648f4d18cd461afc31f15604cd291b5c5f3 - md5: 12bd9a3f089ee6c9266a37dab82afabd - depends: - - __glibc >=2.17,<3.0.a0 - - zstd >=1.5.7,<1.6.0a0 - constrains: - - binutils_impl_linux-64 2.45.1 - license: GPL-3.0-only - license_family: GPL - purls: [] - size: 725507 - timestamp: 1770267139900 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda - build_number: 5 - sha256: 18c72545080b86739352482ba14ba2c4815e19e26a7417ca21a95b76ec8da24c - md5: c160954f7418d7b6e87eaf05a8913fa9 - depends: - - libopenblas >=0.3.30,<0.3.31.0a0 - - libopenblas >=0.3.30,<1.0a0 - constrains: - - mkl <2026 - - liblapack 3.11.0 5*_openblas - - libcblas 3.11.0 5*_openblas - - blas 2.305 openblas - - liblapacke 3.11.0 5*_openblas - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 18213 - timestamp: 1765818813880 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-5_h51639a9_openblas.conda - build_number: 5 - sha256: 620a6278f194dcabc7962277da6835b1e968e46ad0c8e757736255f5ddbfca8d - md5: bcc025e2bbaf8a92982d20863fe1fb69 - depends: - - libopenblas >=0.3.30,<0.3.31.0a0 - - libopenblas >=0.3.30,<1.0a0 - constrains: - - libcblas 3.11.0 5*_openblas - - liblapack 3.11.0 5*_openblas - - liblapacke 3.11.0 5*_openblas - - blas 2.305 openblas - - mkl <2026 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 18546 - timestamp: 1765819094137 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcap-2.77-h3ff7636_0.conda - sha256: 9517cce5193144af0fcbf19b7bd67db0a329c2cc2618f28ffecaa921a1cbe9d3 - md5: 09c264d40c67b82b49a3f3b89037bd2e - depends: - - __glibc >=2.17,<3.0.a0 - - attr >=2.5.2,<2.6.0a0 - - libgcc >=14 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 121429 - timestamp: 1762349484074 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda - build_number: 5 - sha256: 0cbdcc67901e02dc17f1d19e1f9170610bd828100dc207de4d5b6b8ad1ae7ad8 - md5: 6636a2b6f1a87572df2970d3ebc87cc0 - depends: - - libblas 3.11.0 5_h4a7cf45_openblas - constrains: - - liblapacke 3.11.0 5*_openblas - - blas 2.305 openblas - - liblapack 3.11.0 5*_openblas - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 18194 - timestamp: 1765818837135 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-5_hb0561ab_openblas.conda - build_number: 5 - sha256: 38809c361bbd165ecf83f7f05fae9b791e1baa11e4447367f38ae1327f402fc0 - md5: efd8bd15ca56e9d01748a3beab8404eb - depends: - - libblas 3.11.0 5_h51639a9_openblas - constrains: - - liblapacke 3.11.0 5*_openblas - - liblapack 3.11.0 5*_openblas - - blas 2.305 openblas - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 18548 - timestamp: 1765819108956 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp22.1-22.1.0-default_h99862b1_0.conda - sha256: 914da94dbf829192b2bb360a7684b32e46f047a57de96a2f5ab39a011aeae6ea - md5: d966a23335e090a5410cc4f0dec8d00a - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libllvm22 >=22.1.0,<22.2.0a0 - - libstdcxx >=14 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 21661249 - timestamp: 1772101075353 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp22.1-22.1.0-default_hf3020a7_0.conda - sha256: 87028410f716ce686e06f10294a3f3093a3c378af8d934bf2b2be156f052ec2f - md5: eafb2adb22cd13c6821f1e967bbbb774 - depends: - - __osx >=11.0 - - libcxx >=22.1.0 - - libllvm22 >=22.1.0,<22.2.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 14185830 - timestamp: 1772097754373 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcompiler-rt-22.1.0-hb700be7_0.conda - sha256: a80eb63faa09b9e091922e805a5d6bd8e3531948d9bbe09b841c0f84f058bf00 - md5: a5c4f5f06ed7db43eb32bbc80ce28300 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - constrains: - - compiler-rt >=9.0.1 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 10658616 - timestamp: 1772021015681 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcompiler-rt-22.1.0-hd34ed20_0.conda - sha256: a97799a22737d57cacb6307a4928e9a06b4a9b696cbdc17fa211741574cfe9fb - md5: bd58c622babec344e90e35eb4eb2cfb4 - depends: - - __osx >=11.0 - constrains: - - compiler-rt >=9.0.1 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 1375369 - timestamp: 1772019616868 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.0-h55c6f16_1.conda - sha256: ce1049fa6fda9cf08ff1c50fb39573b5b0ea6958375d8ea7ccd8456ab81a0bcb - md5: e9c56daea841013e7774b5cd46f41564 - depends: - - __osx >=11.0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 568910 - timestamp: 1772001095642 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libdispatch-6.2-ha1474c7_1.conda - sha256: 8790c27ebe1d61c47468c27a213e330e7cb73cd259e39c981864a6e1a9e3798d - md5: b21c3ab8e8deff6f0a9de0e4b23dad87 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=13 - - libstdcxx-ng >=13 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 162406 - timestamp: 1769957134613 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libensemble-1.5.0-nompi_py314h8bb396f_101.conda - sha256: cff2fbcf70a8ec04e7f4a7ade28ded7f82c4bfd854ad2657ca1ae8a7f935b137 - md5: 8b07b5c639abf16a3aedf97168e6fcf7 - depends: - - mpmath - - nlopt - - numpy - - psutil - - pydantic >=1.10 - - python >=3.14,<3.15.0a0 - - python_abi 3.14.* *_cp314 - - pyyaml - - scipy - - setuptools - - tomli - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/libensemble?source=hash-mapping - size: 799785 - timestamp: 1762181191605 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libensemble-1.5.0-nompi_py314h809f670_101.conda - sha256: df2ce68ac2b0f04e7e2bcdfb816e25dc4fd75c0b8e5eb70c65e65ba7427ac718 - md5: 6b5d76c99e8056ba23d90bd1a81f08b8 - depends: - - mpmath - - nlopt - - numpy - - psutil - - pydantic >=1.10 - - python >=3.14,<3.15.0a0 - - python >=3.14,<3.15.0a0 *_cp314 - - python_abi 3.14.* *_cp314 - - pyyaml - - scipy - - setuptools - - tomli - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/libensemble?source=hash-mapping - size: 801852 - timestamp: 1762182797113 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.4-hecca717_0.conda - sha256: d78f1d3bea8c031d2f032b760f36676d87929b18146351c4464c66b0869df3f5 - md5: e7f7ce06ec24cfcfb9e36d28cf82ba57 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - constrains: - - expat 2.7.4.* - license: MIT - license_family: MIT - purls: [] - size: 76798 - timestamp: 1771259418166 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.4-hf6b4638_0.conda - sha256: 03887d8080d6a8fe02d75b80929271b39697ecca7628f0657d7afaea87761edf - md5: a92e310ae8dfc206ff449f362fc4217f - depends: - - __osx >=11.0 - constrains: - - expat 2.7.4.* - license: MIT - license_family: MIT - purls: [] - size: 68199 - timestamp: 1771260020767 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libfabric-2.4.0-ha770c72_1.conda - sha256: c5298c27fe1be477b17cd989566eb6c1a1bb50222f2f90389143b6f06ba95398 - md5: 647939791f2cc2de3b4ecac28d216279 - depends: - - libfabric1 2.4.0 h8f87c3e_1 - license: BSD-2-Clause OR GPL-2.0-only - license_family: BSD - purls: [] - size: 14406 - timestamp: 1769190335747 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libfabric-2.4.0-hce30654_1.conda - sha256: a2a9779347d26c0d66f18705183e8701aeba420db01edaa5dcde3ae76cbf9c00 - md5: b356b8b9cdb1cb1f3cbfb25d00d35515 - depends: - - libfabric1 2.4.0 h84a0fba_1 - license: BSD-2-Clause OR GPL-2.0-only - license_family: BSD - purls: [] - size: 14420 - timestamp: 1769190772410 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libfabric1-2.4.0-h8f87c3e_1.conda - sha256: 3110ee1b3debb97638897bb0d7074ee257ff33519520327064c36a35391dec50 - md5: c5fc7dbc3dbabcae1eec5d6c62251df8 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libnl >=3.11.0,<4.0a0 - - rdma-core >=61.0 - license: BSD-2-Clause OR GPL-2.0-only - license_family: BSD - purls: [] - size: 699849 - timestamp: 1769190335048 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libfabric1-2.4.0-h84a0fba_1.conda - sha256: c57c240b11a0051f62d9f26560ae2c94df0ba5e30a33c59cd79786bf2d8588c6 - md5: 17b27d39ff83af87065476ab6d8b7e74 - depends: - - __osx >=11.0 - license: BSD-2-Clause OR GPL-2.0-only - license_family: BSD - purls: [] - size: 330902 - timestamp: 1769190770219 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda - sha256: 31f19b6a88ce40ebc0d5a992c131f57d919f73c0b92cd1617a5bec83f6e961e6 - md5: a360c33a5abe61c07959e449fa1453eb - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: MIT - license_family: MIT - purls: [] - size: 58592 - timestamp: 1769456073053 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda - sha256: 6686a26466a527585e6a75cc2a242bf4a3d97d6d6c86424a441677917f28bec7 - md5: 43c04d9cb46ef176bb2a4c77e324d599 - depends: - - __osx >=11.0 - license: MIT - license_family: MIT - purls: [] - size: 40979 - timestamp: 1769456747661 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda - sha256: faf7d2017b4d718951e3a59d081eb09759152f93038479b768e3d612688f83f5 - md5: 0aa00f03f9e39fb9876085dee11a85d4 - depends: - - __glibc >=2.17,<3.0.a0 - - _openmp_mutex >=4.5 - constrains: - - libgcc-ng ==15.2.0=*_18 - - libgomp 15.2.0 he0feb66_18 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 1041788 - timestamp: 1771378212382 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_18.conda - sha256: 1d9c4f35586adb71bcd23e31b68b7f3e4c4ab89914c26bed5f2859290be5560e - md5: 92df6107310b1fff92c4cc84f0de247b - depends: - - _openmp_mutex - constrains: - - libgcc-ng ==15.2.0=*_18 - - libgomp 15.2.0 18 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 401974 - timestamp: 1771378877463 -- conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.2.0-hcc6f6b0_118.conda - sha256: af69fc5852908d26e5b630b270982ac792506551dd6af1614bf0370dd5ab5746 - md5: 5d3a96d55f1be45fef88ee23155effd9 - depends: - - __unix - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 3085932 - timestamp: 1771378098166 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_18.conda - sha256: e318a711400f536c81123e753d4c797a821021fb38970cebfb3f454126016893 - md5: d5e96b1ed75ca01906b3d2469b4ce493 - depends: - - libgcc 15.2.0 he0feb66_18 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 27526 - timestamp: 1771378224552 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_18.conda - sha256: d2c9fad338fd85e4487424865da8e74006ab2e2475bd788f624d7a39b2a72aee - md5: 9063115da5bc35fdc3e1002e69b9ef6e - depends: - - libgfortran5 15.2.0 h68bc16d_18 - constrains: - - libgfortran-ng ==15.2.0=*_18 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 27523 - timestamp: 1771378269450 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_18.conda - sha256: 63f89087c3f0c8621c5c89ecceec1e56e5e1c84f65fc9c5feca33a07c570a836 - md5: 26981599908ed2205366e8fc91b37fc6 - depends: - - libgfortran5 15.2.0 hdae7583_18 - constrains: - - libgfortran-ng ==15.2.0=*_18 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 138973 - timestamp: 1771379054939 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_18.conda - sha256: 539b57cf50ec85509a94ba9949b7e30717839e4d694bc94f30d41c9d34de2d12 - md5: 646855f357199a12f02a87382d429b75 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=15.2.0 - constrains: - - libgfortran 15.2.0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 2482475 - timestamp: 1771378241063 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_18.conda - sha256: 91033978ba25e6a60fb86843cf7e1f7dc8ad513f9689f991c9ddabfaf0361e7e - md5: c4a6f7989cffb0544bfd9207b6789971 - depends: - - libgcc >=15.2.0 - constrains: - - libgfortran 15.2.0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 598634 - timestamp: 1771378886363 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda - sha256: 21337ab58e5e0649d869ab168d4e609b033509de22521de1bfed0c031bfc5110 - md5: 239c5e9546c38a1e884d69effcf4c882 - depends: - - __glibc >=2.17,<3.0.a0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 603262 - timestamp: 1771378117851 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.13.0-default_he001693_1000.conda - sha256: 5041d295813dfb84652557839825880aae296222ab725972285c5abe3b6e4288 - md5: c197985b58bc813d26b42881f0021c82 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - - libxml2 - - libxml2-16 >=2.14.6 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 2436378 - timestamp: 1770953868164 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.13.0-default_ha97f43a_1000.conda - sha256: d47c3c030671d196ff1cdd343e93eb2ae0d7b665cb79f8164cc91488796db437 - md5: fed55ddd65a830cb62e78f07cfffcd41 - depends: - - __osx >=11.0 - - libcxx >=19 - - libxml2 - - libxml2-16 >=2.14.6 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 2339152 - timestamp: 1770953916323 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda - sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f - md5: 915f5995e94f60e9a4826e0b0920ee88 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: LGPL-2.1-only - purls: [] - size: 790176 - timestamp: 1754908768807 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda - sha256: de0336e800b2af9a40bdd694b03870ac4a848161b35c8a2325704f123f185f03 - md5: 4d5a7445f0b25b6a3ddbb56e790f5251 - depends: - - __osx >=11.0 - license: LGPL-2.1-only - purls: [] - size: 750379 - timestamp: 1754909073836 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda - build_number: 5 - sha256: c723b6599fcd4c6c75dee728359ef418307280fa3e2ee376e14e85e5bbdda053 - md5: b38076eb5c8e40d0106beda6f95d7609 - depends: - - libblas 3.11.0 5_h4a7cf45_openblas - constrains: - - blas 2.305 openblas - - liblapacke 3.11.0 5*_openblas - - libcblas 3.11.0 5*_openblas - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 18200 - timestamp: 1765818857876 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda - build_number: 5 - sha256: 735a6e6f7d7da6f718b6690b7c0a8ae4815afb89138aa5793abe78128e951dbb - md5: ca9d752201b7fa1225bca036ee300f2b - depends: - - libblas 3.11.0 5_h51639a9_openblas - constrains: - - libcblas 3.11.0 5*_openblas - - blas 2.305 openblas - - liblapacke 3.11.0 5*_openblas - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 18551 - timestamp: 1765819121855 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm22-22.1.0-hf7376ad_0.conda - sha256: 2efe1d8060c6afeb2df037fc61c182fb84e10f49cdbd29ed672e112d4d4ce2d7 - md5: 213f51bbcce2964ff2ec00d0fdd38541 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - - libxml2 - - libxml2-16 >=2.14.6 - - libzlib >=1.3.1,<2.0a0 - - zstd >=1.5.7,<1.6.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 44236214 - timestamp: 1772009776202 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm22-22.1.0-h89af1be_0.conda - sha256: 19e2c69bd90cffc66a9fd9feff2bfe6093cda8bf69aa01a6e1c41cbc0a5c24a0 - md5: 620fe27ebf89177446fb7cc3c26c9cc0 - depends: - - __osx >=11.0 - - libcxx >=19 - - libxml2 - - libxml2-16 >=2.14.6 - - libzlib >=1.3.1,<2.0a0 - - zstd >=1.5.7,<1.6.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 30060199 - timestamp: 1771978789197 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda - sha256: 755c55ebab181d678c12e49cced893598f2bab22d582fbbf4d8b83c18be207eb - md5: c7c83eecbb72d88b940c249af56c8b17 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - constrains: - - xz 5.8.2.* - license: 0BSD - purls: [] - size: 113207 - timestamp: 1768752626120 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda - sha256: 7bfc7ffb2d6a9629357a70d4eadeadb6f88fa26ebc28f606b1c1e5e5ed99dc7e - md5: 009f0d956d7bfb00de86901d16e486c7 - depends: - - __osx >=11.0 - constrains: - - xz 5.8.2.* - license: 0BSD - purls: [] - size: 92242 - timestamp: 1768752982486 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda - sha256: fe171ed5cf5959993d43ff72de7596e8ac2853e9021dec0344e583734f1e0843 - md5: 2c21e66f50753a083cbe6b80f38268fa - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: BSD-2-Clause - license_family: BSD - purls: [] - size: 92400 - timestamp: 1769482286018 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h84a0fba_1.conda - sha256: 1089c7f15d5b62c622625ec6700732ece83be8b705da8c6607f4dabb0c4bd6d2 - md5: 57c4be259f5e0b99a5983799a228ae55 - depends: - - __osx >=11.0 - license: BSD-2-Clause - license_family: BSD - purls: [] - size: 73690 - timestamp: 1769482560514 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libnl-3.11.0-hb9d3cd8_0.conda - sha256: ba7c5d294e3d80f08ac5a39564217702d1a752e352e486210faff794ac5001b4 - md5: db63358239cbe1ff86242406d440e44a - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: LGPL-2.1-or-later - license_family: LGPL - purls: [] - size: 741323 - timestamp: 1731846827427 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda - sha256: 199d79c237afb0d4780ccd2fbf829cea80743df60df4705202558675e07dd2c5 - md5: be43915efc66345cccb3c310b6ed0374 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libgfortran - - libgfortran5 >=14.3.0 - constrains: - - openblas >=0.3.30,<0.3.31.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 5927939 - timestamp: 1763114673331 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda - sha256: ebbbc089b70bcde87c4121a083c724330f02a690fb9d7c6cd18c30f1b12504fa - md5: a6f6d3a31bb29e48d37ce65de54e2df0 - depends: - - __osx >=11.0 - - libgfortran - - libgfortran5 >=14.3.0 - - llvm-openmp >=19.1.7 - constrains: - - openblas >=0.3.30,<0.3.31.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 4284132 - timestamp: 1768547079205 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsigtool-0.1.3-ha2d1da1_0.conda - sha256: 92e2c932cbf752f87bb2f6946165947e52c0e76cdcc302c99fc48a9e481f4345 - md5: 2420d35f7e5448dd6944029d78f79a8e - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - - openssl >=3.5.4,<4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 42259 - timestamp: 1767044845321 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsigtool-0.1.3-h98dc951_0.conda - sha256: 421f7bd7caaa945d9cd5d374cc3f01e75637ca7372a32d5e7695c825a48a30d1 - md5: c08557d00807785decafb932b5be7ef5 - depends: - - __osx >=11.0 - - openssl >=3.5.4,<4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 36416 - timestamp: 1767045062496 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda - sha256: 04596fcee262a870e4b7c9807224680ff48d4d0cc0dac076a602503d3dc6d217 - md5: da5be73701eecd0e8454423fd6ffcf30 - depends: - - __glibc >=2.17,<3.0.a0 - - icu >=78.2,<79.0a0 - - libgcc >=14 - - libzlib >=1.3.1,<2.0a0 - license: blessing - purls: [] - size: 942808 - timestamp: 1768147973361 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.2-h1ae2325_0.conda - sha256: 6e9b9f269732cbc4698c7984aa5b9682c168e2a8d1e0406e1ff10091ca046167 - md5: 4b0bf313c53c3e89692f020fb55d5f2c - depends: - - __osx >=11.0 - - icu >=78.2,<79.0a0 - - libzlib >=1.3.1,<2.0a0 - license: blessing - purls: [] - size: 909777 - timestamp: 1768148320535 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda - sha256: 78668020064fdaa27e9ab65cd2997e2c837b564ab26ce3bf0e58a2ce1a525c6e - md5: 1b08cd684f34175e4514474793d44bcb - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc 15.2.0 he0feb66_18 - constrains: - - libstdcxx-ng ==15.2.0=*_18 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 5852330 - timestamp: 1771378262446 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_18.conda - sha256: 3c902ffd673cb3c6ddde624cdb80f870b6c835f8bf28384b0016e7d444dd0145 - md5: 6235adb93d064ecdf3d44faee6f468de - depends: - - libstdcxx 15.2.0 h934c35e_18 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 27575 - timestamp: 1771378314494 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-257.10-hd0affe5_4.conda - sha256: f0356bb344a684e7616fc84675cfca6401140320594e8686be30e8ac7547aed2 - md5: 1d4c18d75c51ed9d00092a891a547a7d - depends: - - __glibc >=2.17,<3.0.a0 - - libcap >=2.77,<2.78.0a0 - - libgcc >=14 - license: LGPL-2.1-or-later - purls: [] - size: 491953 - timestamp: 1770738638119 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libudev1-257.10-hd0affe5_4.conda - sha256: ed4d2c01fbeb1330f112f7e399408634db277d3dfb2dec1d0395f56feaa24351 - md5: 6c74fba677b61a0842cbf0f63eee683b - depends: - - __glibc >=2.17,<3.0.a0 - - libcap >=2.77,<2.78.0a0 - - libgcc >=14 - license: LGPL-2.1-or-later - purls: [] - size: 144654 - timestamp: 1770738650966 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda - sha256: 1a7539cfa7df00714e8943e18de0b06cceef6778e420a5ee3a2a145773758aee - md5: db409b7c1720428638e7c0d509d3e1b5 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 40311 - timestamp: 1766271528534 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-he237659_1.conda - sha256: 047be059033c394bd32ae5de66ce389824352120b3a7c0eff980195f7ed80357 - md5: 417955234eccd8f252b86a265ccdab7f - depends: - - __glibc >=2.17,<3.0.a0 - - icu >=78.1,<79.0a0 - - libgcc >=14 - - libiconv >=1.18,<2.0a0 - - liblzma >=5.8.1,<6.0a0 - - libxml2-16 2.15.1 hca6bf5a_1 - - libzlib >=1.3.1,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 45402 - timestamp: 1766327161688 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.1-h8d039ee_1.conda - sha256: 59f96fa27cce6a9a27414c5bb301eedda1a1b85cd0d8f5d68f77e46b86e7c95f - md5: fd804ee851e20faca4fecc7df0901d07 - depends: - - __osx >=11.0 - - icu >=78.1,<79.0a0 - - libiconv >=1.18,<2.0a0 - - liblzma >=5.8.1,<6.0a0 - - libxml2-16 2.15.1 h5ef1a60_1 - - libzlib >=1.3.1,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 40607 - timestamp: 1766327501392 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-hca6bf5a_1.conda - sha256: 8331284bf9ae641b70cdc0e5866502dd80055fc3b9350979c74bb1d192e8e09e - md5: 3fdd8d99683da9fe279c2f4cecd1e048 - depends: - - __glibc >=2.17,<3.0.a0 - - icu >=78.1,<79.0a0 - - libgcc >=14 - - libiconv >=1.18,<2.0a0 - - liblzma >=5.8.1,<6.0a0 - - libzlib >=1.3.1,<2.0a0 - constrains: - - libxml2 2.15.1 - license: MIT - license_family: MIT - purls: [] - size: 555747 - timestamp: 1766327145986 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h5ef1a60_1.conda - sha256: 2d5ab15113b0ba21f4656d387d26ab59e4fbaf3027f5e58a2a4fe370821eb106 - md5: 7eed1026708e26ee512f43a04d9d0027 - depends: - - __osx >=11.0 - - icu >=78.1,<79.0a0 - - libiconv >=1.18,<2.0a0 - - liblzma >=5.8.1,<6.0a0 - - libzlib >=1.3.1,<2.0a0 - constrains: - - libxml2 2.15.1 - license: MIT - license_family: MIT - purls: [] - size: 464886 - timestamp: 1766327479416 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 - md5: edb0dca6bc32e4f4789199455a1dbeb8 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - constrains: - - zlib 1.3.1 *_2 - license: Zlib - license_family: Other - purls: [] - size: 60963 - timestamp: 1727963148474 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - sha256: ce34669eadaba351cd54910743e6a2261b67009624dbc7daeeafdef93616711b - md5: 369964e85dc26bfe78f41399b366c435 - depends: - - __osx >=11.0 - constrains: - - zlib 1.3.1 *_2 - license: Zlib - license_family: Other - purls: [] - size: 46438 - timestamp: 1727963202283 -- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-22.1.0-h4922eb0_0.conda - sha256: 543c9f17cf6ee6d7b635823fb9009df421d510c36739534df6ae43eadaf6ff4e - md5: 5e7da5333653c631d27732893b934351 - depends: - - __glibc >=2.17,<3.0.a0 - constrains: - - intel-openmp <0.0a0 - - openmp 22.1.0|22.1.0.* - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 6136884 - timestamp: 1772024545 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-22.1.0-hc7d1edf_0.conda - sha256: 0daeedb3872ad0fdd6f0d7e7165c63488e8a315d7057907434145fba0c1e7b3d - md5: ff0820b5588b20be3b858552ecf8ffae - depends: - - __osx >=11.0 - constrains: - - openmp 22.1.0|22.1.0.* - - intel-openmp <0.0a0 - license: Apache-2.0 WITH LLVM-exception - purls: [] - size: 285558 - timestamp: 1772028716784 -- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-22.1.0-hb700be7_0.conda - sha256: acaaddc3d0e5110e476254eac7ff37bac45d92def9644bee77955a3f937e6f15 - md5: e903c2e7a8823466d3745cd7e816f050 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libllvm22 22.1.0 hf7376ad_0 - - libstdcxx >=14 - - llvm-tools-22 22.1.0 h3b15d91_0 - constrains: - - llvmdev 22.1.0 - - llvm 22.1.0 - - clang 22.1.0 - - clang-tools 22.1.0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 50826 - timestamp: 1772010024536 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-22.1.0-hd34ed20_0.conda - sha256: 13540d63bf2615ec4dfea40f311c2c4a96bf8bea63fcfb25f20e8054a03920e6 - md5: 2e8bcdb32582101601c13078e22c98fa - depends: - - __osx >=11.0 - - libllvm22 22.1.0 h89af1be_0 - - llvm-tools-22 22.1.0 hb545844_0 - constrains: - - llvm 22.1.0 - - llvmdev 22.1.0 - - clang 22.1.0 - - clang-tools 22.1.0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 51193 - timestamp: 1771979258364 -- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-22-22.1.0-h3b15d91_0.conda - sha256: d1dfea954e527a9bee36baf9a70aca8b8de990f3d0c0371fdd27a77dd5c7589d - md5: 02038708711926b9052f15386eccb7b3 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libllvm22 22.1.0 hf7376ad_0 - - libstdcxx >=14 - - libzlib >=1.3.1,<2.0a0 - - zstd >=1.5.7,<1.6.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 25332782 - timestamp: 1772009946264 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-22-22.1.0-hb545844_0.conda - sha256: 307c71f3185383ce1239b8b0314dfc4f87c7acd8c6214671ecf57d68175977e8 - md5: 6fdadfcb14107a0c3917c059c8c40b51 - depends: - - __osx >=11.0 - - libcxx >=19 - - libllvm22 22.1.0 h89af1be_0 - - libzlib >=1.3.1,<2.0a0 - - zstd >=1.5.7,<1.6.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 17838140 - timestamp: 1771979103964 -- conda: https://conda.anaconda.org/conda-forge/noarch/mpi-1.0.1-mpich.conda - sha256: eacc189267202669a1c5c849dcca2298f41acb3918f05cf912d7d61ee7176fac - md5: 1052de900d672ec8b3713b8e300a8f06 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 6522 - timestamp: 1727683134241 -- conda: https://conda.anaconda.org/conda-forge/linux-64/mpich-5.0.0-h6f9170e_1.conda - sha256: 6ce05b2bab0afc6f48d4d4214c253f44d4ed9267a4f2d1d2d95bc97943d639f8 - md5: d9ec39e87f3141e599b37d8d548dced3 - depends: - - mpi 1.0.* mpich - - libgfortran5 >=14.3.0 - - libgfortran - - libgcc >=14 - - libstdcxx >=14 - - __glibc >=2.17,<3.0.a0 - - libhwloc >=2.13.0,<2.13.1.0a0 - - libfabric - - libfabric1 >=1.14.0 - - ucx >=1.20.0,<1.21.0a0 - license: LicenseRef-MPICH - purls: [] - size: 10152145 - timestamp: 1771225005984 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpich-5.0.0-ha380261_1.conda - sha256: 7ee0700b565aafee58be46f027bfce87a86d8a7aef760751336c9ef675523a17 - md5: 962b92c41e5d645290f99050d03a383a - depends: - - mpi 1.0.* mpich - - libcxx >=19 - - __osx >=11.0 - - libgfortran - - libgfortran5 >=14.3.0 - - libfabric - - libfabric1 >=1.14.0 - - libhwloc >=2.13.0,<2.13.1.0a0 - license: LicenseRef-MPICH - purls: [] - size: 6770167 - timestamp: 1771225096126 -- conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.0-pyhd8ed1ab_0.conda - sha256: 0f6f76159c40af2c7ae483934513e27a9e4137364ec717c1d69511dd4bbc6a68 - md5: 74149a38e723261f9f61bddd69e90022 - depends: - - python >=3.10 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/mpmath?source=compressed-mapping - size: 464419 - timestamp: 1771870721583 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586 - md5: 47e340acb35de30501a76c7c799c41d7 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: X11 AND BSD-3-Clause - purls: [] - size: 891641 - timestamp: 1738195959188 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - sha256: 2827ada40e8d9ca69a153a45f7fd14f32b2ead7045d3bbb5d10964898fe65733 - md5: 068d497125e4bf8a66bf707254fff5ae - depends: - - __osx >=11.0 - license: X11 AND BSD-3-Clause - purls: [] - size: 797030 - timestamp: 1738196177597 -- conda: https://conda.anaconda.org/conda-forge/linux-64/nlopt-2.10.0-py314h411e966_3.conda - sha256: 679520c5109c1d79c68f1e81cd6bbfd01d67d4c9106df40ca567202aea42cfea - md5: b3cfbd243e4a955e5147a0961b72966e - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - - numpy >=1.23,<3 - - python >=3.14,<3.15.0a0 - - python_abi 3.14.* *_cp314 - license: LGPL-2.1-or-later - purls: - - pkg:pypi/nlopt?source=hash-mapping - size: 414906 - timestamp: 1768584812132 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlopt-2.10.0-py314hbfffb6e_3.conda - sha256: 13dd85bb3632899b3600afcb6ea6f47626eff6340819c114add1a1d68700f4e5 - md5: ca86ff609e6c13e1888d40a5db3c0cde - depends: - - __osx >=11.0 - - libcxx >=19 - - numpy >=1.23,<3 - - python >=3.14,<3.15.0a0 - - python >=3.14,<3.15.0a0 *_cp314 - - python_abi 3.14.* *_cp314 - license: LGPL-2.1-or-later - purls: - - pkg:pypi/nlopt?source=hash-mapping - size: 332108 - timestamp: 1768585405844 -- conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - sha256: 4fa40e3e13fc6ea0a93f67dfc76c96190afd7ea4ffc1bac2612d954b42cdc3ee - md5: eb52d14a901e23c39e9e7b4a1a5c015f - depends: - - python >=3.10 - - setuptools - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/nodeenv?source=hash-mapping - size: 40866 - timestamp: 1766261270149 -- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.2-py314h2b28147_1.conda - sha256: 1d8377c8001c15ed12c2713b723213474b435706ab9d34ede69795d64af9e94d - md5: 4ea6b620fdf24a1a0bc4f1c7134dfafb - depends: - - python - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - libcblas >=3.9.0,<4.0a0 - - python_abi 3.14.* *_cp314 - - libblas >=3.9.0,<4.0a0 - - liblapack >=3.9.0,<4.0a0 - constrains: - - numpy-base <0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/numpy?source=compressed-mapping - size: 8926994 - timestamp: 1770098474394 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.2-py314hae46ccb_1.conda - sha256: 43b5ed0ead36e5133ee8462916d23284f0bce0e5f266fa4bd31a020a6cc22f14 - md5: 0f0ddf0575b98d91cda9e3ca9eaeb9a2 - depends: - - python - - __osx >=11.0 - - python 3.14.* *_cp314 - - libcxx >=19 - - libblas >=3.9.0,<4.0a0 - - liblapack >=3.9.0,<4.0a0 - - python_abi 3.14.* *_cp314 - - libcblas >=3.9.0,<4.0a0 - constrains: - - numpy-base <0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/numpy?source=hash-mapping - size: 6992958 - timestamp: 1770098398327 -- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda - sha256: 44c877f8af015332a5d12f5ff0fb20ca32f896526a7d0cdb30c769df1144fb5c - md5: f61eb8cd60ff9057122a3d338b99c00f - depends: - - __glibc >=2.17,<3.0.a0 - - ca-certificates - - libgcc >=14 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 3164551 - timestamp: 1769555830639 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda - sha256: 361f5c5e60052abc12bdd1b50d7a1a43e6a6653aab99a2263bf2288d709dcf67 - md5: f4f6ad63f98f64191c3e77c5f5f29d76 - depends: - - __osx >=11.0 - - ca-certificates - license: Apache-2.0 - license_family: Apache - purls: [] - size: 3104268 - timestamp: 1769556384749 -- conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.0.1-pyh145f28c_0.conda - sha256: 5f66ea31d62188c266c5a8752119b0cc90a5bf05963f665cf48a33e0ec58d39c - md5: 09a970fbf75e8ed1aa633827ded6aa4f - depends: - - python >=3.13.0a0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pip?source=compressed-mapping - size: 1180743 - timestamp: 1770270312477 -- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.2-pyhcf101f3_0.conda - sha256: 7f263219cecf0ba6d74c751efa60c4676ce823157ca90aa43ebba5ac615ca0fa - md5: 4fefefb892ce9cc1539405bec2f1a6cd - depends: - - python >=3.10 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/platformdirs?source=compressed-mapping - size: 25643 - timestamp: 1771233827084 -- conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - sha256: 5b81b7516d4baf43d0c185896b245fa7384b25dc5615e7baa504b7fa4e07b706 - md5: 7f3ac694319c7eaf81a0325d6405e974 - depends: - - cfgv >=2.0.0 - - identify >=1.0.0 - - nodeenv >=0.11.1 - - python >=3.10 - - pyyaml >=5.1 - - virtualenv >=20.10.0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pre-commit?source=hash-mapping - size: 200827 - timestamp: 1765937577534 -- conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py314h0f05182_0.conda - sha256: f15574ed6c8c8ed8c15a0c5a00102b1efe8b867c0bd286b498cd98d95bd69ae5 - md5: 4f225a966cfee267a79c5cb6382bd121 - depends: - - python - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - python_abi 3.14.* *_cp314 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/psutil?source=hash-mapping - size: 231303 - timestamp: 1769678156552 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.2-py314ha14b1ff_0.conda - sha256: e0f31c053eb11803d63860c213b2b1b57db36734f5f84a3833606f7c91fedff9 - md5: fc4c7ab223873eee32080d51600ce7e7 - depends: - - python - - __osx >=11.0 - - python 3.14.* *_cp314 - - python_abi 3.14.* *_cp314 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/psutil?source=hash-mapping - size: 245502 - timestamp: 1769678303655 -- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - sha256: 79db7928d13fab2d892592223d7570f5061c192f27b9febd1a418427b719acc6 - md5: 12c566707c80111f9799308d9e265aef - depends: - - python >=3.9 - - python - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pycparser?source=hash-mapping - size: 110100 - timestamp: 1733195786147 -- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda - sha256: 868569d9505b7fe246c880c11e2c44924d7613a8cdcc1f6ef85d5375e892f13d - md5: c3946ed24acdb28db1b5d63321dbca7d - depends: - - typing-inspection >=0.4.2 - - typing_extensions >=4.14.1 - - python >=3.10 - - typing-extensions >=4.6.1 - - annotated-types >=0.6.0 - - pydantic-core ==2.41.5 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/pydantic?source=hash-mapping - size: 340482 - timestamp: 1764434463101 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.41.5-py314h2e6c369_1.conda - sha256: 7e0ae379796e28a429f8e48f2fe22a0f232979d65ec455e91f8dac689247d39f - md5: 432b0716a1dfac69b86aa38fdd59b7e6 - depends: - - python - - typing-extensions >=4.6.0,!=4.7.0 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - python_abi 3.14.* *_cp314 - constrains: - - __glibc >=2.17 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pydantic-core?source=hash-mapping - size: 1943088 - timestamp: 1762988995556 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py314haad56a0_1.conda - sha256: dded9092d89f1d8c267d5ce8b5e21f935c51acb7a64330f507cdfb3b69a98116 - md5: 420a4b8024e9b22880f1e03b612afa7d - depends: - - python - - typing-extensions >=4.6.0,!=4.7.0 - - __osx >=11.0 - - python 3.14.* *_cp314 - - python_abi 3.14.* *_cp314 - constrains: - - __osx >=11.0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pydantic-core?source=hash-mapping - size: 1784478 - timestamp: 1762989019956 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda - build_number: 101 - sha256: cb0628c5f1732f889f53a877484da98f5a0e0f47326622671396fb4f2b0cd6bd - md5: c014ad06e60441661737121d3eae8a60 - depends: - - __glibc >=2.17,<3.0.a0 - - bzip2 >=1.0.8,<2.0a0 - - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.7.3,<3.0a0 - - libffi >=3.5.2,<3.6.0a0 - - libgcc >=14 - - liblzma >=5.8.2,<6.0a0 - - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.51.2,<4.0a0 - - libuuid >=2.41.3,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.5,<4.0a0 - - python_abi 3.14.* *_cp314 - - readline >=8.3,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - zstd >=1.5.7,<1.6.0a0 - license: Python-2.0 - purls: [] - size: 36702440 - timestamp: 1770675584356 - python_site_packages_path: lib/python3.14/site-packages -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.3-h4c637c5_101_cp314.conda - build_number: 101 - sha256: fccce2af62d11328d232df9f6bbf63464fd45f81f718c661757f9c628c4378ce - md5: 753c8d0447677acb7ddbcc6e03e82661 - depends: - - __osx >=11.0 - - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.7.3,<3.0a0 - - libffi >=3.5.2,<3.6.0a0 - - liblzma >=5.8.2,<6.0a0 - - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.51.2,<4.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.5,<4.0a0 - - python_abi 3.14.* *_cp314 - - readline >=8.3,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - zstd >=1.5.7,<1.6.0a0 - license: Python-2.0 - purls: [] - size: 13522698 - timestamp: 1770675365241 - python_site_packages_path: lib/python3.14/site-packages -- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - build_number: 8 - sha256: ad6d2e9ac39751cc0529dd1566a26751a0bf2542adb0c232533d32e176e21db5 - md5: 0539938c55b6b1a59b560e843ad864a4 - constrains: - - python 3.14.* *_cp314 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 6989 - timestamp: 1752805904792 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py314h67df5f8_1.conda - sha256: b318fb070c7a1f89980ef124b80a0b5ccf3928143708a85e0053cde0169c699d - md5: 2035f68f96be30dc60a5dfd7452c7941 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - python >=3.14,<3.15.0a0 - - python_abi 3.14.* *_cp314 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyyaml?source=compressed-mapping - size: 202391 - timestamp: 1770223462836 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py314h6e9b3f0_1.conda - sha256: 95f385f9606e30137cf0b5295f63855fd22223a4cf024d306cf9098ea1c4a252 - md5: dcf51e564317816cb8d546891019b3ab - depends: - - __osx >=11.0 - - python >=3.14,<3.15.0a0 - - python >=3.14,<3.15.0a0 *_cp314 - - python_abi 3.14.* *_cp314 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyyaml?source=hash-mapping - size: 189475 - timestamp: 1770223788648 -- conda: https://conda.anaconda.org/conda-forge/linux-64/rdma-core-61.0-h192683f_0.conda - sha256: 8e0b7962cf8bec9a016cd91a6c6dc1f9ebc8e7e316b1d572f7b9047d0de54717 - md5: d487d93d170e332ab39803e05912a762 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libnl >=3.11.0,<4.0a0 - - libstdcxx >=14 - - libsystemd0 >=257.10 - - libudev1 >=257.10 - license: Linux-OpenIB - license_family: BSD - purls: [] - size: 1268666 - timestamp: 1769154883613 -- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - sha256: 12ffde5a6f958e285aa22c191ca01bbd3d6e710aa852e00618fa6ddc59149002 - md5: d7d95fc8287ea7bf33e0e7116d2b95ec - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - ncurses >=6.5,<7.0a0 - license: GPL-3.0-only - license_family: GPL - purls: [] - size: 345073 - timestamp: 1765813471974 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - sha256: a77010528efb4b548ac2a4484eaf7e1c3907f2aec86123ed9c5212ae44502477 - md5: f8381319127120ce51e081dce4865cf4 - depends: - - __osx >=11.0 - - ncurses >=6.5,<7.0a0 - license: GPL-3.0-only - license_family: GPL - purls: [] - size: 313930 - timestamp: 1765813902568 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.15.2-h40fa522_0.conda - noarch: python - sha256: e0403324ac0de06f51c76ae2a4671255d48551a813d1f1dc03bd4db7364604f0 - md5: 8dec25bd8a94496202f6f3c9085f2ad3 - depends: - - python - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - constrains: - - __glibc >=2.17 - license: MIT - license_family: MIT - purls: - - pkg:pypi/ruff?source=hash-mapping - size: 9284016 - timestamp: 1771570005837 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.15.2-h279115b_0.conda - noarch: python - sha256: 80f93811d26e58bf5a635d1034cba8497223c2bf9efa2a67776a18903e40944a - md5: a52cf978daa5290b1414d3bba6b6ea0b - depends: - - python - - __osx >=11.0 - constrains: - - __osx >=11.0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/ruff?source=hash-mapping - size: 8415205 - timestamp: 1771570140500 -- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.1-py314hf07bd8e_0.conda - sha256: 1ae427836d7979779c9005388a05993a3addabcc66c4422694639a4272d7d972 - md5: d0510124f87c75403090e220db1e9d41 - depends: - - __glibc >=2.17,<3.0.a0 - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libgcc >=14 - - libgfortran - - libgfortran5 >=14.3.0 - - liblapack >=3.9.0,<4.0a0 - - libstdcxx >=14 - - numpy <2.7 - - numpy >=1.23,<3 - - numpy >=1.25.2 - - python >=3.14,<3.15.0a0 - - python_abi 3.14.* *_cp314 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/scipy?source=compressed-mapping - size: 17225275 - timestamp: 1771880751368 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.1-py314hfc1f868_0.conda - sha256: 6ca2abcaff2cd071aabaabd82b10a87fc7de3a4619f6c98820cc28e90cc2cb20 - md5: 7806ce54b78b0b11517b465a3398e910 - depends: - - __osx >=11.0 - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libcxx >=19 - - libgfortran - - libgfortran5 >=14.3.0 - - liblapack >=3.9.0,<4.0a0 - - numpy <2.7 - - numpy >=1.23,<3 - - numpy >=1.25.2 - - python >=3.14,<3.15.0a0 - - python >=3.14,<3.15.0a0 *_cp314 - - python_abi 3.14.* *_cp314 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/scipy?source=compressed-mapping - size: 13986990 - timestamp: 1771881110844 -- conda: https://conda.anaconda.org/conda-forge/noarch/sdkroot_env_osx-arm64-26.0-ha3f98da_7.conda - sha256: fabfe031ede99898cb2b0b805f6c0d64fcc24ecdb444de3a83002d8135bf4804 - md5: 5f0ebbfea12d8e5bddff157e271fdb2f - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 4971 - timestamp: 1771434195389 -- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-82.0.0-pyh332efcf_0.conda - sha256: fd7201e38e38bf7f25818d624ca8da97b8998957ca9ae3fb7fdc9c17e6b25fcd - md5: 1d00d46c634177fc8ede8b99d6089239 - depends: - - python >=3.10 - license: MIT - license_family: MIT - purls: - - pkg:pypi/setuptools?source=compressed-mapping - size: 637506 - timestamp: 1770634745653 -- conda: https://conda.anaconda.org/conda-forge/linux-64/sigtool-codesign-0.1.3-ha2d1da1_0.conda - sha256: c0c3801c98c890b545263fd73bc1719203594c333364467ce5e8355d19a50fd3 - md5: 62a0d148859feaf8237c521a3f462920 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libsigtool 0.1.3 ha2d1da1_0 - - libstdcxx >=14 - - openssl >=3.5.4,<4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 118547 - timestamp: 1767044865465 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-codesign-0.1.3-h98dc951_0.conda - sha256: f3d006e2441f110160a684744d90921bbedbffa247d7599d7e76b5cd048116dc - md5: ade77ad7513177297b1d75e351e136ce - depends: - - __osx >=11.0 - - libsigtool 0.1.3 h98dc951_0 - - openssl >=3.5.4,<4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 114331 - timestamp: 1767045086274 -- conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-h4ee821c_9.conda - sha256: c47299fe37aebb0fcf674b3be588e67e4afb86225be4b0d452c7eb75c086b851 - md5: 13dc3adbc692664cd3beabd216434749 - depends: - - __glibc >=2.28 - - kernel-headers_linux-64 4.18.0 he073ed8_9 - - tzdata - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later - license_family: GPL - purls: [] - size: 24008591 - timestamp: 1765578833462 -- conda: https://conda.anaconda.org/conda-forge/linux-64/tapi-1600.0.11.8-hfd2156b_0.conda - sha256: 2f3d234120e8782cd51607660f5731455566304856e1f9663054b0170c8e51ea - md5: c503c511abb0dc309279055dd9262d11 - depends: - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: NCSA - purls: [] - size: 330655 - timestamp: 1762535093161 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1600.0.11.8-h997e182_0.conda - sha256: dcb678fa77f448fa981bf3783902afe09b8838436f3092e9ecaf6a718c87f642 - md5: 347261d575a245cb6111fb2cb5a79fc7 - depends: - - libcxx >=19.0.0.a0 - - __osx >=11.0 - - ncurses >=6.5,<7.0a0 - license: NCSA - purls: [] - size: 199699 - timestamp: 1762535277608 -- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda - sha256: cafeec44494f842ffeca27e9c8b0c27ed714f93ac77ddadc6aaf726b5554ebac - md5: cffd3bdd58090148f4cfcd831f4b26ab - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libzlib >=1.3.1,<2.0a0 - constrains: - - xorg-libx11 >=1.8.12,<2.0a0 - license: TCL - license_family: BSD - purls: [] - size: 3301196 - timestamp: 1769460227866 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda - sha256: 799cab4b6cde62f91f750149995d149bc9db525ec12595e8a1d91b9317f038b3 - md5: a9d86bc62f39b94c4661716624eb21b0 - depends: - - __osx >=11.0 - - libzlib >=1.3.1,<2.0a0 - license: TCL - license_family: BSD - purls: [] - size: 3127137 - timestamp: 1769460817696 -- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda - sha256: 62940c563de45790ba0f076b9f2085a842a65662268b02dd136a8e9b1eaf47a8 - md5: 72e780e9aa2d0a3295f59b1874e3768b - depends: - - python >=3.10 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/tomli?source=compressed-mapping - size: 21453 - timestamp: 1768146676791 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - sha256: 7c2df5721c742c2a47b2c8f960e718c930031663ac1174da67c1ed5999f7938c - md5: edd329d7d3a4ab45dcf905899a7a6115 - depends: - - typing_extensions ==4.15.0 pyhcf101f3_0 - license: PSF-2.0 - license_family: PSF - purls: [] - size: 91383 - timestamp: 1756220668932 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda - sha256: 70db27de58a97aeb7ba7448366c9853f91b21137492e0b4430251a1870aa8ff4 - md5: a0a4a3035667fc34f29bfbd5c190baa6 - depends: - - python >=3.10 - - typing_extensions >=4.12.0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/typing-inspection?source=hash-mapping - size: 18923 - timestamp: 1764158430324 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda - sha256: 032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731 - md5: 0caa1af407ecff61170c9437a808404d - depends: - - python >=3.10 - - python - license: PSF-2.0 - license_family: PSF - purls: - - pkg:pypi/typing-extensions?source=hash-mapping - size: 51692 - timestamp: 1756220668932 -- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - sha256: 1d30098909076af33a35017eed6f2953af1c769e273a0626a04722ac4acaba3c - md5: ad659d0a2b3e47e38d829aa8cad2d610 - license: LicenseRef-Public-Domain - purls: [] - size: 119135 - timestamp: 1767016325805 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ucx-1.20.0-hf72d326_1.conda - sha256: 350c5179e1bda17434acf99eb8247f5b6d9b7f991dfd19c582abf538ed41733a - md5: d878a39ba2fc02440785a6a5c4657b09 - depends: - - __glibc >=2.28,<3.0.a0 - - _openmp_mutex >=4.5 - - libgcc >=14 - - libstdcxx >=14 - - rdma-core >=61.0 - constrains: - - cuda-cudart - - cuda-version >=13,<14.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 7801740 - timestamp: 1769197798676 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.1.0-py314h9891dd4_0.conda - sha256: c84034056dc938c853e4f61e72e5bd37e2ec91927a661fb9762f678cbea52d43 - md5: 5d3c008e54c7f49592fca9c32896a76f - depends: - - __glibc >=2.17,<3.0.a0 - - cffi - - libgcc >=14 - - libstdcxx >=14 - - python >=3.14,<3.15.0a0 - - python_abi 3.14.* *_cp314 - license: MIT - license_family: MIT - purls: - - pkg:pypi/ukkonen?source=hash-mapping - size: 15004 - timestamp: 1769438727085 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.1.0-py314h6cfcd04_0.conda - sha256: 033dbf9859fe58fb85350cf6395be6b1346792e1766d2d5acab538a6eb3659fb - md5: e229f444fbdb28d8c4f40e247154d993 - depends: - - __osx >=11.0 - - cffi - - libcxx >=19 - - python >=3.14,<3.15.0a0 - - python >=3.14,<3.15.0a0 *_cp314 - - python_abi 3.14.* *_cp314 - license: MIT - license_family: MIT - purls: - - pkg:pypi/ukkonen?source=hash-mapping - size: 14884 - timestamp: 1769439056290 -- conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.39.0-pyhcf101f3_0.conda - sha256: de93eed364f14f08f78ff41994dfe22ff018521c4702e432630d10c0eb0eff6b - md5: e73db224203e56b25e040446fa1584db - depends: - - python >=3.10 - - distlib >=0.3.7,<1 - - platformdirs >=3.9.1,<5 - - typing_extensions >=4.13.2 - - importlib-metadata >=6.6 - - filelock >=3.24.2,<4 - - python - license: MIT - purls: - - pkg:pypi/virtualenv?source=compressed-mapping - size: 4657721 - timestamp: 1771967166128 -- pypi: https://files.pythonhosted.org/packages/b1/02/5dbdecc50207c884a70e6f2f561d4c53fb353d755b12c049ad15cc905bc0/wat-0.7.0-py3-none-any.whl - name: wat - version: 0.7.0 - sha256: 4d7d1a3030111899d04c230372a631d61d7a290f255e21d3c27d1dc0e32a6cef - requires_python: '>=3.8' -- conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - sha256: 6d9ea2f731e284e9316d95fa61869fe7bbba33df7929f82693c121022810f4ad - md5: a77f85f77be52ff59391544bfe73390a - depends: - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - license: MIT - license_family: MIT - purls: [] - size: 85189 - timestamp: 1753484064210 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda - sha256: b03433b13d89f5567e828ea9f1a7d5c5d697bf374c28a4168d71e9464f5dafac - md5: 78a0fe9e9c50d2c381e8ee47e3ea437d - depends: - - __osx >=11.0 - license: MIT - license_family: MIT - purls: [] - size: 83386 - timestamp: 1753484079473 -- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda - sha256: b4533f7d9efc976511a73ef7d4a2473406d7f4c750884be8e8620b0ce70f4dae - md5: 30cd29cb87d819caead4d55184c1d115 - depends: - - python >=3.10 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/zipp?source=hash-mapping - size: 24194 - timestamp: 1764460141901 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda - sha256: 68f0206ca6e98fea941e5717cec780ed2873ffabc0e1ed34428c061e2c6268c7 - md5: 4a13eeac0b5c8e5b8ab496e6c4ddd829 - depends: - - __glibc >=2.17,<3.0.a0 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 601375 - timestamp: 1764777111296 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda - sha256: 9485ba49e8f47d2b597dd399e88f4802e100851b27c21d7525625b0b4025a5d9 - md5: ab136e4c34e97f34fb621d2592a393d8 - depends: - - __osx >=11.0 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 433413 - timestamp: 1764777166076 +version https://git-lfs.github.com/spec/v1 +oid sha256:206dcba91c9edf561d8f6bd29fd1b508f7cbc65a233f176ab3bd8035ebb52456 +size 99496 diff --git a/ensemblesweep/pyproject.toml b/ensemblesweep/pyproject.toml index 4cc35fb..40cabaa 100644 --- a/ensemblesweep/pyproject.toml +++ b/ensemblesweep/pyproject.toml @@ -36,6 +36,7 @@ pip = ">=26.0.1,<27" llvm-openmp = ">=22.1.0,<23" clang_osx-arm64 = ">=22.1.0,<23" mpich = ">=5.0.0,<6" +git-lfs = ">=3.7.1,<4" [dependency-groups] dev = ["wat>=0.7.0,<0.8"] From 81074b4e0c9aa0dc6e238477367d56a3e31a3ae5 Mon Sep 17 00:00:00 2001 From: Jeffrey Larson Date: Mon, 16 Mar 2026 07:07:24 -0700 Subject: [PATCH 05/18] Starting an andreas example --- .../Load30/NumDisloc10/Repeat1/Chemistry.txt | 18 +++ .../NumDisloc10/Repeat1/dislocation_input.txt | 109 +++++++++++++ .../Load30/NumDisloc10/Repeat1/load_input.txt | 145 ++++++++++++++++++ .../NumDisloc10/Repeat1/material_input.txt | 23 +++ .../Load30/NumDisloc10/Repeat1/run.sh | 30 ++++ .../NumDisloc10/Repeat1/simulation_input.txt | 44 ++++++ .../Load30/NumDisloc20/Repeat1/Chemistry.txt | 18 +++ .../NumDisloc20/Repeat1/dislocation_input.txt | 109 +++++++++++++ .../Load30/NumDisloc20/Repeat1/load_input.txt | 145 ++++++++++++++++++ .../NumDisloc20/Repeat1/material_input.txt | 23 +++ .../Load30/NumDisloc20/Repeat1/run.sh | 30 ++++ .../NumDisloc20/Repeat1/simulation_input.txt | 44 ++++++ .../Load30/NumDisloc30/Repeat1/Chemistry.txt | 18 +++ .../NumDisloc30/Repeat1/dislocation_input.txt | 109 +++++++++++++ .../Load30/NumDisloc30/Repeat1/load_input.txt | 145 ++++++++++++++++++ .../NumDisloc30/Repeat1/material_input.txt | 23 +++ .../Load30/NumDisloc30/Repeat1/run.sh | 30 ++++ .../NumDisloc30/Repeat1/simulation_input.txt | 44 ++++++ .../Load30/NumDisloc35/Repeat1/Chemistry.txt | 18 +++ .../NumDisloc35/Repeat1/dislocation_input.txt | 109 +++++++++++++ .../Load30/NumDisloc35/Repeat1/load_input.txt | 145 ++++++++++++++++++ .../NumDisloc35/Repeat1/material_input.txt | 23 +++ .../Load30/NumDisloc35/Repeat1/run.sh | 30 ++++ .../NumDisloc35/Repeat1/simulation_input.txt | 44 ++++++ .../Load50/NumDisloc10/Repeat1/Chemistry.txt | 18 +++ .../NumDisloc10/Repeat1/dislocation_input.txt | 109 +++++++++++++ .../Load50/NumDisloc10/Repeat1/load_input.txt | 145 ++++++++++++++++++ .../NumDisloc10/Repeat1/material_input.txt | 23 +++ .../Load50/NumDisloc10/Repeat1/run.sh | 30 ++++ .../NumDisloc10/Repeat1/simulation_input.txt | 44 ++++++ .../Load50/NumDisloc20/Repeat1/Chemistry.txt | 18 +++ .../NumDisloc20/Repeat1/dislocation_input.txt | 109 +++++++++++++ .../Load50/NumDisloc20/Repeat1/load_input.txt | 145 ++++++++++++++++++ .../NumDisloc20/Repeat1/material_input.txt | 23 +++ .../Load50/NumDisloc20/Repeat1/run.sh | 30 ++++ .../NumDisloc20/Repeat1/simulation_input.txt | 44 ++++++ .../Load50/NumDisloc30/Repeat1/Chemistry.txt | 18 +++ .../NumDisloc30/Repeat1/dislocation_input.txt | 109 +++++++++++++ .../Load50/NumDisloc30/Repeat1/load_input.txt | 145 ++++++++++++++++++ .../NumDisloc30/Repeat1/material_input.txt | 23 +++ .../Load50/NumDisloc30/Repeat1/run.sh | 30 ++++ .../NumDisloc30/Repeat1/simulation_input.txt | 44 ++++++ .../Load50/NumDisloc35/Repeat1/Chemistry.txt | 18 +++ .../NumDisloc35/Repeat1/dislocation_input.txt | 109 +++++++++++++ .../Load50/NumDisloc35/Repeat1/load_input.txt | 145 ++++++++++++++++++ .../NumDisloc35/Repeat1/material_input.txt | 23 +++ .../Load50/NumDisloc35/Repeat1/run.sh | 30 ++++ .../NumDisloc35/Repeat1/simulation_input.txt | 44 ++++++ .../Load70/NumDisloc10/Repeat1/Chemistry.txt | 18 +++ .../NumDisloc10/Repeat1/dislocation_input.txt | 109 +++++++++++++ .../Load70/NumDisloc10/Repeat1/load_input.txt | 145 ++++++++++++++++++ .../NumDisloc10/Repeat1/material_input.txt | 23 +++ .../Load70/NumDisloc10/Repeat1/run.sh | 30 ++++ .../NumDisloc10/Repeat1/simulation_input.txt | 44 ++++++ .../Load70/NumDisloc20/Repeat1/Chemistry.txt | 18 +++ .../NumDisloc20/Repeat1/dislocation_input.txt | 109 +++++++++++++ .../Load70/NumDisloc20/Repeat1/load_input.txt | 145 ++++++++++++++++++ .../NumDisloc20/Repeat1/material_input.txt | 23 +++ .../Load70/NumDisloc20/Repeat1/run.sh | 30 ++++ .../NumDisloc20/Repeat1/simulation_input.txt | 44 ++++++ .../Load70/NumDisloc30/Repeat1/Chemistry.txt | 18 +++ .../NumDisloc30/Repeat1/dislocation_input.txt | 109 +++++++++++++ .../Load70/NumDisloc30/Repeat1/load_input.txt | 145 ++++++++++++++++++ .../NumDisloc30/Repeat1/material_input.txt | 23 +++ .../Load70/NumDisloc30/Repeat1/run.sh | 30 ++++ .../NumDisloc30/Repeat1/simulation_input.txt | 44 ++++++ .../Load70/NumDisloc35/Repeat1/Chemistry.txt | 18 +++ .../NumDisloc35/Repeat1/dislocation_input.txt | 109 +++++++++++++ .../Load70/NumDisloc35/Repeat1/load_input.txt | 145 ++++++++++++++++++ .../NumDisloc35/Repeat1/material_input.txt | 23 +++ .../Load70/NumDisloc35/Repeat1/run.sh | 30 ++++ .../NumDisloc35/Repeat1/simulation_input.txt | 44 ++++++ .../andreas/PROD_nersc_gd3_registry.txt | 12 ++ .../examples/andreas/check_if_converged.py | 128 ++++++++++++++++ .../andreas/simulation_start_utility.py | 49 ++++++ .../examples/andreas/sweep_for_andreas.sh | 20 +++ ensemblesweep/examples/andreas/sweep_gd3.py | 102 ++++++++++++ 77 files changed, 4739 insertions(+) create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/Chemistry.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/dislocation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/load_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/material_input.txt create mode 100755 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/run.sh create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/simulation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/Chemistry.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/dislocation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/load_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/material_input.txt create mode 100755 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/run.sh create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/simulation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/Chemistry.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/dislocation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/load_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/material_input.txt create mode 100755 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/run.sh create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/simulation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/Chemistry.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/dislocation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/load_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/material_input.txt create mode 100755 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/run.sh create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/simulation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/Chemistry.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/dislocation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/load_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/material_input.txt create mode 100755 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/run.sh create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/simulation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/Chemistry.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/dislocation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/load_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/material_input.txt create mode 100755 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/run.sh create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/simulation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/Chemistry.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/dislocation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/load_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/material_input.txt create mode 100755 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/run.sh create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/simulation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/Chemistry.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/dislocation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/load_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/material_input.txt create mode 100755 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/run.sh create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/simulation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/Chemistry.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/dislocation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/load_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/material_input.txt create mode 100755 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/run.sh create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/simulation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/Chemistry.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/dislocation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/load_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/material_input.txt create mode 100755 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/run.sh create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/simulation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/Chemistry.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/dislocation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/load_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/material_input.txt create mode 100755 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/run.sh create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/simulation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/Chemistry.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/dislocation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/load_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/material_input.txt create mode 100755 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/run.sh create mode 100644 ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/simulation_input.txt create mode 100644 ensemblesweep/examples/andreas/PROD_nersc_gd3_registry.txt create mode 100644 ensemblesweep/examples/andreas/check_if_converged.py create mode 100644 ensemblesweep/examples/andreas/simulation_start_utility.py create mode 100755 ensemblesweep/examples/andreas/sweep_for_andreas.sh create mode 100644 ensemblesweep/examples/andreas/sweep_gd3.py diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/Chemistry.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/Chemistry.txt new file mode 100644 index 0000000..49b0396 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/Chemistry.txt @@ -0,0 +1,18 @@ +CHEMISTRY INPUT FILE +species 1 + +*****Vacancy type defect***** +Name: Vacancy +Density: 4.67e-4 +Prefactor: 1.71e-4 +Source: 0.d0 +Formation: 0.61 +Migration: 0.67 +AtomMass: -1 +Absorbable: T +DipoleTensor: + -2.62 0.0 0.0 + 0.0 -2.62 0.0 + 0.0 0.0 -2.62 + +END FILE diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/dislocation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/dislocation_input.txt new file mode 100644 index 0000000..4f5c2f8 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/dislocation_input.txt @@ -0,0 +1,109 @@ +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 9 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 9 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 10 +Miller: 1.d00 -1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 8 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 13 +Miller: 1.d00 1.d00 -1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 9 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 11 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 10 +Miller: -1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 8 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +STOP ENDDEFECT diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/load_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/load_input.txt new file mode 100644 index 0000000..75efa3f --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/load_input.txt @@ -0,0 +1,145 @@ +*Loading History File +iLoadStages: 7 ! Number of loading conditions +iLoadDurationInSteps: 1 ! (0=Change conditions by time intervals, 1=Change conditions by step intervals) + +>>>>>>>>>>>Load Condition 1<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 2<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 3<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 4<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 5<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 6<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + + +>>>>>>>>>>>Load Condition 7<<<<<<<<<<<<<<<<< +Duration: 100000000000 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/material_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/material_input.txt new file mode 100644 index 0000000..acc67bd --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/material_input.txt @@ -0,0 +1,23 @@ +*------------------------------------------------------------------------------------------------------------------------ +* Material properties +*------------------------------------------------------------------------------------------------------------------------ +numMaterials: 1 ! Number of Materials +>>>>>>>>>>>>MATERIAL 1: Al <<<<<<<<<<<<<<<<<<<<<<< ! One material block for each of numMaterials +*Elastic stiffness of single crystal (MPa) + 114651.0 59919.0 59919.0 0. 0. 0. + 59919.0 114651.0 59919.0 0. 0. 0. + 59919.0 59919.0 114651.0 0. 0. 0. + 0. 0. 0. 30767.0 0. 0. + 0. 0. 0. 0. 30767.0 0. + 0. 0. 0. 0. 0. 30767.0 +crystaltype: 1 ! (1 FCC; 2 BCC; 3 HCP; 4 HCP1; 5 HCP2; 0 User defined) +Latticeparameter: 4.05D-10 ! Lattice spacing (m) +Latticeratios: 3.21 3.21 5.21 ! Lattice ratios for HCP +Latticeangles: 90. 90. 120. ! Lattice angles for HCP (deg) +* Pierls Barrier (MPa), mobility law, Edge and Screw mobilities (Pa.s) for slip modes +nslipmodes: 1 ! Number of active slip modes +active: 1 ! Ids of the active slip modes +110: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of close packed slip +default: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of default modes e.g. junctions +a_core: 0.5d0 ! Dislocation core radius parameter (lattice units) +iSolidPhase: 1 ! 1=>Solid , 0=>non-solid (dislocations vanish) \ No newline at end of file diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/run.sh new file mode 100755 index 0000000..91d700b --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +#Clean and Run shell script + +if [ -z $1 ] +then + echo "ERROR: You must enter the number of processors to use" +else + mkdir -p nodes segs segs/spline fields debug past + echo "Removing nodes..." + cd nodes/ + rm *.* + echo "Removing segments..." + cd ../segs/ + rm *.* + cd spline/ + rm *.* + echo "Removing fields..." + cd ../../fields/ + rm *.* + echo "Removing debug files..." + cd ../debug/ + rm *.* + echo "Run program" + cd ../ + rm fort.* + rm *.dat + rm PFTimes* + rm fr_log + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 +fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/simulation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/simulation_input.txt new file mode 100644 index 0000000..4b17a8d --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/simulation_input.txt @@ -0,0 +1,44 @@ +*------------------------------------------------------------------------------------------------------------------------ +* New simulation or Restart previous simulation +*------------------------------------------------------------------------------------------------------------------------ +newSimulation: 1 ! Restart simulation (=0) +ILOOP_TIME: 12001 ! Number of simulation steps +DTIME: 1.D-13 1.0D-13 ! Max/Min time step increment (s) +*------------------------------------------------------------------------------------------------------------------------ +* Simulated Volume information +*------------------------------------------------------------------------------------------------------------------------ +volume: 2688 2688 336 ! Simulation size (x,y) in lattice size +fourierPoints: 64 64 8 ! Number of Fourier points in each direction +iGeometry: 1 84 1.d2 ! (0=Bulk,1=Thin Film,2=Micropillar), vacuum width & stiffness ratio +numlayers: 1 ! Number of layers +>>>>>>>>>>LAYER 1: Al<<<<<<<<<<<<<< ! Layer id and description +thickness: 1.0 ! Layer thickness (z) relative to box +material: 1 ! ID of base material for this layer +numgrains: 1 ! Number of grains in the layer +*Grain ID, Grain seed, and Grain euler angles (ZXZ convention) for specifying the grain structure +grain1 1 1000 1000 1000 1.83195373769792 0.640522312679425 0.463647609000806 +iRandomGrains: 0 ! Number of randomly positioned grains +*------------------------------------------------------------------------------------------------------------------------ +* Simulation conditions and physics packages +*------------------------------------------------------------------------------------------------------------------------ +iPrecipitates: 0 ! Precipitates +iLatentCoef: 0 ! Coefficent for latent hardening simulations +iDiffraction: 0 ! XRD line analysis frequency +iTranmission: 0 ! Transmission at boundaries +iCrossSlip: 0 ! Cross-slip +iChemistry 2 ! Chemistry solutions (1=chemistry, 2=chemistry+climb) +iInteraction: 1 ! Dislocations interactions +iInertial: 0 ! Inertial forces for high strain-rates +iShortRange: 1 ! Neighbors stress calculation (always set to 1 for simulations) +iNLMobility: 0 +iMPF: 0 +*------------------------------------------------------------------------------------------------------------------------ +* Outputs +*------------------------------------------------------------------------------------------------------------------------ +iOutFreq: 2000 ! Output dislocations and macroscopic data frequency +iPastFreq: 2000 ! Output past files (for restarting simuations) frequency +ioutInt: 100000 ! Output full field Strains and stresses frequency +iDebugMode: 0 ! Debug mode option (1: writes everything, 0: writes nothing) +*------------------------------------------------------------------------------------------------------------------------ +* Optional inputs (unstructured) +*------------------------------------------------------------------------------------------------------------------------ diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/Chemistry.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/Chemistry.txt new file mode 100644 index 0000000..49b0396 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/Chemistry.txt @@ -0,0 +1,18 @@ +CHEMISTRY INPUT FILE +species 1 + +*****Vacancy type defect***** +Name: Vacancy +Density: 4.67e-4 +Prefactor: 1.71e-4 +Source: 0.d0 +Formation: 0.61 +Migration: 0.67 +AtomMass: -1 +Absorbable: T +DipoleTensor: + -2.62 0.0 0.0 + 0.0 -2.62 0.0 + 0.0 0.0 -2.62 + +END FILE diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/dislocation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/dislocation_input.txt new file mode 100644 index 0000000..009851c --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/dislocation_input.txt @@ -0,0 +1,109 @@ +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 19 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 20 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 22 +Miller: 1.d00 -1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 19 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 18 +Miller: 1.d00 1.d00 -1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 18 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 20 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 19 +Miller: -1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 19 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +STOP ENDDEFECT diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/load_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/load_input.txt new file mode 100644 index 0000000..75efa3f --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/load_input.txt @@ -0,0 +1,145 @@ +*Loading History File +iLoadStages: 7 ! Number of loading conditions +iLoadDurationInSteps: 1 ! (0=Change conditions by time intervals, 1=Change conditions by step intervals) + +>>>>>>>>>>>Load Condition 1<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 2<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 3<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 4<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 5<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 6<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + + +>>>>>>>>>>>Load Condition 7<<<<<<<<<<<<<<<<< +Duration: 100000000000 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/material_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/material_input.txt new file mode 100644 index 0000000..acc67bd --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/material_input.txt @@ -0,0 +1,23 @@ +*------------------------------------------------------------------------------------------------------------------------ +* Material properties +*------------------------------------------------------------------------------------------------------------------------ +numMaterials: 1 ! Number of Materials +>>>>>>>>>>>>MATERIAL 1: Al <<<<<<<<<<<<<<<<<<<<<<< ! One material block for each of numMaterials +*Elastic stiffness of single crystal (MPa) + 114651.0 59919.0 59919.0 0. 0. 0. + 59919.0 114651.0 59919.0 0. 0. 0. + 59919.0 59919.0 114651.0 0. 0. 0. + 0. 0. 0. 30767.0 0. 0. + 0. 0. 0. 0. 30767.0 0. + 0. 0. 0. 0. 0. 30767.0 +crystaltype: 1 ! (1 FCC; 2 BCC; 3 HCP; 4 HCP1; 5 HCP2; 0 User defined) +Latticeparameter: 4.05D-10 ! Lattice spacing (m) +Latticeratios: 3.21 3.21 5.21 ! Lattice ratios for HCP +Latticeangles: 90. 90. 120. ! Lattice angles for HCP (deg) +* Pierls Barrier (MPa), mobility law, Edge and Screw mobilities (Pa.s) for slip modes +nslipmodes: 1 ! Number of active slip modes +active: 1 ! Ids of the active slip modes +110: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of close packed slip +default: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of default modes e.g. junctions +a_core: 0.5d0 ! Dislocation core radius parameter (lattice units) +iSolidPhase: 1 ! 1=>Solid , 0=>non-solid (dislocations vanish) \ No newline at end of file diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/run.sh new file mode 100755 index 0000000..91d700b --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +#Clean and Run shell script + +if [ -z $1 ] +then + echo "ERROR: You must enter the number of processors to use" +else + mkdir -p nodes segs segs/spline fields debug past + echo "Removing nodes..." + cd nodes/ + rm *.* + echo "Removing segments..." + cd ../segs/ + rm *.* + cd spline/ + rm *.* + echo "Removing fields..." + cd ../../fields/ + rm *.* + echo "Removing debug files..." + cd ../debug/ + rm *.* + echo "Run program" + cd ../ + rm fort.* + rm *.dat + rm PFTimes* + rm fr_log + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 +fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/simulation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/simulation_input.txt new file mode 100644 index 0000000..4b17a8d --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/simulation_input.txt @@ -0,0 +1,44 @@ +*------------------------------------------------------------------------------------------------------------------------ +* New simulation or Restart previous simulation +*------------------------------------------------------------------------------------------------------------------------ +newSimulation: 1 ! Restart simulation (=0) +ILOOP_TIME: 12001 ! Number of simulation steps +DTIME: 1.D-13 1.0D-13 ! Max/Min time step increment (s) +*------------------------------------------------------------------------------------------------------------------------ +* Simulated Volume information +*------------------------------------------------------------------------------------------------------------------------ +volume: 2688 2688 336 ! Simulation size (x,y) in lattice size +fourierPoints: 64 64 8 ! Number of Fourier points in each direction +iGeometry: 1 84 1.d2 ! (0=Bulk,1=Thin Film,2=Micropillar), vacuum width & stiffness ratio +numlayers: 1 ! Number of layers +>>>>>>>>>>LAYER 1: Al<<<<<<<<<<<<<< ! Layer id and description +thickness: 1.0 ! Layer thickness (z) relative to box +material: 1 ! ID of base material for this layer +numgrains: 1 ! Number of grains in the layer +*Grain ID, Grain seed, and Grain euler angles (ZXZ convention) for specifying the grain structure +grain1 1 1000 1000 1000 1.83195373769792 0.640522312679425 0.463647609000806 +iRandomGrains: 0 ! Number of randomly positioned grains +*------------------------------------------------------------------------------------------------------------------------ +* Simulation conditions and physics packages +*------------------------------------------------------------------------------------------------------------------------ +iPrecipitates: 0 ! Precipitates +iLatentCoef: 0 ! Coefficent for latent hardening simulations +iDiffraction: 0 ! XRD line analysis frequency +iTranmission: 0 ! Transmission at boundaries +iCrossSlip: 0 ! Cross-slip +iChemistry 2 ! Chemistry solutions (1=chemistry, 2=chemistry+climb) +iInteraction: 1 ! Dislocations interactions +iInertial: 0 ! Inertial forces for high strain-rates +iShortRange: 1 ! Neighbors stress calculation (always set to 1 for simulations) +iNLMobility: 0 +iMPF: 0 +*------------------------------------------------------------------------------------------------------------------------ +* Outputs +*------------------------------------------------------------------------------------------------------------------------ +iOutFreq: 2000 ! Output dislocations and macroscopic data frequency +iPastFreq: 2000 ! Output past files (for restarting simuations) frequency +ioutInt: 100000 ! Output full field Strains and stresses frequency +iDebugMode: 0 ! Debug mode option (1: writes everything, 0: writes nothing) +*------------------------------------------------------------------------------------------------------------------------ +* Optional inputs (unstructured) +*------------------------------------------------------------------------------------------------------------------------ diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/Chemistry.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/Chemistry.txt new file mode 100644 index 0000000..49b0396 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/Chemistry.txt @@ -0,0 +1,18 @@ +CHEMISTRY INPUT FILE +species 1 + +*****Vacancy type defect***** +Name: Vacancy +Density: 4.67e-4 +Prefactor: 1.71e-4 +Source: 0.d0 +Formation: 0.61 +Migration: 0.67 +AtomMass: -1 +Absorbable: T +DipoleTensor: + -2.62 0.0 0.0 + 0.0 -2.62 0.0 + 0.0 0.0 -2.62 + +END FILE diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/dislocation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/dislocation_input.txt new file mode 100644 index 0000000..caef0cd --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/dislocation_input.txt @@ -0,0 +1,109 @@ +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 31 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 28 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 31 +Miller: 1.d00 -1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 31 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 29 +Miller: 1.d00 1.d00 -1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 31 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: -1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +STOP ENDDEFECT diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/load_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/load_input.txt new file mode 100644 index 0000000..75efa3f --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/load_input.txt @@ -0,0 +1,145 @@ +*Loading History File +iLoadStages: 7 ! Number of loading conditions +iLoadDurationInSteps: 1 ! (0=Change conditions by time intervals, 1=Change conditions by step intervals) + +>>>>>>>>>>>Load Condition 1<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 2<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 3<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 4<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 5<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 6<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + + +>>>>>>>>>>>Load Condition 7<<<<<<<<<<<<<<<<< +Duration: 100000000000 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/material_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/material_input.txt new file mode 100644 index 0000000..acc67bd --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/material_input.txt @@ -0,0 +1,23 @@ +*------------------------------------------------------------------------------------------------------------------------ +* Material properties +*------------------------------------------------------------------------------------------------------------------------ +numMaterials: 1 ! Number of Materials +>>>>>>>>>>>>MATERIAL 1: Al <<<<<<<<<<<<<<<<<<<<<<< ! One material block for each of numMaterials +*Elastic stiffness of single crystal (MPa) + 114651.0 59919.0 59919.0 0. 0. 0. + 59919.0 114651.0 59919.0 0. 0. 0. + 59919.0 59919.0 114651.0 0. 0. 0. + 0. 0. 0. 30767.0 0. 0. + 0. 0. 0. 0. 30767.0 0. + 0. 0. 0. 0. 0. 30767.0 +crystaltype: 1 ! (1 FCC; 2 BCC; 3 HCP; 4 HCP1; 5 HCP2; 0 User defined) +Latticeparameter: 4.05D-10 ! Lattice spacing (m) +Latticeratios: 3.21 3.21 5.21 ! Lattice ratios for HCP +Latticeangles: 90. 90. 120. ! Lattice angles for HCP (deg) +* Pierls Barrier (MPa), mobility law, Edge and Screw mobilities (Pa.s) for slip modes +nslipmodes: 1 ! Number of active slip modes +active: 1 ! Ids of the active slip modes +110: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of close packed slip +default: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of default modes e.g. junctions +a_core: 0.5d0 ! Dislocation core radius parameter (lattice units) +iSolidPhase: 1 ! 1=>Solid , 0=>non-solid (dislocations vanish) \ No newline at end of file diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/run.sh new file mode 100755 index 0000000..91d700b --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +#Clean and Run shell script + +if [ -z $1 ] +then + echo "ERROR: You must enter the number of processors to use" +else + mkdir -p nodes segs segs/spline fields debug past + echo "Removing nodes..." + cd nodes/ + rm *.* + echo "Removing segments..." + cd ../segs/ + rm *.* + cd spline/ + rm *.* + echo "Removing fields..." + cd ../../fields/ + rm *.* + echo "Removing debug files..." + cd ../debug/ + rm *.* + echo "Run program" + cd ../ + rm fort.* + rm *.dat + rm PFTimes* + rm fr_log + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 +fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/simulation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/simulation_input.txt new file mode 100644 index 0000000..4b17a8d --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/simulation_input.txt @@ -0,0 +1,44 @@ +*------------------------------------------------------------------------------------------------------------------------ +* New simulation or Restart previous simulation +*------------------------------------------------------------------------------------------------------------------------ +newSimulation: 1 ! Restart simulation (=0) +ILOOP_TIME: 12001 ! Number of simulation steps +DTIME: 1.D-13 1.0D-13 ! Max/Min time step increment (s) +*------------------------------------------------------------------------------------------------------------------------ +* Simulated Volume information +*------------------------------------------------------------------------------------------------------------------------ +volume: 2688 2688 336 ! Simulation size (x,y) in lattice size +fourierPoints: 64 64 8 ! Number of Fourier points in each direction +iGeometry: 1 84 1.d2 ! (0=Bulk,1=Thin Film,2=Micropillar), vacuum width & stiffness ratio +numlayers: 1 ! Number of layers +>>>>>>>>>>LAYER 1: Al<<<<<<<<<<<<<< ! Layer id and description +thickness: 1.0 ! Layer thickness (z) relative to box +material: 1 ! ID of base material for this layer +numgrains: 1 ! Number of grains in the layer +*Grain ID, Grain seed, and Grain euler angles (ZXZ convention) for specifying the grain structure +grain1 1 1000 1000 1000 1.83195373769792 0.640522312679425 0.463647609000806 +iRandomGrains: 0 ! Number of randomly positioned grains +*------------------------------------------------------------------------------------------------------------------------ +* Simulation conditions and physics packages +*------------------------------------------------------------------------------------------------------------------------ +iPrecipitates: 0 ! Precipitates +iLatentCoef: 0 ! Coefficent for latent hardening simulations +iDiffraction: 0 ! XRD line analysis frequency +iTranmission: 0 ! Transmission at boundaries +iCrossSlip: 0 ! Cross-slip +iChemistry 2 ! Chemistry solutions (1=chemistry, 2=chemistry+climb) +iInteraction: 1 ! Dislocations interactions +iInertial: 0 ! Inertial forces for high strain-rates +iShortRange: 1 ! Neighbors stress calculation (always set to 1 for simulations) +iNLMobility: 0 +iMPF: 0 +*------------------------------------------------------------------------------------------------------------------------ +* Outputs +*------------------------------------------------------------------------------------------------------------------------ +iOutFreq: 2000 ! Output dislocations and macroscopic data frequency +iPastFreq: 2000 ! Output past files (for restarting simuations) frequency +ioutInt: 100000 ! Output full field Strains and stresses frequency +iDebugMode: 0 ! Debug mode option (1: writes everything, 0: writes nothing) +*------------------------------------------------------------------------------------------------------------------------ +* Optional inputs (unstructured) +*------------------------------------------------------------------------------------------------------------------------ diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/Chemistry.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/Chemistry.txt new file mode 100644 index 0000000..49b0396 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/Chemistry.txt @@ -0,0 +1,18 @@ +CHEMISTRY INPUT FILE +species 1 + +*****Vacancy type defect***** +Name: Vacancy +Density: 4.67e-4 +Prefactor: 1.71e-4 +Source: 0.d0 +Formation: 0.61 +Migration: 0.67 +AtomMass: -1 +Absorbable: T +DipoleTensor: + -2.62 0.0 0.0 + 0.0 -2.62 0.0 + 0.0 0.0 -2.62 + +END FILE diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/dislocation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/dislocation_input.txt new file mode 100644 index 0000000..65528e1 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/dislocation_input.txt @@ -0,0 +1,109 @@ +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 35 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 36 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 35 +Miller: 1.d00 -1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 34 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 36 +Miller: 1.d00 1.d00 -1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 36 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 37 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 34 +Miller: -1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 36 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +STOP ENDDEFECT diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/load_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/load_input.txt new file mode 100644 index 0000000..75efa3f --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/load_input.txt @@ -0,0 +1,145 @@ +*Loading History File +iLoadStages: 7 ! Number of loading conditions +iLoadDurationInSteps: 1 ! (0=Change conditions by time intervals, 1=Change conditions by step intervals) + +>>>>>>>>>>>Load Condition 1<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 2<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 3<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 4<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 5<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 6<<<<<<<<<<<<<<<<< +Duration: 30 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + + +>>>>>>>>>>>Load Condition 7<<<<<<<<<<<<<<<<< +Duration: 100000000000 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/material_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/material_input.txt new file mode 100644 index 0000000..acc67bd --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/material_input.txt @@ -0,0 +1,23 @@ +*------------------------------------------------------------------------------------------------------------------------ +* Material properties +*------------------------------------------------------------------------------------------------------------------------ +numMaterials: 1 ! Number of Materials +>>>>>>>>>>>>MATERIAL 1: Al <<<<<<<<<<<<<<<<<<<<<<< ! One material block for each of numMaterials +*Elastic stiffness of single crystal (MPa) + 114651.0 59919.0 59919.0 0. 0. 0. + 59919.0 114651.0 59919.0 0. 0. 0. + 59919.0 59919.0 114651.0 0. 0. 0. + 0. 0. 0. 30767.0 0. 0. + 0. 0. 0. 0. 30767.0 0. + 0. 0. 0. 0. 0. 30767.0 +crystaltype: 1 ! (1 FCC; 2 BCC; 3 HCP; 4 HCP1; 5 HCP2; 0 User defined) +Latticeparameter: 4.05D-10 ! Lattice spacing (m) +Latticeratios: 3.21 3.21 5.21 ! Lattice ratios for HCP +Latticeangles: 90. 90. 120. ! Lattice angles for HCP (deg) +* Pierls Barrier (MPa), mobility law, Edge and Screw mobilities (Pa.s) for slip modes +nslipmodes: 1 ! Number of active slip modes +active: 1 ! Ids of the active slip modes +110: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of close packed slip +default: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of default modes e.g. junctions +a_core: 0.5d0 ! Dislocation core radius parameter (lattice units) +iSolidPhase: 1 ! 1=>Solid , 0=>non-solid (dislocations vanish) \ No newline at end of file diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/run.sh new file mode 100755 index 0000000..91d700b --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +#Clean and Run shell script + +if [ -z $1 ] +then + echo "ERROR: You must enter the number of processors to use" +else + mkdir -p nodes segs segs/spline fields debug past + echo "Removing nodes..." + cd nodes/ + rm *.* + echo "Removing segments..." + cd ../segs/ + rm *.* + cd spline/ + rm *.* + echo "Removing fields..." + cd ../../fields/ + rm *.* + echo "Removing debug files..." + cd ../debug/ + rm *.* + echo "Run program" + cd ../ + rm fort.* + rm *.dat + rm PFTimes* + rm fr_log + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 +fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/simulation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/simulation_input.txt new file mode 100644 index 0000000..4b17a8d --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/simulation_input.txt @@ -0,0 +1,44 @@ +*------------------------------------------------------------------------------------------------------------------------ +* New simulation or Restart previous simulation +*------------------------------------------------------------------------------------------------------------------------ +newSimulation: 1 ! Restart simulation (=0) +ILOOP_TIME: 12001 ! Number of simulation steps +DTIME: 1.D-13 1.0D-13 ! Max/Min time step increment (s) +*------------------------------------------------------------------------------------------------------------------------ +* Simulated Volume information +*------------------------------------------------------------------------------------------------------------------------ +volume: 2688 2688 336 ! Simulation size (x,y) in lattice size +fourierPoints: 64 64 8 ! Number of Fourier points in each direction +iGeometry: 1 84 1.d2 ! (0=Bulk,1=Thin Film,2=Micropillar), vacuum width & stiffness ratio +numlayers: 1 ! Number of layers +>>>>>>>>>>LAYER 1: Al<<<<<<<<<<<<<< ! Layer id and description +thickness: 1.0 ! Layer thickness (z) relative to box +material: 1 ! ID of base material for this layer +numgrains: 1 ! Number of grains in the layer +*Grain ID, Grain seed, and Grain euler angles (ZXZ convention) for specifying the grain structure +grain1 1 1000 1000 1000 1.83195373769792 0.640522312679425 0.463647609000806 +iRandomGrains: 0 ! Number of randomly positioned grains +*------------------------------------------------------------------------------------------------------------------------ +* Simulation conditions and physics packages +*------------------------------------------------------------------------------------------------------------------------ +iPrecipitates: 0 ! Precipitates +iLatentCoef: 0 ! Coefficent for latent hardening simulations +iDiffraction: 0 ! XRD line analysis frequency +iTranmission: 0 ! Transmission at boundaries +iCrossSlip: 0 ! Cross-slip +iChemistry 2 ! Chemistry solutions (1=chemistry, 2=chemistry+climb) +iInteraction: 1 ! Dislocations interactions +iInertial: 0 ! Inertial forces for high strain-rates +iShortRange: 1 ! Neighbors stress calculation (always set to 1 for simulations) +iNLMobility: 0 +iMPF: 0 +*------------------------------------------------------------------------------------------------------------------------ +* Outputs +*------------------------------------------------------------------------------------------------------------------------ +iOutFreq: 2000 ! Output dislocations and macroscopic data frequency +iPastFreq: 2000 ! Output past files (for restarting simuations) frequency +ioutInt: 100000 ! Output full field Strains and stresses frequency +iDebugMode: 0 ! Debug mode option (1: writes everything, 0: writes nothing) +*------------------------------------------------------------------------------------------------------------------------ +* Optional inputs (unstructured) +*------------------------------------------------------------------------------------------------------------------------ diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/Chemistry.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/Chemistry.txt new file mode 100644 index 0000000..49b0396 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/Chemistry.txt @@ -0,0 +1,18 @@ +CHEMISTRY INPUT FILE +species 1 + +*****Vacancy type defect***** +Name: Vacancy +Density: 4.67e-4 +Prefactor: 1.71e-4 +Source: 0.d0 +Formation: 0.61 +Migration: 0.67 +AtomMass: -1 +Absorbable: T +DipoleTensor: + -2.62 0.0 0.0 + 0.0 -2.62 0.0 + 0.0 0.0 -2.62 + +END FILE diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/dislocation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/dislocation_input.txt new file mode 100644 index 0000000..cf938c9 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/dislocation_input.txt @@ -0,0 +1,109 @@ +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 10 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 12 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 12 +Miller: 1.d00 -1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 11 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 9 +Miller: 1.d00 1.d00 -1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 11 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 13 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 13 +Miller: -1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 11 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +STOP ENDDEFECT diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/load_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/load_input.txt new file mode 100644 index 0000000..3bd70fa --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/load_input.txt @@ -0,0 +1,145 @@ +*Loading History File +iLoadStages: 7 ! Number of loading conditions +iLoadDurationInSteps: 1 ! (0=Change conditions by time intervals, 1=Change conditions by step intervals) + +>>>>>>>>>>>Load Condition 1<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 2<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 3<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 4<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 5<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 6<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + + +>>>>>>>>>>>Load Condition 7<<<<<<<<<<<<<<<<< +Duration: 100000000000 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/material_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/material_input.txt new file mode 100644 index 0000000..acc67bd --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/material_input.txt @@ -0,0 +1,23 @@ +*------------------------------------------------------------------------------------------------------------------------ +* Material properties +*------------------------------------------------------------------------------------------------------------------------ +numMaterials: 1 ! Number of Materials +>>>>>>>>>>>>MATERIAL 1: Al <<<<<<<<<<<<<<<<<<<<<<< ! One material block for each of numMaterials +*Elastic stiffness of single crystal (MPa) + 114651.0 59919.0 59919.0 0. 0. 0. + 59919.0 114651.0 59919.0 0. 0. 0. + 59919.0 59919.0 114651.0 0. 0. 0. + 0. 0. 0. 30767.0 0. 0. + 0. 0. 0. 0. 30767.0 0. + 0. 0. 0. 0. 0. 30767.0 +crystaltype: 1 ! (1 FCC; 2 BCC; 3 HCP; 4 HCP1; 5 HCP2; 0 User defined) +Latticeparameter: 4.05D-10 ! Lattice spacing (m) +Latticeratios: 3.21 3.21 5.21 ! Lattice ratios for HCP +Latticeangles: 90. 90. 120. ! Lattice angles for HCP (deg) +* Pierls Barrier (MPa), mobility law, Edge and Screw mobilities (Pa.s) for slip modes +nslipmodes: 1 ! Number of active slip modes +active: 1 ! Ids of the active slip modes +110: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of close packed slip +default: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of default modes e.g. junctions +a_core: 0.5d0 ! Dislocation core radius parameter (lattice units) +iSolidPhase: 1 ! 1=>Solid , 0=>non-solid (dislocations vanish) \ No newline at end of file diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/run.sh new file mode 100755 index 0000000..91d700b --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +#Clean and Run shell script + +if [ -z $1 ] +then + echo "ERROR: You must enter the number of processors to use" +else + mkdir -p nodes segs segs/spline fields debug past + echo "Removing nodes..." + cd nodes/ + rm *.* + echo "Removing segments..." + cd ../segs/ + rm *.* + cd spline/ + rm *.* + echo "Removing fields..." + cd ../../fields/ + rm *.* + echo "Removing debug files..." + cd ../debug/ + rm *.* + echo "Run program" + cd ../ + rm fort.* + rm *.dat + rm PFTimes* + rm fr_log + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 +fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/simulation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/simulation_input.txt new file mode 100644 index 0000000..4b17a8d --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/simulation_input.txt @@ -0,0 +1,44 @@ +*------------------------------------------------------------------------------------------------------------------------ +* New simulation or Restart previous simulation +*------------------------------------------------------------------------------------------------------------------------ +newSimulation: 1 ! Restart simulation (=0) +ILOOP_TIME: 12001 ! Number of simulation steps +DTIME: 1.D-13 1.0D-13 ! Max/Min time step increment (s) +*------------------------------------------------------------------------------------------------------------------------ +* Simulated Volume information +*------------------------------------------------------------------------------------------------------------------------ +volume: 2688 2688 336 ! Simulation size (x,y) in lattice size +fourierPoints: 64 64 8 ! Number of Fourier points in each direction +iGeometry: 1 84 1.d2 ! (0=Bulk,1=Thin Film,2=Micropillar), vacuum width & stiffness ratio +numlayers: 1 ! Number of layers +>>>>>>>>>>LAYER 1: Al<<<<<<<<<<<<<< ! Layer id and description +thickness: 1.0 ! Layer thickness (z) relative to box +material: 1 ! ID of base material for this layer +numgrains: 1 ! Number of grains in the layer +*Grain ID, Grain seed, and Grain euler angles (ZXZ convention) for specifying the grain structure +grain1 1 1000 1000 1000 1.83195373769792 0.640522312679425 0.463647609000806 +iRandomGrains: 0 ! Number of randomly positioned grains +*------------------------------------------------------------------------------------------------------------------------ +* Simulation conditions and physics packages +*------------------------------------------------------------------------------------------------------------------------ +iPrecipitates: 0 ! Precipitates +iLatentCoef: 0 ! Coefficent for latent hardening simulations +iDiffraction: 0 ! XRD line analysis frequency +iTranmission: 0 ! Transmission at boundaries +iCrossSlip: 0 ! Cross-slip +iChemistry 2 ! Chemistry solutions (1=chemistry, 2=chemistry+climb) +iInteraction: 1 ! Dislocations interactions +iInertial: 0 ! Inertial forces for high strain-rates +iShortRange: 1 ! Neighbors stress calculation (always set to 1 for simulations) +iNLMobility: 0 +iMPF: 0 +*------------------------------------------------------------------------------------------------------------------------ +* Outputs +*------------------------------------------------------------------------------------------------------------------------ +iOutFreq: 2000 ! Output dislocations and macroscopic data frequency +iPastFreq: 2000 ! Output past files (for restarting simuations) frequency +ioutInt: 100000 ! Output full field Strains and stresses frequency +iDebugMode: 0 ! Debug mode option (1: writes everything, 0: writes nothing) +*------------------------------------------------------------------------------------------------------------------------ +* Optional inputs (unstructured) +*------------------------------------------------------------------------------------------------------------------------ diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/Chemistry.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/Chemistry.txt new file mode 100644 index 0000000..49b0396 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/Chemistry.txt @@ -0,0 +1,18 @@ +CHEMISTRY INPUT FILE +species 1 + +*****Vacancy type defect***** +Name: Vacancy +Density: 4.67e-4 +Prefactor: 1.71e-4 +Source: 0.d0 +Formation: 0.61 +Migration: 0.67 +AtomMass: -1 +Absorbable: T +DipoleTensor: + -2.62 0.0 0.0 + 0.0 -2.62 0.0 + 0.0 0.0 -2.62 + +END FILE diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/dislocation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/dislocation_input.txt new file mode 100644 index 0000000..d0d4cd8 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/dislocation_input.txt @@ -0,0 +1,109 @@ +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 19 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 20 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 20 +Miller: 1.d00 -1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 20 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 20 +Miller: 1.d00 1.d00 -1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 20 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 20 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 20 +Miller: -1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 21 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +STOP ENDDEFECT diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/load_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/load_input.txt new file mode 100644 index 0000000..3bd70fa --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/load_input.txt @@ -0,0 +1,145 @@ +*Loading History File +iLoadStages: 7 ! Number of loading conditions +iLoadDurationInSteps: 1 ! (0=Change conditions by time intervals, 1=Change conditions by step intervals) + +>>>>>>>>>>>Load Condition 1<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 2<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 3<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 4<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 5<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 6<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + + +>>>>>>>>>>>Load Condition 7<<<<<<<<<<<<<<<<< +Duration: 100000000000 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/material_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/material_input.txt new file mode 100644 index 0000000..acc67bd --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/material_input.txt @@ -0,0 +1,23 @@ +*------------------------------------------------------------------------------------------------------------------------ +* Material properties +*------------------------------------------------------------------------------------------------------------------------ +numMaterials: 1 ! Number of Materials +>>>>>>>>>>>>MATERIAL 1: Al <<<<<<<<<<<<<<<<<<<<<<< ! One material block for each of numMaterials +*Elastic stiffness of single crystal (MPa) + 114651.0 59919.0 59919.0 0. 0. 0. + 59919.0 114651.0 59919.0 0. 0. 0. + 59919.0 59919.0 114651.0 0. 0. 0. + 0. 0. 0. 30767.0 0. 0. + 0. 0. 0. 0. 30767.0 0. + 0. 0. 0. 0. 0. 30767.0 +crystaltype: 1 ! (1 FCC; 2 BCC; 3 HCP; 4 HCP1; 5 HCP2; 0 User defined) +Latticeparameter: 4.05D-10 ! Lattice spacing (m) +Latticeratios: 3.21 3.21 5.21 ! Lattice ratios for HCP +Latticeangles: 90. 90. 120. ! Lattice angles for HCP (deg) +* Pierls Barrier (MPa), mobility law, Edge and Screw mobilities (Pa.s) for slip modes +nslipmodes: 1 ! Number of active slip modes +active: 1 ! Ids of the active slip modes +110: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of close packed slip +default: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of default modes e.g. junctions +a_core: 0.5d0 ! Dislocation core radius parameter (lattice units) +iSolidPhase: 1 ! 1=>Solid , 0=>non-solid (dislocations vanish) \ No newline at end of file diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/run.sh new file mode 100755 index 0000000..91d700b --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +#Clean and Run shell script + +if [ -z $1 ] +then + echo "ERROR: You must enter the number of processors to use" +else + mkdir -p nodes segs segs/spline fields debug past + echo "Removing nodes..." + cd nodes/ + rm *.* + echo "Removing segments..." + cd ../segs/ + rm *.* + cd spline/ + rm *.* + echo "Removing fields..." + cd ../../fields/ + rm *.* + echo "Removing debug files..." + cd ../debug/ + rm *.* + echo "Run program" + cd ../ + rm fort.* + rm *.dat + rm PFTimes* + rm fr_log + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 +fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/simulation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/simulation_input.txt new file mode 100644 index 0000000..4b17a8d --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/simulation_input.txt @@ -0,0 +1,44 @@ +*------------------------------------------------------------------------------------------------------------------------ +* New simulation or Restart previous simulation +*------------------------------------------------------------------------------------------------------------------------ +newSimulation: 1 ! Restart simulation (=0) +ILOOP_TIME: 12001 ! Number of simulation steps +DTIME: 1.D-13 1.0D-13 ! Max/Min time step increment (s) +*------------------------------------------------------------------------------------------------------------------------ +* Simulated Volume information +*------------------------------------------------------------------------------------------------------------------------ +volume: 2688 2688 336 ! Simulation size (x,y) in lattice size +fourierPoints: 64 64 8 ! Number of Fourier points in each direction +iGeometry: 1 84 1.d2 ! (0=Bulk,1=Thin Film,2=Micropillar), vacuum width & stiffness ratio +numlayers: 1 ! Number of layers +>>>>>>>>>>LAYER 1: Al<<<<<<<<<<<<<< ! Layer id and description +thickness: 1.0 ! Layer thickness (z) relative to box +material: 1 ! ID of base material for this layer +numgrains: 1 ! Number of grains in the layer +*Grain ID, Grain seed, and Grain euler angles (ZXZ convention) for specifying the grain structure +grain1 1 1000 1000 1000 1.83195373769792 0.640522312679425 0.463647609000806 +iRandomGrains: 0 ! Number of randomly positioned grains +*------------------------------------------------------------------------------------------------------------------------ +* Simulation conditions and physics packages +*------------------------------------------------------------------------------------------------------------------------ +iPrecipitates: 0 ! Precipitates +iLatentCoef: 0 ! Coefficent for latent hardening simulations +iDiffraction: 0 ! XRD line analysis frequency +iTranmission: 0 ! Transmission at boundaries +iCrossSlip: 0 ! Cross-slip +iChemistry 2 ! Chemistry solutions (1=chemistry, 2=chemistry+climb) +iInteraction: 1 ! Dislocations interactions +iInertial: 0 ! Inertial forces for high strain-rates +iShortRange: 1 ! Neighbors stress calculation (always set to 1 for simulations) +iNLMobility: 0 +iMPF: 0 +*------------------------------------------------------------------------------------------------------------------------ +* Outputs +*------------------------------------------------------------------------------------------------------------------------ +iOutFreq: 2000 ! Output dislocations and macroscopic data frequency +iPastFreq: 2000 ! Output past files (for restarting simuations) frequency +ioutInt: 100000 ! Output full field Strains and stresses frequency +iDebugMode: 0 ! Debug mode option (1: writes everything, 0: writes nothing) +*------------------------------------------------------------------------------------------------------------------------ +* Optional inputs (unstructured) +*------------------------------------------------------------------------------------------------------------------------ diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/Chemistry.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/Chemistry.txt new file mode 100644 index 0000000..49b0396 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/Chemistry.txt @@ -0,0 +1,18 @@ +CHEMISTRY INPUT FILE +species 1 + +*****Vacancy type defect***** +Name: Vacancy +Density: 4.67e-4 +Prefactor: 1.71e-4 +Source: 0.d0 +Formation: 0.61 +Migration: 0.67 +AtomMass: -1 +Absorbable: T +DipoleTensor: + -2.62 0.0 0.0 + 0.0 -2.62 0.0 + 0.0 0.0 -2.62 + +END FILE diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/dislocation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/dislocation_input.txt new file mode 100644 index 0000000..00386cb --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/dislocation_input.txt @@ -0,0 +1,109 @@ +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: 1.d00 -1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: 1.d00 1.d00 -1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: -1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +STOP ENDDEFECT diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/load_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/load_input.txt new file mode 100644 index 0000000..3bd70fa --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/load_input.txt @@ -0,0 +1,145 @@ +*Loading History File +iLoadStages: 7 ! Number of loading conditions +iLoadDurationInSteps: 1 ! (0=Change conditions by time intervals, 1=Change conditions by step intervals) + +>>>>>>>>>>>Load Condition 1<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 2<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 3<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 4<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 5<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 6<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + + +>>>>>>>>>>>Load Condition 7<<<<<<<<<<<<<<<<< +Duration: 100000000000 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/material_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/material_input.txt new file mode 100644 index 0000000..acc67bd --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/material_input.txt @@ -0,0 +1,23 @@ +*------------------------------------------------------------------------------------------------------------------------ +* Material properties +*------------------------------------------------------------------------------------------------------------------------ +numMaterials: 1 ! Number of Materials +>>>>>>>>>>>>MATERIAL 1: Al <<<<<<<<<<<<<<<<<<<<<<< ! One material block for each of numMaterials +*Elastic stiffness of single crystal (MPa) + 114651.0 59919.0 59919.0 0. 0. 0. + 59919.0 114651.0 59919.0 0. 0. 0. + 59919.0 59919.0 114651.0 0. 0. 0. + 0. 0. 0. 30767.0 0. 0. + 0. 0. 0. 0. 30767.0 0. + 0. 0. 0. 0. 0. 30767.0 +crystaltype: 1 ! (1 FCC; 2 BCC; 3 HCP; 4 HCP1; 5 HCP2; 0 User defined) +Latticeparameter: 4.05D-10 ! Lattice spacing (m) +Latticeratios: 3.21 3.21 5.21 ! Lattice ratios for HCP +Latticeangles: 90. 90. 120. ! Lattice angles for HCP (deg) +* Pierls Barrier (MPa), mobility law, Edge and Screw mobilities (Pa.s) for slip modes +nslipmodes: 1 ! Number of active slip modes +active: 1 ! Ids of the active slip modes +110: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of close packed slip +default: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of default modes e.g. junctions +a_core: 0.5d0 ! Dislocation core radius parameter (lattice units) +iSolidPhase: 1 ! 1=>Solid , 0=>non-solid (dislocations vanish) \ No newline at end of file diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/run.sh new file mode 100755 index 0000000..91d700b --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +#Clean and Run shell script + +if [ -z $1 ] +then + echo "ERROR: You must enter the number of processors to use" +else + mkdir -p nodes segs segs/spline fields debug past + echo "Removing nodes..." + cd nodes/ + rm *.* + echo "Removing segments..." + cd ../segs/ + rm *.* + cd spline/ + rm *.* + echo "Removing fields..." + cd ../../fields/ + rm *.* + echo "Removing debug files..." + cd ../debug/ + rm *.* + echo "Run program" + cd ../ + rm fort.* + rm *.dat + rm PFTimes* + rm fr_log + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 +fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/simulation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/simulation_input.txt new file mode 100644 index 0000000..4b17a8d --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/simulation_input.txt @@ -0,0 +1,44 @@ +*------------------------------------------------------------------------------------------------------------------------ +* New simulation or Restart previous simulation +*------------------------------------------------------------------------------------------------------------------------ +newSimulation: 1 ! Restart simulation (=0) +ILOOP_TIME: 12001 ! Number of simulation steps +DTIME: 1.D-13 1.0D-13 ! Max/Min time step increment (s) +*------------------------------------------------------------------------------------------------------------------------ +* Simulated Volume information +*------------------------------------------------------------------------------------------------------------------------ +volume: 2688 2688 336 ! Simulation size (x,y) in lattice size +fourierPoints: 64 64 8 ! Number of Fourier points in each direction +iGeometry: 1 84 1.d2 ! (0=Bulk,1=Thin Film,2=Micropillar), vacuum width & stiffness ratio +numlayers: 1 ! Number of layers +>>>>>>>>>>LAYER 1: Al<<<<<<<<<<<<<< ! Layer id and description +thickness: 1.0 ! Layer thickness (z) relative to box +material: 1 ! ID of base material for this layer +numgrains: 1 ! Number of grains in the layer +*Grain ID, Grain seed, and Grain euler angles (ZXZ convention) for specifying the grain structure +grain1 1 1000 1000 1000 1.83195373769792 0.640522312679425 0.463647609000806 +iRandomGrains: 0 ! Number of randomly positioned grains +*------------------------------------------------------------------------------------------------------------------------ +* Simulation conditions and physics packages +*------------------------------------------------------------------------------------------------------------------------ +iPrecipitates: 0 ! Precipitates +iLatentCoef: 0 ! Coefficent for latent hardening simulations +iDiffraction: 0 ! XRD line analysis frequency +iTranmission: 0 ! Transmission at boundaries +iCrossSlip: 0 ! Cross-slip +iChemistry 2 ! Chemistry solutions (1=chemistry, 2=chemistry+climb) +iInteraction: 1 ! Dislocations interactions +iInertial: 0 ! Inertial forces for high strain-rates +iShortRange: 1 ! Neighbors stress calculation (always set to 1 for simulations) +iNLMobility: 0 +iMPF: 0 +*------------------------------------------------------------------------------------------------------------------------ +* Outputs +*------------------------------------------------------------------------------------------------------------------------ +iOutFreq: 2000 ! Output dislocations and macroscopic data frequency +iPastFreq: 2000 ! Output past files (for restarting simuations) frequency +ioutInt: 100000 ! Output full field Strains and stresses frequency +iDebugMode: 0 ! Debug mode option (1: writes everything, 0: writes nothing) +*------------------------------------------------------------------------------------------------------------------------ +* Optional inputs (unstructured) +*------------------------------------------------------------------------------------------------------------------------ diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/Chemistry.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/Chemistry.txt new file mode 100644 index 0000000..49b0396 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/Chemistry.txt @@ -0,0 +1,18 @@ +CHEMISTRY INPUT FILE +species 1 + +*****Vacancy type defect***** +Name: Vacancy +Density: 4.67e-4 +Prefactor: 1.71e-4 +Source: 0.d0 +Formation: 0.61 +Migration: 0.67 +AtomMass: -1 +Absorbable: T +DipoleTensor: + -2.62 0.0 0.0 + 0.0 -2.62 0.0 + 0.0 0.0 -2.62 + +END FILE diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/dislocation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/dislocation_input.txt new file mode 100644 index 0000000..2b8cf54 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/dislocation_input.txt @@ -0,0 +1,109 @@ +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 34 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 36 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 35 +Miller: 1.d00 -1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 34 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 35 +Miller: 1.d00 1.d00 -1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 35 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 35 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 35 +Miller: -1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 35 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +STOP ENDDEFECT diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/load_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/load_input.txt new file mode 100644 index 0000000..3bd70fa --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/load_input.txt @@ -0,0 +1,145 @@ +*Loading History File +iLoadStages: 7 ! Number of loading conditions +iLoadDurationInSteps: 1 ! (0=Change conditions by time intervals, 1=Change conditions by step intervals) + +>>>>>>>>>>>Load Condition 1<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 2<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 3<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 4<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 5<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 6<<<<<<<<<<<<<<<<< +Duration: 50 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + + +>>>>>>>>>>>Load Condition 7<<<<<<<<<<<<<<<<< +Duration: 100000000000 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/material_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/material_input.txt new file mode 100644 index 0000000..acc67bd --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/material_input.txt @@ -0,0 +1,23 @@ +*------------------------------------------------------------------------------------------------------------------------ +* Material properties +*------------------------------------------------------------------------------------------------------------------------ +numMaterials: 1 ! Number of Materials +>>>>>>>>>>>>MATERIAL 1: Al <<<<<<<<<<<<<<<<<<<<<<< ! One material block for each of numMaterials +*Elastic stiffness of single crystal (MPa) + 114651.0 59919.0 59919.0 0. 0. 0. + 59919.0 114651.0 59919.0 0. 0. 0. + 59919.0 59919.0 114651.0 0. 0. 0. + 0. 0. 0. 30767.0 0. 0. + 0. 0. 0. 0. 30767.0 0. + 0. 0. 0. 0. 0. 30767.0 +crystaltype: 1 ! (1 FCC; 2 BCC; 3 HCP; 4 HCP1; 5 HCP2; 0 User defined) +Latticeparameter: 4.05D-10 ! Lattice spacing (m) +Latticeratios: 3.21 3.21 5.21 ! Lattice ratios for HCP +Latticeangles: 90. 90. 120. ! Lattice angles for HCP (deg) +* Pierls Barrier (MPa), mobility law, Edge and Screw mobilities (Pa.s) for slip modes +nslipmodes: 1 ! Number of active slip modes +active: 1 ! Ids of the active slip modes +110: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of close packed slip +default: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of default modes e.g. junctions +a_core: 0.5d0 ! Dislocation core radius parameter (lattice units) +iSolidPhase: 1 ! 1=>Solid , 0=>non-solid (dislocations vanish) \ No newline at end of file diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/run.sh new file mode 100755 index 0000000..91d700b --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +#Clean and Run shell script + +if [ -z $1 ] +then + echo "ERROR: You must enter the number of processors to use" +else + mkdir -p nodes segs segs/spline fields debug past + echo "Removing nodes..." + cd nodes/ + rm *.* + echo "Removing segments..." + cd ../segs/ + rm *.* + cd spline/ + rm *.* + echo "Removing fields..." + cd ../../fields/ + rm *.* + echo "Removing debug files..." + cd ../debug/ + rm *.* + echo "Run program" + cd ../ + rm fort.* + rm *.dat + rm PFTimes* + rm fr_log + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 +fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/simulation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/simulation_input.txt new file mode 100644 index 0000000..4b17a8d --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/simulation_input.txt @@ -0,0 +1,44 @@ +*------------------------------------------------------------------------------------------------------------------------ +* New simulation or Restart previous simulation +*------------------------------------------------------------------------------------------------------------------------ +newSimulation: 1 ! Restart simulation (=0) +ILOOP_TIME: 12001 ! Number of simulation steps +DTIME: 1.D-13 1.0D-13 ! Max/Min time step increment (s) +*------------------------------------------------------------------------------------------------------------------------ +* Simulated Volume information +*------------------------------------------------------------------------------------------------------------------------ +volume: 2688 2688 336 ! Simulation size (x,y) in lattice size +fourierPoints: 64 64 8 ! Number of Fourier points in each direction +iGeometry: 1 84 1.d2 ! (0=Bulk,1=Thin Film,2=Micropillar), vacuum width & stiffness ratio +numlayers: 1 ! Number of layers +>>>>>>>>>>LAYER 1: Al<<<<<<<<<<<<<< ! Layer id and description +thickness: 1.0 ! Layer thickness (z) relative to box +material: 1 ! ID of base material for this layer +numgrains: 1 ! Number of grains in the layer +*Grain ID, Grain seed, and Grain euler angles (ZXZ convention) for specifying the grain structure +grain1 1 1000 1000 1000 1.83195373769792 0.640522312679425 0.463647609000806 +iRandomGrains: 0 ! Number of randomly positioned grains +*------------------------------------------------------------------------------------------------------------------------ +* Simulation conditions and physics packages +*------------------------------------------------------------------------------------------------------------------------ +iPrecipitates: 0 ! Precipitates +iLatentCoef: 0 ! Coefficent for latent hardening simulations +iDiffraction: 0 ! XRD line analysis frequency +iTranmission: 0 ! Transmission at boundaries +iCrossSlip: 0 ! Cross-slip +iChemistry 2 ! Chemistry solutions (1=chemistry, 2=chemistry+climb) +iInteraction: 1 ! Dislocations interactions +iInertial: 0 ! Inertial forces for high strain-rates +iShortRange: 1 ! Neighbors stress calculation (always set to 1 for simulations) +iNLMobility: 0 +iMPF: 0 +*------------------------------------------------------------------------------------------------------------------------ +* Outputs +*------------------------------------------------------------------------------------------------------------------------ +iOutFreq: 2000 ! Output dislocations and macroscopic data frequency +iPastFreq: 2000 ! Output past files (for restarting simuations) frequency +ioutInt: 100000 ! Output full field Strains and stresses frequency +iDebugMode: 0 ! Debug mode option (1: writes everything, 0: writes nothing) +*------------------------------------------------------------------------------------------------------------------------ +* Optional inputs (unstructured) +*------------------------------------------------------------------------------------------------------------------------ diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/Chemistry.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/Chemistry.txt new file mode 100644 index 0000000..49b0396 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/Chemistry.txt @@ -0,0 +1,18 @@ +CHEMISTRY INPUT FILE +species 1 + +*****Vacancy type defect***** +Name: Vacancy +Density: 4.67e-4 +Prefactor: 1.71e-4 +Source: 0.d0 +Formation: 0.61 +Migration: 0.67 +AtomMass: -1 +Absorbable: T +DipoleTensor: + -2.62 0.0 0.0 + 0.0 -2.62 0.0 + 0.0 0.0 -2.62 + +END FILE diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/dislocation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/dislocation_input.txt new file mode 100644 index 0000000..9144a97 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/dislocation_input.txt @@ -0,0 +1,109 @@ +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 10 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 11 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 8 +Miller: 1.d00 -1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 7 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 11 +Miller: 1.d00 1.d00 -1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 10 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 10 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 10 +Miller: -1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 12 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +STOP ENDDEFECT diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/load_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/load_input.txt new file mode 100644 index 0000000..13116df --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/load_input.txt @@ -0,0 +1,145 @@ +*Loading History File +iLoadStages: 7 ! Number of loading conditions +iLoadDurationInSteps: 1 ! (0=Change conditions by time intervals, 1=Change conditions by step intervals) + +>>>>>>>>>>>Load Condition 1<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 2<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 3<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 4<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 5<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 6<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + + +>>>>>>>>>>>Load Condition 7<<<<<<<<<<<<<<<<< +Duration: 100000000000 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/material_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/material_input.txt new file mode 100644 index 0000000..acc67bd --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/material_input.txt @@ -0,0 +1,23 @@ +*------------------------------------------------------------------------------------------------------------------------ +* Material properties +*------------------------------------------------------------------------------------------------------------------------ +numMaterials: 1 ! Number of Materials +>>>>>>>>>>>>MATERIAL 1: Al <<<<<<<<<<<<<<<<<<<<<<< ! One material block for each of numMaterials +*Elastic stiffness of single crystal (MPa) + 114651.0 59919.0 59919.0 0. 0. 0. + 59919.0 114651.0 59919.0 0. 0. 0. + 59919.0 59919.0 114651.0 0. 0. 0. + 0. 0. 0. 30767.0 0. 0. + 0. 0. 0. 0. 30767.0 0. + 0. 0. 0. 0. 0. 30767.0 +crystaltype: 1 ! (1 FCC; 2 BCC; 3 HCP; 4 HCP1; 5 HCP2; 0 User defined) +Latticeparameter: 4.05D-10 ! Lattice spacing (m) +Latticeratios: 3.21 3.21 5.21 ! Lattice ratios for HCP +Latticeangles: 90. 90. 120. ! Lattice angles for HCP (deg) +* Pierls Barrier (MPa), mobility law, Edge and Screw mobilities (Pa.s) for slip modes +nslipmodes: 1 ! Number of active slip modes +active: 1 ! Ids of the active slip modes +110: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of close packed slip +default: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of default modes e.g. junctions +a_core: 0.5d0 ! Dislocation core radius parameter (lattice units) +iSolidPhase: 1 ! 1=>Solid , 0=>non-solid (dislocations vanish) \ No newline at end of file diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/run.sh new file mode 100755 index 0000000..91d700b --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +#Clean and Run shell script + +if [ -z $1 ] +then + echo "ERROR: You must enter the number of processors to use" +else + mkdir -p nodes segs segs/spline fields debug past + echo "Removing nodes..." + cd nodes/ + rm *.* + echo "Removing segments..." + cd ../segs/ + rm *.* + cd spline/ + rm *.* + echo "Removing fields..." + cd ../../fields/ + rm *.* + echo "Removing debug files..." + cd ../debug/ + rm *.* + echo "Run program" + cd ../ + rm fort.* + rm *.dat + rm PFTimes* + rm fr_log + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 +fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/simulation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/simulation_input.txt new file mode 100644 index 0000000..4b17a8d --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/simulation_input.txt @@ -0,0 +1,44 @@ +*------------------------------------------------------------------------------------------------------------------------ +* New simulation or Restart previous simulation +*------------------------------------------------------------------------------------------------------------------------ +newSimulation: 1 ! Restart simulation (=0) +ILOOP_TIME: 12001 ! Number of simulation steps +DTIME: 1.D-13 1.0D-13 ! Max/Min time step increment (s) +*------------------------------------------------------------------------------------------------------------------------ +* Simulated Volume information +*------------------------------------------------------------------------------------------------------------------------ +volume: 2688 2688 336 ! Simulation size (x,y) in lattice size +fourierPoints: 64 64 8 ! Number of Fourier points in each direction +iGeometry: 1 84 1.d2 ! (0=Bulk,1=Thin Film,2=Micropillar), vacuum width & stiffness ratio +numlayers: 1 ! Number of layers +>>>>>>>>>>LAYER 1: Al<<<<<<<<<<<<<< ! Layer id and description +thickness: 1.0 ! Layer thickness (z) relative to box +material: 1 ! ID of base material for this layer +numgrains: 1 ! Number of grains in the layer +*Grain ID, Grain seed, and Grain euler angles (ZXZ convention) for specifying the grain structure +grain1 1 1000 1000 1000 1.83195373769792 0.640522312679425 0.463647609000806 +iRandomGrains: 0 ! Number of randomly positioned grains +*------------------------------------------------------------------------------------------------------------------------ +* Simulation conditions and physics packages +*------------------------------------------------------------------------------------------------------------------------ +iPrecipitates: 0 ! Precipitates +iLatentCoef: 0 ! Coefficent for latent hardening simulations +iDiffraction: 0 ! XRD line analysis frequency +iTranmission: 0 ! Transmission at boundaries +iCrossSlip: 0 ! Cross-slip +iChemistry 2 ! Chemistry solutions (1=chemistry, 2=chemistry+climb) +iInteraction: 1 ! Dislocations interactions +iInertial: 0 ! Inertial forces for high strain-rates +iShortRange: 1 ! Neighbors stress calculation (always set to 1 for simulations) +iNLMobility: 0 +iMPF: 0 +*------------------------------------------------------------------------------------------------------------------------ +* Outputs +*------------------------------------------------------------------------------------------------------------------------ +iOutFreq: 2000 ! Output dislocations and macroscopic data frequency +iPastFreq: 2000 ! Output past files (for restarting simuations) frequency +ioutInt: 100000 ! Output full field Strains and stresses frequency +iDebugMode: 0 ! Debug mode option (1: writes everything, 0: writes nothing) +*------------------------------------------------------------------------------------------------------------------------ +* Optional inputs (unstructured) +*------------------------------------------------------------------------------------------------------------------------ diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/Chemistry.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/Chemistry.txt new file mode 100644 index 0000000..49b0396 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/Chemistry.txt @@ -0,0 +1,18 @@ +CHEMISTRY INPUT FILE +species 1 + +*****Vacancy type defect***** +Name: Vacancy +Density: 4.67e-4 +Prefactor: 1.71e-4 +Source: 0.d0 +Formation: 0.61 +Migration: 0.67 +AtomMass: -1 +Absorbable: T +DipoleTensor: + -2.62 0.0 0.0 + 0.0 -2.62 0.0 + 0.0 0.0 -2.62 + +END FILE diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/dislocation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/dislocation_input.txt new file mode 100644 index 0000000..9cb6fe9 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/dislocation_input.txt @@ -0,0 +1,109 @@ +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 21 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 22 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 21 +Miller: 1.d00 -1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 23 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 21 +Miller: 1.d00 1.d00 -1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 21 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 24 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 18 +Miller: -1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 18 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +STOP ENDDEFECT diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/load_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/load_input.txt new file mode 100644 index 0000000..13116df --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/load_input.txt @@ -0,0 +1,145 @@ +*Loading History File +iLoadStages: 7 ! Number of loading conditions +iLoadDurationInSteps: 1 ! (0=Change conditions by time intervals, 1=Change conditions by step intervals) + +>>>>>>>>>>>Load Condition 1<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 2<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 3<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 4<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 5<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 6<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + + +>>>>>>>>>>>Load Condition 7<<<<<<<<<<<<<<<<< +Duration: 100000000000 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/material_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/material_input.txt new file mode 100644 index 0000000..acc67bd --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/material_input.txt @@ -0,0 +1,23 @@ +*------------------------------------------------------------------------------------------------------------------------ +* Material properties +*------------------------------------------------------------------------------------------------------------------------ +numMaterials: 1 ! Number of Materials +>>>>>>>>>>>>MATERIAL 1: Al <<<<<<<<<<<<<<<<<<<<<<< ! One material block for each of numMaterials +*Elastic stiffness of single crystal (MPa) + 114651.0 59919.0 59919.0 0. 0. 0. + 59919.0 114651.0 59919.0 0. 0. 0. + 59919.0 59919.0 114651.0 0. 0. 0. + 0. 0. 0. 30767.0 0. 0. + 0. 0. 0. 0. 30767.0 0. + 0. 0. 0. 0. 0. 30767.0 +crystaltype: 1 ! (1 FCC; 2 BCC; 3 HCP; 4 HCP1; 5 HCP2; 0 User defined) +Latticeparameter: 4.05D-10 ! Lattice spacing (m) +Latticeratios: 3.21 3.21 5.21 ! Lattice ratios for HCP +Latticeangles: 90. 90. 120. ! Lattice angles for HCP (deg) +* Pierls Barrier (MPa), mobility law, Edge and Screw mobilities (Pa.s) for slip modes +nslipmodes: 1 ! Number of active slip modes +active: 1 ! Ids of the active slip modes +110: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of close packed slip +default: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of default modes e.g. junctions +a_core: 0.5d0 ! Dislocation core radius parameter (lattice units) +iSolidPhase: 1 ! 1=>Solid , 0=>non-solid (dislocations vanish) \ No newline at end of file diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/run.sh new file mode 100755 index 0000000..91d700b --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +#Clean and Run shell script + +if [ -z $1 ] +then + echo "ERROR: You must enter the number of processors to use" +else + mkdir -p nodes segs segs/spline fields debug past + echo "Removing nodes..." + cd nodes/ + rm *.* + echo "Removing segments..." + cd ../segs/ + rm *.* + cd spline/ + rm *.* + echo "Removing fields..." + cd ../../fields/ + rm *.* + echo "Removing debug files..." + cd ../debug/ + rm *.* + echo "Run program" + cd ../ + rm fort.* + rm *.dat + rm PFTimes* + rm fr_log + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 +fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/simulation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/simulation_input.txt new file mode 100644 index 0000000..4b17a8d --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/simulation_input.txt @@ -0,0 +1,44 @@ +*------------------------------------------------------------------------------------------------------------------------ +* New simulation or Restart previous simulation +*------------------------------------------------------------------------------------------------------------------------ +newSimulation: 1 ! Restart simulation (=0) +ILOOP_TIME: 12001 ! Number of simulation steps +DTIME: 1.D-13 1.0D-13 ! Max/Min time step increment (s) +*------------------------------------------------------------------------------------------------------------------------ +* Simulated Volume information +*------------------------------------------------------------------------------------------------------------------------ +volume: 2688 2688 336 ! Simulation size (x,y) in lattice size +fourierPoints: 64 64 8 ! Number of Fourier points in each direction +iGeometry: 1 84 1.d2 ! (0=Bulk,1=Thin Film,2=Micropillar), vacuum width & stiffness ratio +numlayers: 1 ! Number of layers +>>>>>>>>>>LAYER 1: Al<<<<<<<<<<<<<< ! Layer id and description +thickness: 1.0 ! Layer thickness (z) relative to box +material: 1 ! ID of base material for this layer +numgrains: 1 ! Number of grains in the layer +*Grain ID, Grain seed, and Grain euler angles (ZXZ convention) for specifying the grain structure +grain1 1 1000 1000 1000 1.83195373769792 0.640522312679425 0.463647609000806 +iRandomGrains: 0 ! Number of randomly positioned grains +*------------------------------------------------------------------------------------------------------------------------ +* Simulation conditions and physics packages +*------------------------------------------------------------------------------------------------------------------------ +iPrecipitates: 0 ! Precipitates +iLatentCoef: 0 ! Coefficent for latent hardening simulations +iDiffraction: 0 ! XRD line analysis frequency +iTranmission: 0 ! Transmission at boundaries +iCrossSlip: 0 ! Cross-slip +iChemistry 2 ! Chemistry solutions (1=chemistry, 2=chemistry+climb) +iInteraction: 1 ! Dislocations interactions +iInertial: 0 ! Inertial forces for high strain-rates +iShortRange: 1 ! Neighbors stress calculation (always set to 1 for simulations) +iNLMobility: 0 +iMPF: 0 +*------------------------------------------------------------------------------------------------------------------------ +* Outputs +*------------------------------------------------------------------------------------------------------------------------ +iOutFreq: 2000 ! Output dislocations and macroscopic data frequency +iPastFreq: 2000 ! Output past files (for restarting simuations) frequency +ioutInt: 100000 ! Output full field Strains and stresses frequency +iDebugMode: 0 ! Debug mode option (1: writes everything, 0: writes nothing) +*------------------------------------------------------------------------------------------------------------------------ +* Optional inputs (unstructured) +*------------------------------------------------------------------------------------------------------------------------ diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/Chemistry.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/Chemistry.txt new file mode 100644 index 0000000..49b0396 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/Chemistry.txt @@ -0,0 +1,18 @@ +CHEMISTRY INPUT FILE +species 1 + +*****Vacancy type defect***** +Name: Vacancy +Density: 4.67e-4 +Prefactor: 1.71e-4 +Source: 0.d0 +Formation: 0.61 +Migration: 0.67 +AtomMass: -1 +Absorbable: T +DipoleTensor: + -2.62 0.0 0.0 + 0.0 -2.62 0.0 + 0.0 0.0 -2.62 + +END FILE diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/dislocation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/dislocation_input.txt new file mode 100644 index 0000000..30fba1f --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/dislocation_input.txt @@ -0,0 +1,109 @@ +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 31 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 29 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: 1.d00 -1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: 1.d00 1.d00 -1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 30 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 31 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 31 +Miller: -1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 29 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +STOP ENDDEFECT diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/load_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/load_input.txt new file mode 100644 index 0000000..13116df --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/load_input.txt @@ -0,0 +1,145 @@ +*Loading History File +iLoadStages: 7 ! Number of loading conditions +iLoadDurationInSteps: 1 ! (0=Change conditions by time intervals, 1=Change conditions by step intervals) + +>>>>>>>>>>>Load Condition 1<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 2<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 3<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 4<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 5<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 6<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + + +>>>>>>>>>>>Load Condition 7<<<<<<<<<<<<<<<<< +Duration: 100000000000 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/material_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/material_input.txt new file mode 100644 index 0000000..acc67bd --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/material_input.txt @@ -0,0 +1,23 @@ +*------------------------------------------------------------------------------------------------------------------------ +* Material properties +*------------------------------------------------------------------------------------------------------------------------ +numMaterials: 1 ! Number of Materials +>>>>>>>>>>>>MATERIAL 1: Al <<<<<<<<<<<<<<<<<<<<<<< ! One material block for each of numMaterials +*Elastic stiffness of single crystal (MPa) + 114651.0 59919.0 59919.0 0. 0. 0. + 59919.0 114651.0 59919.0 0. 0. 0. + 59919.0 59919.0 114651.0 0. 0. 0. + 0. 0. 0. 30767.0 0. 0. + 0. 0. 0. 0. 30767.0 0. + 0. 0. 0. 0. 0. 30767.0 +crystaltype: 1 ! (1 FCC; 2 BCC; 3 HCP; 4 HCP1; 5 HCP2; 0 User defined) +Latticeparameter: 4.05D-10 ! Lattice spacing (m) +Latticeratios: 3.21 3.21 5.21 ! Lattice ratios for HCP +Latticeangles: 90. 90. 120. ! Lattice angles for HCP (deg) +* Pierls Barrier (MPa), mobility law, Edge and Screw mobilities (Pa.s) for slip modes +nslipmodes: 1 ! Number of active slip modes +active: 1 ! Ids of the active slip modes +110: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of close packed slip +default: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of default modes e.g. junctions +a_core: 0.5d0 ! Dislocation core radius parameter (lattice units) +iSolidPhase: 1 ! 1=>Solid , 0=>non-solid (dislocations vanish) \ No newline at end of file diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/run.sh new file mode 100755 index 0000000..91d700b --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +#Clean and Run shell script + +if [ -z $1 ] +then + echo "ERROR: You must enter the number of processors to use" +else + mkdir -p nodes segs segs/spline fields debug past + echo "Removing nodes..." + cd nodes/ + rm *.* + echo "Removing segments..." + cd ../segs/ + rm *.* + cd spline/ + rm *.* + echo "Removing fields..." + cd ../../fields/ + rm *.* + echo "Removing debug files..." + cd ../debug/ + rm *.* + echo "Run program" + cd ../ + rm fort.* + rm *.dat + rm PFTimes* + rm fr_log + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 +fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/simulation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/simulation_input.txt new file mode 100644 index 0000000..4b17a8d --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/simulation_input.txt @@ -0,0 +1,44 @@ +*------------------------------------------------------------------------------------------------------------------------ +* New simulation or Restart previous simulation +*------------------------------------------------------------------------------------------------------------------------ +newSimulation: 1 ! Restart simulation (=0) +ILOOP_TIME: 12001 ! Number of simulation steps +DTIME: 1.D-13 1.0D-13 ! Max/Min time step increment (s) +*------------------------------------------------------------------------------------------------------------------------ +* Simulated Volume information +*------------------------------------------------------------------------------------------------------------------------ +volume: 2688 2688 336 ! Simulation size (x,y) in lattice size +fourierPoints: 64 64 8 ! Number of Fourier points in each direction +iGeometry: 1 84 1.d2 ! (0=Bulk,1=Thin Film,2=Micropillar), vacuum width & stiffness ratio +numlayers: 1 ! Number of layers +>>>>>>>>>>LAYER 1: Al<<<<<<<<<<<<<< ! Layer id and description +thickness: 1.0 ! Layer thickness (z) relative to box +material: 1 ! ID of base material for this layer +numgrains: 1 ! Number of grains in the layer +*Grain ID, Grain seed, and Grain euler angles (ZXZ convention) for specifying the grain structure +grain1 1 1000 1000 1000 1.83195373769792 0.640522312679425 0.463647609000806 +iRandomGrains: 0 ! Number of randomly positioned grains +*------------------------------------------------------------------------------------------------------------------------ +* Simulation conditions and physics packages +*------------------------------------------------------------------------------------------------------------------------ +iPrecipitates: 0 ! Precipitates +iLatentCoef: 0 ! Coefficent for latent hardening simulations +iDiffraction: 0 ! XRD line analysis frequency +iTranmission: 0 ! Transmission at boundaries +iCrossSlip: 0 ! Cross-slip +iChemistry 2 ! Chemistry solutions (1=chemistry, 2=chemistry+climb) +iInteraction: 1 ! Dislocations interactions +iInertial: 0 ! Inertial forces for high strain-rates +iShortRange: 1 ! Neighbors stress calculation (always set to 1 for simulations) +iNLMobility: 0 +iMPF: 0 +*------------------------------------------------------------------------------------------------------------------------ +* Outputs +*------------------------------------------------------------------------------------------------------------------------ +iOutFreq: 2000 ! Output dislocations and macroscopic data frequency +iPastFreq: 2000 ! Output past files (for restarting simuations) frequency +ioutInt: 100000 ! Output full field Strains and stresses frequency +iDebugMode: 0 ! Debug mode option (1: writes everything, 0: writes nothing) +*------------------------------------------------------------------------------------------------------------------------ +* Optional inputs (unstructured) +*------------------------------------------------------------------------------------------------------------------------ diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/Chemistry.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/Chemistry.txt new file mode 100644 index 0000000..49b0396 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/Chemistry.txt @@ -0,0 +1,18 @@ +CHEMISTRY INPUT FILE +species 1 + +*****Vacancy type defect***** +Name: Vacancy +Density: 4.67e-4 +Prefactor: 1.71e-4 +Source: 0.d0 +Formation: 0.61 +Migration: 0.67 +AtomMass: -1 +Absorbable: T +DipoleTensor: + -2.62 0.0 0.0 + 0.0 -2.62 0.0 + 0.0 0.0 -2.62 + +END FILE diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/dislocation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/dislocation_input.txt new file mode 100644 index 0000000..c14fb0a --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/dislocation_input.txt @@ -0,0 +1,109 @@ +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 60 +Miller: 1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 33 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 38 +Miller: 1.d00 -1.d00 1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 37 +Miller: 1.d00 -1.d00 1.d00 +Burgers: -1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 37 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 0.d00 1.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 36 +Miller: 1.d00 1.d00 -1.d00 +Burgers: -1.d00 1.d00 0.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 34 +Miller: 1.d00 1.d00 -1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 99.0 99.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 33 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 1.d00 0.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 35 +Miller: -1.d00 1.d00 1.d00 +Burgers: 0.d00 -1.d00 1.d00 +Properties: 1.0 135.0 135.0 + +Position: Random +Layer: 1 +Grain: 1 +Type: 3 +Number: 41 +Miller: -1.d00 1.d00 1.d00 +Burgers: 1.d00 0.d00 1.d00 +Properties: 1.0 135.0 135.0 + +STOP ENDDEFECT diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/load_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/load_input.txt new file mode 100644 index 0000000..13116df --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/load_input.txt @@ -0,0 +1,145 @@ +*Loading History File +iLoadStages: 7 ! Number of loading conditions +iLoadDurationInSteps: 1 ! (0=Change conditions by time intervals, 1=Change conditions by step intervals) + +>>>>>>>>>>>Load Condition 1<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 2<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 3<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 4<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + +>>>>>>>>>>>Load Condition 5<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 9.378655316148335d10 -6.1701292373477355d07 -4.889040410594356d09 + -6.1701292373476386d07 9.209767819031291d10 1.122438646301772d09 + -4.889040410594357d09 1.122438646301772d09 4.591231849403502d10 + +>>>>>>>>>>>Load Condition 6<<<<<<<<<<<<<<<<< +Duration: 70 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + + +>>>>>>>>>>>Load Condition 7<<<<<<<<<<<<<<<<< +Duration: 100000000000 ! Amount of steps or time to apply this loading condition +Temperature: 650.0 +*Mixed Flags + 2 2 2 + 2 2 2 + 2 2 2 +*Applied Strain rate ! Increment of strain for load=1 + 0.d5 0.d0 0.d9 + 0.d0 0.d0 0.d6 + 0.d9 0.d6 0.0d8 +*Applied Stress rate (in Pa) ! Increment of stress for load=2 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 + 0.d0 0.d0 0.d0 +*Initial Applied Stress (in Pa) ! Initial pre-load (pre-stress) + 0.d9 0.d8 0.d9 + 0.d8 0.d8 0.d9 + 0.d9 0.d9 0.d9 + diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/material_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/material_input.txt new file mode 100644 index 0000000..acc67bd --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/material_input.txt @@ -0,0 +1,23 @@ +*------------------------------------------------------------------------------------------------------------------------ +* Material properties +*------------------------------------------------------------------------------------------------------------------------ +numMaterials: 1 ! Number of Materials +>>>>>>>>>>>>MATERIAL 1: Al <<<<<<<<<<<<<<<<<<<<<<< ! One material block for each of numMaterials +*Elastic stiffness of single crystal (MPa) + 114651.0 59919.0 59919.0 0. 0. 0. + 59919.0 114651.0 59919.0 0. 0. 0. + 59919.0 59919.0 114651.0 0. 0. 0. + 0. 0. 0. 30767.0 0. 0. + 0. 0. 0. 0. 30767.0 0. + 0. 0. 0. 0. 0. 30767.0 +crystaltype: 1 ! (1 FCC; 2 BCC; 3 HCP; 4 HCP1; 5 HCP2; 0 User defined) +Latticeparameter: 4.05D-10 ! Lattice spacing (m) +Latticeratios: 3.21 3.21 5.21 ! Lattice ratios for HCP +Latticeangles: 90. 90. 120. ! Lattice angles for HCP (deg) +* Pierls Barrier (MPa), mobility law, Edge and Screw mobilities (Pa.s) for slip modes +nslipmodes: 1 ! Number of active slip modes +active: 1 ! Ids of the active slip modes +110: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of close packed slip +default: 1.0 1.0 1.0 0 5.6d-6 1.186d-5 !Properties of default modes e.g. junctions +a_core: 0.5d0 ! Dislocation core radius parameter (lattice units) +iSolidPhase: 1 ! 1=>Solid , 0=>non-solid (dislocations vanish) \ No newline at end of file diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/run.sh new file mode 100755 index 0000000..91d700b --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +#Clean and Run shell script + +if [ -z $1 ] +then + echo "ERROR: You must enter the number of processors to use" +else + mkdir -p nodes segs segs/spline fields debug past + echo "Removing nodes..." + cd nodes/ + rm *.* + echo "Removing segments..." + cd ../segs/ + rm *.* + cd spline/ + rm *.* + echo "Removing fields..." + cd ../../fields/ + rm *.* + echo "Removing debug files..." + cd ../debug/ + rm *.* + echo "Run program" + cd ../ + rm fort.* + rm *.dat + rm PFTimes* + rm fr_log + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 +fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/simulation_input.txt b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/simulation_input.txt new file mode 100644 index 0000000..4b17a8d --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/simulation_input.txt @@ -0,0 +1,44 @@ +*------------------------------------------------------------------------------------------------------------------------ +* New simulation or Restart previous simulation +*------------------------------------------------------------------------------------------------------------------------ +newSimulation: 1 ! Restart simulation (=0) +ILOOP_TIME: 12001 ! Number of simulation steps +DTIME: 1.D-13 1.0D-13 ! Max/Min time step increment (s) +*------------------------------------------------------------------------------------------------------------------------ +* Simulated Volume information +*------------------------------------------------------------------------------------------------------------------------ +volume: 2688 2688 336 ! Simulation size (x,y) in lattice size +fourierPoints: 64 64 8 ! Number of Fourier points in each direction +iGeometry: 1 84 1.d2 ! (0=Bulk,1=Thin Film,2=Micropillar), vacuum width & stiffness ratio +numlayers: 1 ! Number of layers +>>>>>>>>>>LAYER 1: Al<<<<<<<<<<<<<< ! Layer id and description +thickness: 1.0 ! Layer thickness (z) relative to box +material: 1 ! ID of base material for this layer +numgrains: 1 ! Number of grains in the layer +*Grain ID, Grain seed, and Grain euler angles (ZXZ convention) for specifying the grain structure +grain1 1 1000 1000 1000 1.83195373769792 0.640522312679425 0.463647609000806 +iRandomGrains: 0 ! Number of randomly positioned grains +*------------------------------------------------------------------------------------------------------------------------ +* Simulation conditions and physics packages +*------------------------------------------------------------------------------------------------------------------------ +iPrecipitates: 0 ! Precipitates +iLatentCoef: 0 ! Coefficent for latent hardening simulations +iDiffraction: 0 ! XRD line analysis frequency +iTranmission: 0 ! Transmission at boundaries +iCrossSlip: 0 ! Cross-slip +iChemistry 2 ! Chemistry solutions (1=chemistry, 2=chemistry+climb) +iInteraction: 1 ! Dislocations interactions +iInertial: 0 ! Inertial forces for high strain-rates +iShortRange: 1 ! Neighbors stress calculation (always set to 1 for simulations) +iNLMobility: 0 +iMPF: 0 +*------------------------------------------------------------------------------------------------------------------------ +* Outputs +*------------------------------------------------------------------------------------------------------------------------ +iOutFreq: 2000 ! Output dislocations and macroscopic data frequency +iPastFreq: 2000 ! Output past files (for restarting simuations) frequency +ioutInt: 100000 ! Output full field Strains and stresses frequency +iDebugMode: 0 ! Debug mode option (1: writes everything, 0: writes nothing) +*------------------------------------------------------------------------------------------------------------------------ +* Optional inputs (unstructured) +*------------------------------------------------------------------------------------------------------------------------ diff --git a/ensemblesweep/examples/andreas/PROD_nersc_gd3_registry.txt b/ensemblesweep/examples/andreas/PROD_nersc_gd3_registry.txt new file mode 100644 index 0000000..bfa7ad0 --- /dev/null +++ b/ensemblesweep/examples/andreas/PROD_nersc_gd3_registry.txt @@ -0,0 +1,12 @@ +/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/ +/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/ +/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/ +/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/ +/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/ +/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/ +/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/ +/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/ +/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/ +/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/ +/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/ +/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/ diff --git a/ensemblesweep/examples/andreas/check_if_converged.py b/ensemblesweep/examples/andreas/check_if_converged.py new file mode 100644 index 0000000..3e9c965 --- /dev/null +++ b/ensemblesweep/examples/andreas/check_if_converged.py @@ -0,0 +1,128 @@ +''' +check if the simulation stored in a provided folder has converged, should be +continued, or should be restarted. + +When run, this code will print out one of three keywords: + +1. continue +2. converged +3. restart + +Continue will continue a given simulation. Restart will be called if no PAST file exists. + +Analysis will be done by checking the data in the ddd-results.dat file. +''' +import argparse +import os +import math + +def compute_windowed_rmse(data: list[float]) -> float: + mean_val = sum(data) / len(data) + sum_mean_squared_data = math.sqrt(sum([(dat - mean_val)**2 for dat in data]) / (len(data) - 1)) + return mean_val, sum_mean_squared_data + +def converged(data, cutoff): + mean, rmse = compute_windowed_rmse(data) + return rmse / mean < cutoff + +def check_convergence(dddresults_location: str, max_time_steps: float, lookback: int, convergence_limit: float) -> str: + ''' check whether the simulation has converged. ''' + + if not os.path.exists(dddresults_location): + return 'restart', 'ddd-results.dat file does not exist.' + + time = [] + junc = [] + dens = [] + epvm = [] + + with open(dddresults_location, 'r') as file: + lines = file.readlines()[1:] + + for line in lines: + line = line.strip().split() + + time.append(float(line[0])) + dens.append(float(line[18])) + junc.append(float(line[19])) + epvm.append(float(line[15])) + + # checking time requirements + if max(time) >= max_time_steps: + return 'converged', 'exceeded maximum time' + + if len(time) < lookback: + return "continue", 'didnt reach minimum time to check for convergence.' + + # checking convergence + data = [epvm, junc, dens] + converge = all([converged(dat[-lookback:], cutoff=convergence_limit) for dat in data]) + + if converge: + return 'converged', 'all convergence metrics have been reached' + + else: + return 'continue', f'one of the convergence metrics didnt exceed the cutoff: {convergence_limit}' + +def make_decision(args): + # check if past folder exists + if not os.path.exists(os.path.join(args.folder, 'past')): + return 'restart', 'couldnt find past folder' + + # check if the past folder is empty + past_files = os.listdir(os.path.join(args.folder, 'past')) + if len(past_files) == 0: + return 'restart', 'past folder is empty' + + # else make a convergence decision + return check_convergence( + dddresults_location=os.path.join(args.folder, 'ddd-results.dat'), + max_time_steps=args.max_time_steps, + lookback=args.lookback, + convergence_limit=args.convergence_limit, + ) + +def check_convergence( + max_time_steps: int, + folder: str, + lookback: int, + convergence_limit: float, + ): + ''' equivalent to the main call but will return a boolean ''' + import dataclasses + @dataclasses.dataclass + class ArgsInput: + max_time_steps: int + folder: str + lookback: int + convergence_limit: float + verbose: bool + + decision, logic = make_decision( + ArgsInput( + max_time_steps = max_time_steps, + folder = folder, + lookback = lookback, + convergence_limit = convergence_limit, + verbose = False + ) + ) + + return decision + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument('--max_time_steps', type=int, help="The maximum number of time steps.") + parser.add_argument('--folder', type=str, help='folder to check.') + parser.add_argument('--verbose', action='store_true', help='whether to print reasons') + parser.add_argument('--lookback', type=int, default=3, help='how many time steps to lookback.') + parser.add_argument('--convergence_limit', type=float, default=0.05, help='The maximum value for the ratio between the standard deviation and the mean value that is acceptable for convergence.') + args = parser.parse_args() + + decision, logic = make_decision(args) + + if args.verbose: + print(f'{decision}: {logic}') + + else: + print(decision) \ No newline at end of file diff --git a/ensemblesweep/examples/andreas/simulation_start_utility.py b/ensemblesweep/examples/andreas/simulation_start_utility.py new file mode 100644 index 0000000..2eaab6e --- /dev/null +++ b/ensemblesweep/examples/andreas/simulation_start_utility.py @@ -0,0 +1,49 @@ +''' +A helper utility for preprocessing the simulations +''' +from check_if_converged import check_convergence +import os + +def read_max_time_steps(simulation_input_location: str) -> int: + with open(simulation_input_location, 'r') as fil: + line = fil.readlines()[4] + + return line.split()[1] + +def update_input_deck(filename): + with open(filename, 'r') as f: + data = f.readlines() + + data[3] = "newSimulation: 0 ! Restart simulation (=0)" + + # Perform your edits here + with open(filename, 'w') as f: + f.writelines(data) + + +def prepare_sim(folder: str) -> bool: + ''' + prepare a simulation by adjusting input files and decided if the simulation + needs to start. + ''' + # read the max time steps for this simulation + max_time_steps = read_max_time_steps( + simulation_input_location=os.path.join(folder, 'simulation_input.txt') + ) + + # check convergence + is_converged = check_if_converged.check_convergence( + max_time_steps = max_time_steps, + folder = folder, + lookback = 6, + convergence_limit = 0.05, + ) + + if is_converged.lower() == 'restart': + return True + + if is_converged.lower() == 'converged': + return False + + # update the files to continue a simulation + update_input_deck(os.path.join(folder, "simulation_input.txt")) diff --git a/ensemblesweep/examples/andreas/sweep_for_andreas.sh b/ensemblesweep/examples/andreas/sweep_for_andreas.sh new file mode 100755 index 0000000..1985973 --- /dev/null +++ b/ensemblesweep/examples/andreas/sweep_for_andreas.sh @@ -0,0 +1,20 @@ +#!/bin/bash +#SBATCH -A m5190 +#SBATCH -J gd3_sweep + +#SBATCH -N 1 +#SBATCH -q=debug +#SBATCH -C cpu +#SBATCH --time=0:30:00 + +# #SBATCH -N 3 +# #SBATCH -C gpu +# #SBATCH -q regular +# #SBATCH -t 10:00:00 +# +#SBATCH --mail-type=ALL +#SBATCH --mail-user=jmlarson@anl.gov + +module load python + +python sweep_gd3.py diff --git a/ensemblesweep/examples/andreas/sweep_gd3.py b/ensemblesweep/examples/andreas/sweep_gd3.py new file mode 100644 index 0000000..230a6cd --- /dev/null +++ b/ensemblesweep/examples/andreas/sweep_gd3.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 + +import os +import subprocess +from pathlib import Path + +from ensemblesweep import Sweep, Data +import simulation_start_utility + + +REGISTRY_FILE = "PROD_nersc_gd3_registry.txt" +CPUS_PER_SIM = 16 + + +def read_registry(registry_file): + """Read nonempty, non-comment lines from the registry file.""" + folders = [] + with open(registry_file, "r", encoding="utf-8") as f: + for line in f: + line = line.strip() + if not line or line.startswith("#"): + continue + folders.append(line) + return folders + + +def run_simulation(folder): + """ + Sweep objective for a single folder. + + Returns a small status dictionary so results are easy to inspect later. + """ + folder = Path(folder).resolve() + + if not folder.is_dir(): + return { + "folder": str(folder), + "prepared": False, + "ran": False, + "returncode": None, + "status": "missing_folder", + } + + should_run = simulation_start_utility.prepare_sim(folder=str(folder)) + + if not should_run: + return { + "folder": str(folder), + "prepared": False, + "ran": False, + "returncode": None, + "status": "already_done", + } + + run_script = folder / "run.sh" + if not run_script.exists(): + return { + "folder": str(folder), + "prepared": True, + "ran": False, + "returncode": None, + "status": "missing_run_sh", + } + + cmd = ["bash", "./run.sh", str(CPUS_PER_SIM)] + + completed = subprocess.run( + cmd, + cwd=folder, + check=False, + text=True, + ) + + return { + "folder": str(folder), + "prepared": True, + "ran": True, + "returncode": completed.returncode, + "status": "success" if completed.returncode == 1 else "failed", + } + + +def main(): + folders = read_registry(REGISTRY_FILE) + + data = Data( + folder=folders, + ) + + sweep = Sweep( + objective_function=run_simulation, + input_data=data, + ) + + sweep.run() + + print(sweep.results) + print(sweep.results.to_numpy()) + + +if __name__ == "__main__": + main() From 9e78148d46f4f5318dd67e917158d79e98ed0695 Mon Sep 17 00:00:00 2001 From: Jeffrey Larson Date: Mon, 16 Mar 2026 07:11:31 -0700 Subject: [PATCH 06/18] Updating registry --- .../andreas/PROD_nersc_gd3_registry.txt | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/ensemblesweep/examples/andreas/PROD_nersc_gd3_registry.txt b/ensemblesweep/examples/andreas/PROD_nersc_gd3_registry.txt index bfa7ad0..53565b5 100644 --- a/ensemblesweep/examples/andreas/PROD_nersc_gd3_registry.txt +++ b/ensemblesweep/examples/andreas/PROD_nersc_gd3_registry.txt @@ -1,12 +1,13 @@ -/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/ -/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/ -/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/ -/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/ -/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/ -/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/ -/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/ -/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/ -/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/ -/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/ -/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/ -/pscratch/sd/a/aerober/dislocation_initialization//PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/ +/global/homes/j/jmlarson/andreas/ForJeff/libe-community-examples/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/ +/global/homes/j/jmlarson/andreas/ForJeff/libe-community-examples/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/ +/global/homes/j/jmlarson/andreas/ForJeff/libe-community-examples/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/ +/global/homes/j/jmlarson/andreas/ForJeff/libe-community-examples/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/ +/global/homes/j/jmlarson/andreas/ForJeff/libe-community-examples/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/ +/global/homes/j/jmlarson/andreas/ForJeff/libe-community-examples/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/ +/global/homes/j/jmlarson/andreas/ForJeff/libe-community-examples/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/ +/global/homes/j/jmlarson/andreas/ForJeff/libe-community-examples/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/ +/global/homes/j/jmlarson/andreas/ForJeff/libe-community-examples/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/ +/global/homes/j/jmlarson/andreas/ForJeff/libe-community-examples/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/ +/global/homes/j/jmlarson/andreas/ForJeff/libe-community-examples/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/ +/global/homes/j/jmlarson/andreas/ForJeff/libe-community-examples/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/ + From e0d4b089f0b37459ed8474a28ee1ec07553323d4 Mon Sep 17 00:00:00 2001 From: jlnav Date: Wed, 18 Mar 2026 11:40:20 -0500 Subject: [PATCH 07/18] expose num_workers to Sweep class --- ensemblesweep/examples/run_forces.py | 1 + ensemblesweep/src/ensemblesweep/sweep.py | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ensemblesweep/examples/run_forces.py b/ensemblesweep/examples/run_forces.py index be5f41e..d2ab136 100644 --- a/ensemblesweep/examples/run_forces.py +++ b/ensemblesweep/examples/run_forces.py @@ -15,6 +15,7 @@ objective_executable=objective_path, objective_output="forces.stat", input_data=data, + num_workers=2 ) if __name__ == "__main__": diff --git a/ensemblesweep/src/ensemblesweep/sweep.py b/ensemblesweep/src/ensemblesweep/sweep.py index 5014cd5..2c77743 100644 --- a/ensemblesweep/src/ensemblesweep/sweep.py +++ b/ensemblesweep/src/ensemblesweep/sweep.py @@ -63,11 +63,12 @@ def __repr__(self): return repr(self[:]) class Sweep: - def __init__(self, objective_function=None, input_data=None, objective_executable=None, objective_output=None): + def __init__(self, objective_function=None, input_data=None, objective_executable=None, objective_output=None, num_workers=None): self.objective_function = objective_function self.objective_executable = objective_executable self.objective_output = objective_output self.input_data = input_data + self.num_workers = num_workers if self.objective_function and self.objective_executable: raise ValueError("Provide either objective_function or objective_executable, not both.") @@ -89,6 +90,9 @@ def run(self, n=None): target_sim_max = self.evaluated + to_evaluate cores = max(1, os.cpu_count() - 1) + if self.num_workers is not None and self.num_workers >= 1: + cores = self.num_workers + libE_specs = { "comms": "local", "nworkers": cores, From 7ea85e9273b90c12ffb9cd26f3cdcd2fec52b894 Mon Sep 17 00:00:00 2001 From: jlnav Date: Wed, 18 Mar 2026 11:42:46 -0500 Subject: [PATCH 08/18] save_every_k_sims=1 --- ensemblesweep/src/ensemblesweep/sweep.py | 1 + 1 file changed, 1 insertion(+) diff --git a/ensemblesweep/src/ensemblesweep/sweep.py b/ensemblesweep/src/ensemblesweep/sweep.py index 2c77743..39135c4 100644 --- a/ensemblesweep/src/ensemblesweep/sweep.py +++ b/ensemblesweep/src/ensemblesweep/sweep.py @@ -101,6 +101,7 @@ def run(self, n=None): "reuse_output_dir": True, "use_workflow_dir": True, "save_H_and_persis_on_abort": False, + "save_every_k_sims": 1, } ensemble = Ensemble(parse_args=False, libE_specs=libE_specs) ensemble.H0 = self._H_total From 9bd8ce9516cbcbf24a4ce45590954c90f9307b0c Mon Sep 17 00:00:00 2001 From: jlnav Date: Wed, 18 Mar 2026 11:48:53 -0500 Subject: [PATCH 09/18] input "fallback-string" dtype is length of input string + 10% more chars just in case --- ensemblesweep/src/ensemblesweep/data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ensemblesweep/src/ensemblesweep/data.py b/ensemblesweep/src/ensemblesweep/data.py index e2dbd5e..9a2a4fd 100644 --- a/ensemblesweep/src/ensemblesweep/data.py +++ b/ensemblesweep/src/ensemblesweep/data.py @@ -39,7 +39,7 @@ def __init__(self, **kwargs): elif isinstance(sample_val, float): self.dtype_spec.append((k, float)) elif isinstance(sample_val, str): - self.dtype_spec.append((k, "U100")) # fallback string + self.dtype_spec.append((k, "U" + str(len(sample_val) + int(len(sample_val) / 10)))) # fallback string else: self.dtype_spec.append((k, object)) # Fallback From 3154cc838ef0172f9b643001e64a83240881a4db Mon Sep 17 00:00:00 2001 From: jlnav Date: Wed, 18 Mar 2026 11:56:35 -0500 Subject: [PATCH 10/18] note num_workers in README --- ensemblesweep/README.md | 6 +++++- ensemblesweep/examples/run_forces.py | 1 - ensemblesweep/examples/six_hump_camel_sample.py | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ensemblesweep/README.md b/ensemblesweep/README.md index a7a3c1a..59eadc1 100644 --- a/ensemblesweep/README.md +++ b/ensemblesweep/README.md @@ -31,7 +31,9 @@ Simple usage 2. Specify an objective function to the ``Sweep`` object. Provide the input data. -3. Run the sweep. All instances are run in parallel, up to the number of available cores. +3. Optionally, specify the number of worker processes. The default is the number of local cores. + +4. Run the sweep. All instances are run in parallel. ```python @@ -51,6 +53,7 @@ data = Data( sweep = Sweep( objective_function=my_function, input_data=data, + num_workers=4 ) if __name__ == "__main__": @@ -86,6 +89,7 @@ Executables objective_executable=objective_path, objective_output="forces.stat", input_data=data, + num_workers=4 ) sweep.run() diff --git a/ensemblesweep/examples/run_forces.py b/ensemblesweep/examples/run_forces.py index d2ab136..be5f41e 100644 --- a/ensemblesweep/examples/run_forces.py +++ b/ensemblesweep/examples/run_forces.py @@ -15,7 +15,6 @@ objective_executable=objective_path, objective_output="forces.stat", input_data=data, - num_workers=2 ) if __name__ == "__main__": diff --git a/ensemblesweep/examples/six_hump_camel_sample.py b/ensemblesweep/examples/six_hump_camel_sample.py index 6908fe1..fdc353e 100644 --- a/ensemblesweep/examples/six_hump_camel_sample.py +++ b/ensemblesweep/examples/six_hump_camel_sample.py @@ -24,6 +24,7 @@ def six_hump_camel_func(x0, x1): objective_function=six_hump_camel_func, objective_output=["f", "t1", "t2", "t3"], input_data=data, + num_workers = 4 ) sweep.run() From dde4b8840124ee0976d1dbfd72619c41714ba984 Mon Sep 17 00:00:00 2001 From: jlnav Date: Wed, 18 Mar 2026 11:59:22 -0500 Subject: [PATCH 11/18] preumptive node/cpus/cpus-per-sim math to determine num_workers for sweep_gd3 --- ensemblesweep/examples/andreas/sweep_gd3.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ensemblesweep/examples/andreas/sweep_gd3.py b/ensemblesweep/examples/andreas/sweep_gd3.py index 230a6cd..7b205d4 100644 --- a/ensemblesweep/examples/andreas/sweep_gd3.py +++ b/ensemblesweep/examples/andreas/sweep_gd3.py @@ -10,6 +10,8 @@ REGISTRY_FILE = "PROD_nersc_gd3_registry.txt" CPUS_PER_SIM = 16 +NUM_NODES = 3 +CPUS_PER_NODE = 48 def read_registry(registry_file): @@ -90,6 +92,7 @@ def main(): sweep = Sweep( objective_function=run_simulation, input_data=data, + num_workers = (NUM_NODES * CPUS_PER_NODE) // CPUS_PER_SIM ) sweep.run() From d34960a38e7584506546d4b0f8653e24678a7f9e Mon Sep 17 00:00:00 2001 From: Jeffrey Larson Date: Thu, 19 Mar 2026 09:57:32 -0700 Subject: [PATCH 12/18] Intermediate commit --- .../examples/andreas/simulation_start_utility.py | 3 ++- .../examples/andreas/sweep_for_andreas.sh | 15 ++++----------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/ensemblesweep/examples/andreas/simulation_start_utility.py b/ensemblesweep/examples/andreas/simulation_start_utility.py index 2eaab6e..33d8078 100644 --- a/ensemblesweep/examples/andreas/simulation_start_utility.py +++ b/ensemblesweep/examples/andreas/simulation_start_utility.py @@ -1,7 +1,8 @@ ''' A helper utility for preprocessing the simulations ''' -from check_if_converged import check_convergence + +import check_if_converged import os def read_max_time_steps(simulation_input_location: str) -> int: diff --git a/ensemblesweep/examples/andreas/sweep_for_andreas.sh b/ensemblesweep/examples/andreas/sweep_for_andreas.sh index 1985973..0ec9d77 100755 --- a/ensemblesweep/examples/andreas/sweep_for_andreas.sh +++ b/ensemblesweep/examples/andreas/sweep_for_andreas.sh @@ -1,20 +1,13 @@ #!/bin/bash #SBATCH -A m5190 -#SBATCH -J gd3_sweep - +#SBATCH --qos=debug +#SBATCH --time=0:30:00 #SBATCH -N 1 -#SBATCH -q=debug +#SBATCH -J gd3_sweep #SBATCH -C cpu -#SBATCH --time=0:30:00 - -# #SBATCH -N 3 -# #SBATCH -C gpu -# #SBATCH -q regular -# #SBATCH -t 10:00:00 -# #SBATCH --mail-type=ALL #SBATCH --mail-user=jmlarson@anl.gov module load python -python sweep_gd3.py +srun python sweep_gd3.py From ebd1393ac4f45365fd0d8b887c6d2a177a8f43a4 Mon Sep 17 00:00:00 2001 From: Jeffrey Larson Date: Thu, 19 Mar 2026 12:00:17 -0700 Subject: [PATCH 13/18] Replacing mpi with s --- .../Load30/NumDisloc10/Repeat1/run.sh | 2 +- .../Load30/NumDisloc20/Repeat1/run.sh | 2 +- .../Load30/NumDisloc30/Repeat1/run.sh | 2 +- .../Load30/NumDisloc35/Repeat1/run.sh | 2 +- .../Load50/NumDisloc10/Repeat1/run.sh | 2 +- .../Load50/NumDisloc20/Repeat1/run.sh | 2 +- .../Load50/NumDisloc30/Repeat1/run.sh | 2 +- .../Load50/NumDisloc35/Repeat1/run.sh | 2 +- .../Load70/NumDisloc10/Repeat1/run.sh | 2 +- .../Load70/NumDisloc20/Repeat1/run.sh | 2 +- .../Load70/NumDisloc30/Repeat1/run.sh | 2 +- .../Load70/NumDisloc35/Repeat1/run.sh | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/run.sh index 91d700b..ab4a42a 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/run.sh index 91d700b..ab4a42a 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/run.sh index 91d700b..ab4a42a 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/run.sh index 91d700b..ab4a42a 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/run.sh index 91d700b..ab4a42a 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/run.sh index 91d700b..ab4a42a 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/run.sh index 91d700b..ab4a42a 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/run.sh index 91d700b..ab4a42a 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/run.sh index 91d700b..ab4a42a 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/run.sh index 91d700b..ab4a42a 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/run.sh index 91d700b..ab4a42a 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/run.sh index 91d700b..ab4a42a 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi From b472eaf9380e1090002e38ccb68e82ab6bdd793e Mon Sep 17 00:00:00 2001 From: Jeffrey Larson Date: Fri, 20 Mar 2026 08:30:24 -0700 Subject: [PATCH 14/18] latestscript --- ensemblesweep/examples/andreas/sweep_for_andreas.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ensemblesweep/examples/andreas/sweep_for_andreas.sh b/ensemblesweep/examples/andreas/sweep_for_andreas.sh index 0ec9d77..b808434 100755 --- a/ensemblesweep/examples/andreas/sweep_for_andreas.sh +++ b/ensemblesweep/examples/andreas/sweep_for_andreas.sh @@ -10,4 +10,4 @@ module load python -srun python sweep_gd3.py +python sweep_gd3.py From e6a53dffd955a73d47529961f6c82e13636c71d2 Mon Sep 17 00:00:00 2001 From: Jeffrey Larson Date: Fri, 20 Mar 2026 09:14:59 -0700 Subject: [PATCH 15/18] Just one worker for debugging --- ensemblesweep/examples/andreas/sweep_gd3.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ensemblesweep/examples/andreas/sweep_gd3.py b/ensemblesweep/examples/andreas/sweep_gd3.py index 7b205d4..090b498 100644 --- a/ensemblesweep/examples/andreas/sweep_gd3.py +++ b/ensemblesweep/examples/andreas/sweep_gd3.py @@ -92,10 +92,11 @@ def main(): sweep = Sweep( objective_function=run_simulation, input_data=data, - num_workers = (NUM_NODES * CPUS_PER_NODE) // CPUS_PER_SIM + # num_workers = (NUM_NODES * CPUS_PER_NODE) // CPUS_PER_SIM + num_workers = 1 ) - sweep.run() + sweep.run(1) print(sweep.results) print(sweep.results.to_numpy()) From 1e04538a9aa018094b91f0a671663a296dd7a244 Mon Sep 17 00:00:00 2001 From: jlnav Date: Fri, 20 Mar 2026 11:36:07 -0500 Subject: [PATCH 16/18] Summarize a count of identical tracebacks if they occur at the end of a sweep. Better logger integrations. black code style --- .../examples/six_hump_camel_sample.py | 1 - ensemblesweep/pixi.lock | 4 +- ensemblesweep/pyproject.toml | 8 +- ensemblesweep/src/ensemblesweep/data.py | 31 ++-- ensemblesweep/src/ensemblesweep/sim_funcs.py | 65 ++++++--- ensemblesweep/src/ensemblesweep/sweep.py | 136 ++++++++++++------ ensemblesweep/src/ensemblesweep/version.py | 2 +- 7 files changed, 166 insertions(+), 81 deletions(-) diff --git a/ensemblesweep/examples/six_hump_camel_sample.py b/ensemblesweep/examples/six_hump_camel_sample.py index fdc353e..d51afe0 100644 --- a/ensemblesweep/examples/six_hump_camel_sample.py +++ b/ensemblesweep/examples/six_hump_camel_sample.py @@ -8,7 +8,6 @@ def six_hump_camel_func(x0, x1): term1 = (4 - 2.1 * x0**2 + (x0**4) / 3) * x0**2 term2 = x0 * x1 term3 = (-4 + 4 * x1**2) * x1**2 - f = term1 + term2 + term3 return f, term1, term2, term3 diff --git a/ensemblesweep/pixi.lock b/ensemblesweep/pixi.lock index 4415b5d..aad8918 100644 --- a/ensemblesweep/pixi.lock +++ b/ensemblesweep/pixi.lock @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:206dcba91c9edf561d8f6bd29fd1b508f7cbc65a233f176ab3bd8035ebb52456 -size 99496 +oid sha256:0d76516c208e70391e576f98f8f03acda3ec7574fd5b419b7aa3b7c2c6f5ee15 +size 99506 diff --git a/ensemblesweep/pyproject.toml b/ensemblesweep/pyproject.toml index 40cabaa..a84e086 100644 --- a/ensemblesweep/pyproject.toml +++ b/ensemblesweep/pyproject.toml @@ -1,10 +1,10 @@ [project] authors = [{ name = "jlnav", email = "jnavarro@anl.gov" }] description = "A libEnsemble-based parameter sweep tool" -dependencies = ["libensemble>=1.5.0,<2"] +dependencies = ["libensemble>=1.5.0,<2", "numpy"] name = "ensemblesweep" requires-python = ">= 3.11" -version = "0.1.0" +dynamic = ["version"] [build-system] build-backend = "setuptools.build_meta" @@ -13,6 +13,10 @@ requires = ["setuptools", "wheel", "pip>=24.3.1,<27", "setuptools>=75.1.0,<83"] [tool.setuptools.dynamic] version = { attr = "ensemblesweep.version.__version__" } +[tool.setuptools] +packages = ["ensemblesweep"] +package-dir = {"" = "src"} + [tool.pixi.workspace] channels = ["conda-forge"] platforms = ["osx-arm64", "linux-64"] diff --git a/ensemblesweep/src/ensemblesweep/data.py b/ensemblesweep/src/ensemblesweep/data.py index 9a2a4fd..f1d32f6 100644 --- a/ensemblesweep/src/ensemblesweep/data.py +++ b/ensemblesweep/src/ensemblesweep/data.py @@ -1,6 +1,7 @@ import numpy as np import itertools + class Data: def __init__(self, **kwargs): """ @@ -11,23 +12,25 @@ def __init__(self, **kwargs): self._keys = [] self._values = [] self._shapes = {} - + parsed_args = {} for k, v in kwargs.items(): self._keys.append(k) # Handle numpy arrays, lists, tuples - if isinstance(v, (list, tuple)) or (isinstance(v, np.ndarray) and v.ndim > 0): + if isinstance(v, (list, tuple)) or ( + isinstance(v, np.ndarray) and v.ndim > 0 + ): parsed_args[k] = list(v) else: # Wrap scalars in a list so itertools.product works parsed_args[k] = [v] - + # Compute cartesian product product = list(itertools.product(*[parsed_args[k] for k in self._keys])) - + self.total = len(product) self.combinations = product - + # Prepare the libEnsemble dtype specification for inputs self.dtype_spec = [] for k in self._keys: @@ -39,22 +42,28 @@ def __init__(self, **kwargs): elif isinstance(sample_val, float): self.dtype_spec.append((k, float)) elif isinstance(sample_val, str): - self.dtype_spec.append((k, "U" + str(len(sample_val) + int(len(sample_val) / 10)))) # fallback string + self.dtype_spec.append( + (k, "U" + str(len(sample_val) + int(len(sample_val) / 10))) + ) # fallback string else: - self.dtype_spec.append((k, object)) # Fallback - + self.dtype_spec.append((k, object)) # Fallback + def to_h0(self): """ Converts the computed parameter space to a libEnsemble H0 array. """ # Add basic libEnsemble fields - full_dtype = self.dtype_spec + [("sim_id", int), ("sim_started", bool), ("sim_ended", bool)] + full_dtype = self.dtype_spec + [ + ("sim_id", int), + ("sim_started", bool), + ("sim_ended", bool), + ] H0 = np.zeros(self.total, dtype=full_dtype) - + for i, combo in enumerate(self.combinations): for j, key in enumerate(self._keys): H0[key][i] = combo[j] H0["sim_id"][i] = i H0["sim_started"][i] = False - + return H0 diff --git a/ensemblesweep/src/ensemblesweep/sim_funcs.py b/ensemblesweep/src/ensemblesweep/sim_funcs.py index 5da12ed..e2fd373 100644 --- a/ensemblesweep/src/ensemblesweep/sim_funcs.py +++ b/ensemblesweep/src/ensemblesweep/sim_funcs.py @@ -2,35 +2,49 @@ import numpy as np import os from libensemble.message_numbers import WORKER_DONE, TASK_FAILED +import logging +import traceback + +logger = logging.getLogger(__name__) +_EXCEPTION_COUNTS = {} + def generic_function_simf(H, persis_info, sim_specs, *args): """ sim_f for executing generic Python functions. """ start_time = time.time() - + # Get user function and expected parameters func = sim_specs["user"]["objective_function"] input_keys = sim_specs["user"]["input_keys"] - + # Extract arguments from H, passing only the first row's data args = [H[k][0] for k in input_keys] - + + output = np.zeros(1, dtype=sim_specs["out"]) calc_status = WORKER_DONE result = np.nan try: # Evaluate function result = func(*args) except Exception as e: - print(f"Error evaluating objective_function: {e}") + tb = traceback.format_exc() + if tb not in _EXCEPTION_COUNTS: + _EXCEPTION_COUNTS[tb] = 1 + logger.warning(f"Error evaluating objective_function: {tb}") + + if "error_msg" in output.dtype.names: + output["error_msg"] = str(e)[:100] calc_status = TASK_FAILED - + eval_time = time.time() - start_time - + # Format output based on the result type - output = np.zeros(1, dtype=sim_specs["out"]) - out_fields = [n for n in output.dtype.names if n != 'eval_time'] - + out_fields = [ + n for n in output.dtype.names if n != "eval_time" and n != "error_msg" + ] + if isinstance(result, dict): matched = False for k, v in result.items(): @@ -38,7 +52,9 @@ def generic_function_simf(H, persis_info, sim_specs, *args): output[k] = v matched = True if not matched: - print(f"Warning: Objective function returned dictionary with keys {list(result.keys())}, but none match the expected output fields {out_fields}.") + logger.warning( + f"Objective function returned dictionary with keys {list(result.keys())}, but none match the expected output fields {out_fields}." + ) elif isinstance(result, (list, tuple)): # If it's a single-element list/tuple, treat it as a scalar or map to first field if len(result) == 1: @@ -53,35 +69,37 @@ def generic_function_simf(H, persis_info, sim_specs, *args): # Scalar result if out_fields: output[out_fields[0]] = result - + output["eval_time"] = eval_time return output, persis_info, calc_status + def generic_executable_simf(H, persis_info, sim_specs, libE_info): """ sim_f for executing binaries using MPIExecutor. """ + output = np.zeros(1, dtype=sim_specs["out"]) start_time = time.time() calc_status = WORKER_DONE - + output_file = sim_specs["user"]["objective_output"] input_keys = sim_specs["user"]["input_keys"] - + # Build arguments string args_list = [str(H[k][0]) for k in input_keys] args = " ".join(args_list) - + exctr = libE_info["executor"] - + # Execute without redirecting stdout unless we don't have an output file if output_file: task = exctr.submit(app_name="executable", app_args=args) else: - output_file = "sim.out" # pipe exe's stdout to file and assume the last line is the output + output_file = "sim.out" # pipe exe's stdout to file and assume the last line is the output task = exctr.submit(app_name="executable", app_args=args, stdout=output_file) - + task.wait() - + final_data = np.nan if task.state == "FINISHED": filepath = os.path.join(task.workdir, output_file) @@ -90,16 +108,17 @@ def generic_executable_simf(H, persis_info, sim_specs, libE_info): data = np.loadtxt(filepath) final_data = data[-1] if data.ndim > 0 else data.item() except Exception as e: - print(f"Error reading output file {filepath}: {e}") + logger.warning(f"Error reading output file {filepath}: {e}") + if "error_msg" in output.dtype.names: + output["error_msg"] = str(e)[:100] calc_status = TASK_FAILED else: calc_status = TASK_FAILED - + eval_time = time.time() - start_time - - output = np.zeros(1, dtype=sim_specs["out"]) + if "output" in output.dtype.names: output["output"] = final_data output["eval_time"] = eval_time - + return output, persis_info, calc_status diff --git a/ensemblesweep/src/ensemblesweep/sweep.py b/ensemblesweep/src/ensemblesweep/sweep.py index 39135c4..c135877 100644 --- a/ensemblesweep/src/ensemblesweep/sweep.py +++ b/ensemblesweep/src/ensemblesweep/sweep.py @@ -2,22 +2,27 @@ import os import time import numpy as np +import logging +import traceback from libensemble import Ensemble -from libensemble import logger from libensemble.comms.logs import LogConfig from libensemble.specs import SimSpecs, AllocSpecs, ExitCriteria -from libensemble.alloc_funcs.give_pregenerated_work import give_pregenerated_sim_work as alloc_f +from libensemble.alloc_funcs.give_pregenerated_work import ( + give_pregenerated_sim_work as alloc_f, +) from .sim_funcs import generic_function_simf, generic_executable_simf logs = LogConfig.config logs.stat_filename = "stats.txt" +logger = logging.getLogger(__name__) + class ResultWrapper: def __init__(self, sweep): self.sweep = sweep - + def __len__(self): return int(np.sum(self.sweep._H_total["sim_ended"])) @@ -25,14 +30,29 @@ def __getitem__(self, i): results = self.sweep._H_total[self.sweep._H_total["sim_ended"]] if len(results) == 0: return [] - + sliced = results[i] - + # format out fields, exclude internal libEnsemble properties - ignore_fields = ["sim_id", "sim_started", "sim_started_time", "sim_ended", "sim_ended_time", - "sim_worker", "sim_time", "given", "given_time", "cancel_requested", "kill_sent", - "gen_informed", "gen_informed_time", "gen_started_time", "gen_ended_time", "gen_worker"] - + ignore_fields = [ + "sim_id", + "sim_started", + "sim_started_time", + "sim_ended", + "sim_ended_time", + "sim_worker", + "sim_time", + "given", + "given_time", + "cancel_requested", + "kill_sent", + "gen_informed", + "gen_informed_time", + "gen_started_time", + "gen_ended_time", + "gen_worker", + ] + if isinstance(sliced, np.void): out = {} for name in sliced.dtype.names: @@ -51,50 +71,60 @@ def __getitem__(self, i): def to_numpy(self): return self.sweep._H_total[self.sweep._H_total["sim_ended"]] - + def __str__(self): # We can format it nicely results = self.sweep._H_total[self.sweep._H_total["sim_ended"]] if len(results) == 0: return "[]" return str(self[:]) - + def __repr__(self): return repr(self[:]) + class Sweep: - def __init__(self, objective_function=None, input_data=None, objective_executable=None, objective_output=None, num_workers=None): + def __init__( + self, + objective_function=None, + input_data=None, + objective_executable=None, + objective_output=None, + num_workers=None, + ): self.objective_function = objective_function self.objective_executable = objective_executable self.objective_output = objective_output self.input_data = input_data self.num_workers = num_workers - + if self.objective_function and self.objective_executable: - raise ValueError("Provide either objective_function or objective_executable, not both.") - + raise ValueError( + "Provide either objective_function or objective_executable, not both." + ) + self._H_total = input_data.to_h0() self.evaluated = 0 self.results = ResultWrapper(self) - + def run(self, n=None): total_points = len(self._H_total) if self.evaluated >= total_points: - print("All points already evaluated.") + logger.manager_warning("All points already evaluated.") return to_evaluate = total_points - self.evaluated if n is not None: to_evaluate = min(n, to_evaluate) - + target_sim_max = self.evaluated + to_evaluate cores = max(1, os.cpu_count() - 1) if self.num_workers is not None and self.num_workers >= 1: cores = self.num_workers - + libE_specs = { - "comms": "local", + "comms": "local", "nworkers": cores, "sim_dirs_make": True, "ensemble_dir_path": f"sweep_{int(time.time())}", @@ -105,25 +135,28 @@ def run(self, n=None): } ensemble = Ensemble(parse_args=False, libE_specs=libE_specs) ensemble.H0 = self._H_total - + if self.objective_function: out_fields = self.objective_output if self.objective_output else "output" if isinstance(out_fields, str): out_fields = [out_fields] - - out_spec = [(f, float) for f in out_fields] + [("eval_time", float)] - + + out_spec = [(f, float) for f in out_fields] + [ + ("eval_time", float), + ("error_msg", "U100"), + ] + sim_specs = SimSpecs( sim_f=generic_function_simf, inputs=self.input_data._keys, out=out_spec, user={ "objective_function": self.objective_function, - "input_keys": self.input_data._keys - } + "input_keys": self.input_data._keys, + }, ) else: - out_spec = [("output", float), ("eval_time", float)] + out_spec = [("output", float), ("eval_time", float), ("error_msg", "U100")] sim_specs = SimSpecs( sim_f=generic_executable_simf, inputs=self.input_data._keys, @@ -131,41 +164,62 @@ def run(self, n=None): user={ "objective_executable": self.objective_executable, "objective_output": self.objective_output, - "input_keys": self.input_data._keys - } + "input_keys": self.input_data._keys, + }, ) ensemble.sim_specs = sim_specs ensemble.alloc_specs = AllocSpecs(alloc_f=alloc_f) ensemble.exit_criteria = ExitCriteria(sim_max=target_sim_max) - + if self.objective_executable: from libensemble.executors.mpi_executor import MPIExecutor + exctr = MPIExecutor() # Register using absolute path effectively - exctr.register_app(full_path=self.objective_executable, app_name="executable") + exctr.register_app( + full_path=self.objective_executable, app_name="executable" + ) + + try: + ensemble.run() + except Exception as e: + logger.error(f"Error running ensemble: {traceback.format_exc()}") + raise e - ensemble.run() - if ensemble.is_manager: self._H_total = ensemble.H self.evaluated = np.sum(self._H_total["sim_ended"]) - + + # Aggregate and log exception summary from the history array H + if "error_msg" in self._H_total.dtype.names: + unique_errors, counts = np.unique( + self._H_total["error_msg"], return_counts=True + ) + if any(err != "" for err in unique_errors): + logger.warning("\nException Summary:") + for msg, count in zip(unique_errors, counts): + if msg != "": + logger.warning(f' -> "{msg}": {count} times total.') + logger.warning("\n") + def estimated_time(self, n=None): if self.evaluated == 0: - print("Cannot estimate time without running at least one evaluation.") + logger.manager_warning( + "Cannot estimate time without running at least one evaluation." + ) return -1.0 - + results = self._H_total[self._H_total["sim_ended"]] if "eval_time" not in results.dtype.names: return -1.0 - + avg_time = np.mean(results["eval_time"]) - + if n is None: n = len(self._H_total) - self.evaluated - + cores = max(1, os.cpu_count() - 1) - + batches = math.ceil(n / cores) - return batches * avg_time \ No newline at end of file + return batches * avg_time diff --git a/ensemblesweep/src/ensemblesweep/version.py b/ensemblesweep/src/ensemblesweep/version.py index b3c06d4..f102a9c 100644 --- a/ensemblesweep/src/ensemblesweep/version.py +++ b/ensemblesweep/src/ensemblesweep/version.py @@ -1 +1 @@ -__version__ = "0.0.1" \ No newline at end of file +__version__ = "0.0.1" From 5d0cf355132bcdd6c4cd7e1065bc0ff595ba8574 Mon Sep 17 00:00:00 2001 From: Jeffrey Larson Date: Thu, 26 Mar 2026 12:22:45 -0700 Subject: [PATCH 17/18] Adding conda --- ensemblesweep/examples/andreas/sweep_for_andreas.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ensemblesweep/examples/andreas/sweep_for_andreas.sh b/ensemblesweep/examples/andreas/sweep_for_andreas.sh index b808434..201e918 100755 --- a/ensemblesweep/examples/andreas/sweep_for_andreas.sh +++ b/ensemblesweep/examples/andreas/sweep_for_andreas.sh @@ -9,5 +9,6 @@ #SBATCH --mail-user=jmlarson@anl.gov module load python +conda activate /global/homes/j/jmlarson/.conda/envs/GD3-sims-dev/ python sweep_gd3.py From 12ce0128078636f3a73f9115a1ea9c93a32e1f17 Mon Sep 17 00:00:00 2001 From: Jeffrey Larson Date: Fri, 27 Mar 2026 12:54:50 -0700 Subject: [PATCH 18/18] Reverting srun change --- .../Load30/NumDisloc10/Repeat1/run.sh | 2 +- .../Load30/NumDisloc20/Repeat1/run.sh | 2 +- .../Load30/NumDisloc30/Repeat1/run.sh | 2 +- .../Load30/NumDisloc35/Repeat1/run.sh | 2 +- .../Load50/NumDisloc10/Repeat1/run.sh | 2 +- .../Load50/NumDisloc20/Repeat1/run.sh | 2 +- .../Load50/NumDisloc30/Repeat1/run.sh | 2 +- .../Load50/NumDisloc35/Repeat1/run.sh | 2 +- .../Load70/NumDisloc10/Repeat1/run.sh | 2 +- .../Load70/NumDisloc20/Repeat1/run.sh | 2 +- .../Load70/NumDisloc30/Repeat1/run.sh | 2 +- .../Load70/NumDisloc35/Repeat1/run.sh | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/run.sh index ab4a42a..91d700b 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc10/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/run.sh index ab4a42a..91d700b 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc20/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/run.sh index ab4a42a..91d700b 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc30/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/run.sh index ab4a42a..91d700b 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load30/NumDisloc35/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/run.sh index ab4a42a..91d700b 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc10/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/run.sh index ab4a42a..91d700b 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc20/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/run.sh index ab4a42a..91d700b 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc30/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/run.sh index ab4a42a..91d700b 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load50/NumDisloc35/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/run.sh index ab4a42a..91d700b 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc10/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/run.sh index ab4a42a..91d700b 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc20/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/run.sh index ab4a42a..91d700b 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc30/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi diff --git a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/run.sh b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/run.sh index ab4a42a..91d700b 100755 --- a/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/run.sh +++ b/ensemblesweep/examples/andreas/PROD_UltraThinFilm_WithClimb/Load70/NumDisloc35/Repeat1/run.sh @@ -26,5 +26,5 @@ else rm *.dat rm PFTimes* rm fr_log - srun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 + mpirun -n $1 /global/common/software/m5190/GD3/GD3_Source_December2025/gd3 fi