Communitygithub.com

FluidSim

Plane, konfiguriere, überprüfe, starte neu und analysiere begrenzte FluidSim-Strömungssimulationen mit expliziten numerischen Gültigkeits- und HPC-Sicherheitsprüfungen. Verwende es für die FluidSim-Löserauswahl, Parameterüberprüfung, FFT/MPI-Einrichtung, Ausgabediagnostik oder Neustartkompatibilität.

Was ist FluidSim?

Diese Fertigkeit befähigt KI-Agenten, FluidSim 0.9.0 als Framework für in Python definierte numerische Löser zu nutzen, insbesondere für periodische kartesische pseudospektrale CFD. Sie ist für Cursor, Codex und Claude Code konzipiert und führt den Benutzer durch einen strengen Arbeitsablauf: von der Formulierung der physikalischen Gleichungen über die Löserauswahl und Parameterinspektion bis hin zur Erstellung strenger JSON-Pläne mit expliziten CPU-, RAM-, Speicher- und CFL-Grenzen. Eingebaute lokale Skripte validieren Konfigurationen, schätzen Ressourcen, führen Trockentests durch und prüfen die Neustartkompatibilität, ohne tatsächliche MPI-Jobs zu starten – ein entscheidendes Sicherheitsmerkmal für HPC-Umgebungen. Die Fertigkeit betont wissenschaftliche Genauigkeit: Sie lehnt automatisch Läufe ab, die keine klaren Einheiten, Randbedingungen, Konvergenznachweise oder Validierungskriterien haben. Sie erfordert eine unabhängige Gitter- und Zeitschrittverfeinerung, Erhaltungsprüfungen und den Vergleich mit analytischen Lösungen oder Benchmarks, bevor ein Lauf als zuverlässig betrachtet wird. Dadurch eignet sie sich ideal für Agenten, die reproduzierbare, verifizierte CFD-Simulationen ohne voreilige Schlussfolgerungen durchführen müssen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/fluidsim

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht FluidSim?

Verwende FluidSim 0.9.0 als Framework für Python-definierte numerische Löser, insbesondere für periodische kartesische pseudospektrale CFD. Upstream FluidSim ist CeCILL-2.1; die MIT-Lizenz im Frontmatter gilt nur für diese Fertigkeit.

Diese Fertigkeit behandelt nicht einen abgeschlossenen Lauf, einen stabilen Zeitschritt, einen glatten Plot oder einen sauberen Programmausgang als Beleg für numerische Konvergenz oder physikalische Gültigkeit.

Erforderlicher Arbeitsablauf

  1. Gib Gleichungen, Einheiten oder Entdimensionalisierung, Geometrie, Randbedingungen, Anfangsbedingungen, Antrieb, Observablen und Akzeptanzkriterien an.
  2. Wähle einen verifizierten Löser und inspiziere seine generierten Standardparameter.
  3. Erstelle einen strengen JSON-Plan mit expliziten CPU-, RAM-, Speicher-, Wandzeit-, Ausgabedatei-, Zeitschritt-, CFL-, Auflösungs- und Entfaltungsgrenzen.
  4. Führe den gebündelten Validator und Ressourcenschätzer aus.
  5. Generiere und überprüfe ein Trockentest-Skript. Es tut nichts, es sei denn, es wird mit einer expliziten Konfigurations-ID-Bestätigung ausgeführt.
  6. Führe einen winzigen seriellen Piloten aus. Überprüfe Budgets, Divergenz/Nebenbedingungen, spektrale Enden, CFL/Zeitschritt-Verlauf und Ausgabewachstum.
  7. Verfeinere Gitter und Zeitschritt unabhängig. Überprüfe Erhaltungs-/Budgetresiduen und Observable Sensitivität.
  8. Erst dann bereite einen standortspezifischen MPI-Job vor. Sende niemals MPI automatisch ab oder starte es.
  9. Bewahre Konfiguration, Skript, uv.lock, Paket-/Plattform-/Backend-Versionen, Protokolle, Ausgabeinventar, Prüfsummen und Neustart-Abstammung auf.

Stoppe, wenn physikalische Annahmen, Einheiten, Randbedingungen, Antriebssemantik, Auflösungskriterien, Ressourcengrenzen oder Akzeptanzkriterien fehlen.

Version und Installation

Wie am 2026-07-23 verifiziert:

  • Neueste stabile PyPI-Version: fluidsim==0.9.0 (2025-12-04).
  • Paket-Metadaten erfordern Python >=3.11 und listen Python 3.11–3.14.
  • Die Erstellung pseudospektraler Parameter benötigt FluidFFT; reines fluidsim wurde im Smoke-Test importiert, aber ns2d.create_default_params() schlug fehl, bis das fft-Extra installiert wurde.
  • Aktuelle Begleitversionen getestet: fluidfft==0.4.5 und pyFFTW==0.15.1.

Bevorzuge einen Projekt-Lock:

uv init --python 3.11
uv add "fluidsim[fft]==0.9.0" "fluidfft==0.4.5" "pyFFTW==0.15.1"
uv lock
uv sync --frozen

Für eine isolierte Einweg-Umgebung:

uv venv --python 3.11
uv pip install "fluidsim[fft]==0.9.0" "fluidfft==0.4.5" "pyFFTW==0.15.1"

Der Projekt-Lock ist der Reproduzierbarkeitsnachweis; direkte Pins allein frieren nicht alle transitiven Artefakte ein. Verwende einen Lock nicht für inkompatible Plattformen oder MPI-ABIs wieder.

MPI ist optional und nativ:

uv add "mpi4py==4.1.2" "fluidfft-mpi-with-fftw==0.0.1" "fluidfft-fftwmpi==0.0.1"
uv lock

Diese Pakate benötigen weiterhin eine kompatible MPI-Laufzeit und FFTW-Entwicklungsbibliotheken. Die optionalen nativen Plugins sind:

  • fluidfft-fftw==0.0.1: sequentiell fft2d.with_fftw1d, fft2d.with_fftw2d, fft3d.with_fftw3d.
  • fluidfft-mpi-with-fftw==0.0.1: MPI fft2d.mpi_with_fftw1d, fft3d.mpi_with_fftw1d.
  • fluidfft-fftwmpi==0.0.1: MPI-fähiges FFTW fft2d.mpi_with_fftwmpi2d, fft3d.mpi_with_fftwmpi3d.
  • fluidfft-p3dfft==0.0.1: fft3d.mpi_with_p3dfft; erfordert P3DFFT.
  • FluidFFT deklariert auch PFFT- und P3DFFT-Extras; überprüfe und pinne deren native Stacks für den Zielcluster.

FluidFFT dokumentiert historisch cuFFT, aber FluidFFT 0.4.5 deklariert kein CUDA-Extra oder installiertes GPU-Plugin in seinen Paket-Metadaten, und seine CUDA-Installationsseite ist unvollständig. Beharre nicht auf GPU-Beschleunigung oder installiere ein nicht verwandtes CUDA-Rad als FluidSim-Backend. Behandle GPU-Arbeit als experimentelle Integration auf Quellcode-Ebene, die eine separate Validierung erfordert.

Siehe Installation für Systemabhängigkeiten, MPI-ABI, HDF5-MPI, Backend-Erkennung und Verifizierung.

API-Überblick

Verwende direkte, versionierte Importe:

from fluidsim.solvers.ns2d.solver import Simul

params = Simul.create_default_params()
params.oper.nx = params.oper.ny = 32
params.oper.Lx = params.oper.Ly = 2 * 3.141592653589793
params.oper.coef_dealiasing = 2 / 3
params.time_stepping.USE_CFL = True
params.time_stepping.cfl_coef = 0.5
params.time_stepping.deltat0 = 0.001
params.time_stepping.deltat_max = 0.01
params.time_stepping.t_end = 0.1
params.time_stepping.max_elapsed = "00:05:00"
params.init_fields.type = "noise"
params.init_fields.noise.velo_max = 0.01
params.output.HAS_TO_SAVE = False
params.output.ONLINE_PLOT_OK = False

Wichtige Korrekturen in Version 0.9:

  • CFL-Feld: params.time_stepping.cfl_coef, nicht CFL.
  • Zeitkorrelierter Antrieb: params.forcing.tcrandom.time_correlation, nicht ein flaches tcrandom_time_correlation.
  • NS2D Standard-Anfangstypen umfassen constant, noise, jet, dipole, from_file, from_simul und in_script; erfinde keine universelle Liste für jeden Löser.
  • Ausgabezustandsdateien standardmäßig state_phys_t*.nc; Spektren verwenden spectra1D.h5/spectra2D.h5; skalare Mittelwerte sind löserabhängig spatial_means.txt oder JSON-Zeilen.
  • params.output.sub_directory ist relativ unter FLUIDSIM_PATH.

ParamContainer lehnt nicht deklarierte Attribute ab. Generiere immer Standardwerte aus der ausgewählten Simul-Klasse und inspiziere sie, bevor du Werte änderst. Siehe Parameter.

Löser

Primäre kartesische CFD-Schlüssel und Importe:

from fluidsim.solvers.ns2d.solver import Simul       # ns2d
from fluidsim.solvers.ns2d.bouss.solver import Simul # ns2d.bouss
from fluidsim.solvers.ns2d.strat.solver import Simul # ns2d.strat
from fluidsim.solvers.ns3d.solver import Simul       # ns3d
from fluidsim.solvers.ns3d.bouss.solver import Simul # ns3d.bouss
from fluidsim.solvers.ns3d.strat.solver import Simul # ns3d.strat

Das 0.9-Register enthält auch plate2d, sw1l-Varianten, waves2d, 1D-Modelle, 0D-Modelle, sphärische Löser und Framework-Adapter. Die Verfügbarkeit im Register macht einen Löser nicht für eine wissenschaftliche Frage geeignet. Überprüfe Gleichungen, Variablen, Geometrie, Randbedingungen und Diagnostik im Löser-Quellcode. Siehe Löser.

Antrieb und Zeitintegration

Der Antrieb ist löser-spezifisch. Ein aktuelles normalisiertes Zufallsbeispiel ist:

params.forcing.enable = True
params.forcing.type = "tcrandom"
params.forcing.forcing_rate = 1.0
params.forcing.nkmin_forcing = 4
params.forcing.nkmax_forcing = 5
params.forcing.tcrandom.time_correlation = "based_on_forcing_rate"

Halte die angetriebene Variable, die Normalisierungsdefinition, das Wellenzahlband, den Zufallsstart/-zustand, das Injektionsziel und die gemessene Injektion fest. FluidSim 0.9 speichert Zustandsparameter für Neustarts; 0.8.6 behob das Verhalten von zeitkorrelierten Antriebs-Neustarts.

Verfügbare pseudospektrale Schemata umfassen Euler/RK2-Phasenverschiebungsvarianten, RK2_trapezoid und RK4. Ein benannter Grad etabliert keine Genauigkeit. Überprüfe CFL, schnelle Wellen-/diffusive Grenzen, deltat_max und Zeitschrittverfeinerung. Siehe erweiterte Funktionen.

Ausgaben, Laden und Neustart

Für reine Leseanalyse:

from fluidsim import load_sim_for_plot

sim = load_sim_for_plot("run-directory", hide_stdout=True)
sim.output.spatial_means.plot()
sim.output.spectra.plot1d()
sim.output.phys_fields.plot(time=1.0)

load_sim_for_plot verwendet einen groben Operator und deaktiviert Speichern/Online-Plotting. Für ein zustandsbehaftetes Objekt:

from fluidsim import load_state_phys_file

sim = load_state_phys_file("run-directory", t_approx="last")

Für einen kontrollierten Neustart bevorzuge load_for_restart oder führe zuerst fluidsim-restart --only-check aus. Verwende nicht --modify-params mit nicht vertrauenswürdigem Text: die upstream CLI führt Python-Code aus, der dieser Option übergeben wird. Der Generator dieser Fertigkeit gibt sie niemals aus. Überprüfe Löser, Gitter/Domäne, Zustandsvariablen, Versionen, Antriebszustand, Prüfsumme, Zielzeit, Ausgabeort und Ressourcengrenzen. Auflösungsänderungen erfordern den dedizierten überprüften Arbeitsablauf, nicht eine stille Gitterbearbeitung. Siehe Simulationsablauf und Ausgabeanalyse.

Wissenschaftliche Akzeptanzschranke

Bevor Ergebnisse interpretiert werden, verlange:

  • Explizite dimensionale Einheiten oder eine vollständige Entdimensionalisierungskarte.
  • Korrekte Gleichungen, periodische Geometrie/Randbedingungen, Anfangszustand, Antrieb und Diagnosedefinitionen.
  • Auflösungs- und Entfaltungsnachweise: Spektren/Enden, aufgelöste Gradienten und lösergeeignete Kleinskalenkriterien.
  • Zeitschrittnachweise: CFL-Verlauf, schnellste Wellen- und dissipative Grenzen und Vergleich mit kleinerem Schritt.
  • Erhaltungs- und Budgetprüfungen einschließlich Antrieb, Dissipation, Transfer und Residuen.
  • Gitter-/Zeitverfeinerung mit Unsicherheit oder Sensitivität für berichtete Observablen.
  • Vergleich mit einer analytischen Lösung, hergestellten Lösung, Benchmark oder unabhängig reproduzierten Ergebnissen, wo angemessen.
  • Vollständige Herkunft und Neustart-Abstammung.

Bezeichne einen Lauf niemals als "DNS", "konvergiert", "validiert", "stationär" oder "physikalisch korrekt" allein aufgrund von Parameterwerten oder Plots.

Gebündelte lokale Werkzeuge

Alle Werkzeuge geben striktes JSON aus, lehnen URLs/Traversal/Symlinks ab, erzwingen harte Grenzen, verwenden kein Netzwerk oder Subprozesse und starten niemals eine Simulation:

python3 scripts/solver_config_validator.py --example
python3 scripts/solver_config_validator.py --config config.json
python3 scripts/grid_resource_estimator.py --config config.json
python3 scripts/simulation_dry_run.py --config config.json --output run.py
python3 scripts/output_inventory.py --path run-directory
python3 scripts/budget_summary.py --path run-directory
python3 scripts/restart_compatibility.py --source state.nc --target-config config.json

Die HDF5-Werkzeuge erfordern träge h5py, inspizieren begrenzte Metadaten/Hyperslabs und folgen niemals externen Links oder laden vollständige Feldarrays.

Referenzen

Datiertes Upstream-Basis

Verifiziert am 2026-07-23 gegen PyPI 0.9.0, FluidSim 0.9 docs, Versionshinweise, offizieller Quellspiegel, FluidFFT 0.4.5 docs und die primären FluidSim- (DOI 10.5334/jors.239) und FluidFFT- (DOI 10.5334/jors.238) Publikationen. API-Behauptungen basieren auf offiziellen Docs/Quellen; Methoden-/Leistungsbehauptungen in den Referenzen beziehen sich auf die zitierten Primärpublikationen und deren Benchmark-Setups.

Zitieren von Scientific Agent Skills

Diese Fertigkeit ist Teil von Scientific Agent Skills von K-Dense. Wenn sie materiell zu einem Manuskript, Bericht, einer Präsentation oder Code-Veröffentlichung beigetragen hat, füge die Publikation zu den Referenzen oder dem Software-Abschnitt hinzu und teile dem Benutzer mit, dass du dies getan hast:

Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065. https://doi.org/10.48550/arXiv.2609.00065

Zitiere immer die aktuelle Version. Die DOI und https://arxiv.org/abs/2609.00065 verweisen auf die neueste arXiv-Version; hänge daher niemals einen Versionssuffix wie v1 an. Wenn Netzwerkzugriff verfügbar ist, rufe https://arxiv.org/abs/2609.00065 (oder http://export.arxiv.org/api/query?id_list=2609.00065) ab, bevor du die Referenz schreibst, und übernimm die Autorenliste, das Jahr und die Version aus diesem Datensatz. Wenn der Datensatz einen Zeitschriftenverweis oder eine Verlags-DOI enthält, zitiere die veröffentlichte Version stattdessen.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

adaptyv

How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

alphagenome

Look up precomputed AlphaGenome Atlas effects for any GRCh38 single-nucleotide variant (AVI score with Phred and 18 SHAP feature attributions, plus raw and quantile scores for RNA-seq, DNase, ATAC, ChIP-TF, ChIP-histone, CAGE, PRO-cap, splicing, polyadenylation and contact-map tracks), score variants or scan windows on demand with the AlphaGenome model for human and mouse (variant scoring, in silico mutagenesis, REF-versus-ALT track prediction), and build Atlas website deep links. Use when the user mentions AlphaGenome, AlphaGenome Atlas, AVI or AlphaGenome Variant Impact, DeepMind variant effect prediction, or wants to prioritise or mechanistically interpret non-coding, regulatory, splicing, enhancer, promoter, or chromatin-accessibility effects of SNVs from a VCF, credible set, or region. Research use only; not a clinical tool.

analytical-method-validation

Plan, execute, and document validation, verification, and transfer of analytical procedures under the governing framework - ICH Q2(R2) and Q14, USP <1220>/<1225>/<1226>, ICH M10 bioanalytical, CLSI EP, or ISO/IEC 17025. Use for HPLC, LC-MS/MS, GC, CE, ICP-MS, dissolution, qNMR, qPCR, NIR, and ligand binding or cell-based assays whenever the question is whether a procedure is fit for its intended purpose. Triggers include

anndata

Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.

arbor

Autonomously improve a real artifact (code, training recipe, agent harness, data pipeline, prompt) against an objective and an evaluator, using Hypothesis Tree Refinement (HTR) from the Arbor paper. Use this whenever someone wants to iteratively optimize something over many experiments without overfitting — e.g.

arboreto

Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.

astropy

Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.

autoskill

Observe the user

benchling-integration

Benchling Python SDK and REST API integration for registry entities, inventory, ELN entries, workflows, Benchling Apps, and Data Warehouse queries. Use when automating lab data with benchling-sdk or the v2 API.

bgpt-paper-search

Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server. Returns 25+ fields per paper including methods, results, sample sizes, quality scores, and conclusions. Use for literature reviews, evidence synthesis, and finding experimental details not available in abstracts alone.

bids

>

biopython

Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.

bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

bulk-rnaseq

End-to-end bulk RNA-seq orchestrator — takes raw FASTQ reads through QC and trimming (FastQC, fastp/Trim Galore), alignment and quantification (STAR, Salmon, featureCounts), assembles a gene-level counts matrix, then hands off to differential expression (pydeseq2), pathway/GSEA enrichment (pathway-enrichment), and publication figures (scientific-visualization). Use whenever the user has bulk RNA-seq reads or quant output and wants a complete, reproducible differential-expression workflow — e.g.

cellxgene-census

Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs/downloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.

cirq

Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.

citation-management

Comprehensive citation management for academic research. Search OpenAlex, PubMed, and Google Scholar for papers, extract accurate metadata, validate citations, and generate properly formatted BibTeX entries. This skill should be used when you need to find papers, verify citation information, convert DOIs to BibTeX, or ensure reference accuracy in scientific writing.

clinical-decision-support

Prepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.

clinical-reports

Create safety-bounded draft structures and run local deterministic checks for clinical case, diagnostic, trial, safety, and aggregate research reports. Use only with synthetic, de-identified, or aggregate inputs and verified source-fact manifests; every output requires qualified review.

Verwandte Skills