deep_causality_cfd 0.2.0

Counterfactual Computational fluid dynamics solvers and the Flow DSL.
Documentation
# SPDX-License-Identifier: MIT
# Copyright (c) 2023 - 2026. The DeepCausality Authors and Contributors. All Rights Reserved.

[package]
name = "deep_causality_cfd"
version = "0.2.0"
edition = { workspace = true }
rust-version = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
homepage = { workspace = true}

authors = ["Marvin Hansen <marvin.hansen@gmail.com>"]
description = "Counterfactual Computational fluid dynamics solvers and the Flow DSL."
documentation = "https://docs.rs/deep_causality"
categories = ["science", "simulation"]
keywords = ["cfd", "fluid-dynamics", "causality", "simulation"]
# Benches are declared explicitly (one per solver), so they are not auto-discovered.
autobenches = false
exclude = [
    "*.bazel",
    "*/*.bazel",
    "*.bazel.*",
    "BUILD",
    "BUILD.bazel",
    "MODULE.bazel",
    ".bazelignore",
    ".bazelrc",
    "tests/**/*",
    "papers/*",
]

[package.metadata.docs.rs]
all-features = true

[features]
default = ["std", "parallel"]

# This crate is std-only
std = [
    "deep_causality_core/std",
    "deep_causality_num/std",
    "deep_causality_algebra/std",
    "deep_causality_linear/std",
    "deep_causality_num_complex/std",
    "deep_causality_num_dual/std",
    "deep_causality_physics/std",
    "deep_causality_calculus/std",
    "deep_causality_haft/std",
    "deep_causality_tensor/std",
    "deep_causality_par/std",
    "deep_causality_fft/std",
    "dep:deep_causality_uncertain",
]

# CPU parallelism. Forwards to the topology crate's Rayon-backed DEC operator
# loops and the shared `MaybeParallel` marker. On in the `default` set above;
# build with `--no-default-features --features std` for the serial loops. The
# Rayon fan-out costs more than it saves on small grids, so serial is the faster
# choice below roughly 256^2 cells (measured in `benches/PERFORMANCE.md`).
parallel = [
    "deep_causality_topology/parallel",
    "deep_causality_par/parallel",
    "deep_causality_fft/parallel",
]

[dependencies.deep_causality_physics]
workspace = true

[dependencies.deep_causality_calculus]
workspace = true

[dependencies.deep_causality_core]
workspace = true

[dependencies.deep_causality_file]
workspace = true

[dependencies.deep_causality_haft]
workspace = true

[dependencies.deep_causality_num]
workspace = true

[dependencies.deep_causality_algebra]
workspace = true

[dependencies.deep_causality_linear]
workspace = true

[dependencies.deep_causality_num_complex]
workspace = true

[dependencies.deep_causality_num_dual]
workspace = true

[dependencies.deep_causality_tensor]
workspace = true

[dependencies.deep_causality_uncertain]
workspace = true
optional = true

[dependencies.deep_causality_topology]
workspace = true

[dependencies.deep_causality_par]
workspace = true

[dependencies.deep_causality_fft]
workspace = true

[dev-dependencies]
criterion = { workspace = true }
tempfile = { workspace = true }

[[bench]]
name = "bench_dec_ns_march"
harness = false

[[bench]]
name = "bench_mms_verify"
harness = false

[[bench]]
name = "bench_operator_study"
harness = false

# Verification examples (migrated from `examples/avionics_examples`): each runs a DEC/MMS case
# through the CfdFlow DSL and self-verifies against a known reference or an internal invariant.
[[example]]
name = "mms_taylor_green_verification"
path = "verification/mms_taylor_green_verification/main.rs"

[[example]]
name = "dec_taylor_green_re1600_verification"
path = "verification/dec_taylor_green_re1600_verification/main.rs"

[[example]]
name = "dec_lid_cavity_re1000_verification"
path = "verification/dec_lid_cavity_re1000_verification/main.rs"

[[example]]
name = "dec_wall_heat_flux_verification"
path = "verification/dec_wall_heat_flux_verification/main.rs"

[[example]]
name = "dec_graded_mms_verification"
path = "verification/dec_graded_mms_verification/main.rs"

[[example]]
name = "dec_cylinder_wake_verification"
path = "verification/dec_cylinder_wake_verification/main.rs"
required-features = ["std"]

[[example]]
name = "dec_cylinder_verification"
path = "verification/dec_cylinder_verification/main.rs"
required-features = ["std"]

[[example]]
name = "qtt_taylor_green_verification"
path = "verification/qtt_taylor_green_verification/main.rs"

[[example]]
name = "qtt_cylinder_verification"
path = "verification/qtt_cylinder_verification/main.rs"

[[example]]
name = "qtt_park2t_blackout"
path = "verification/qtt_park2t_blackout/main.rs"

[[example]]
name = "qtt_sod"
path = "verification/qtt_sod/main.rs"

[[example]]
name = "qtt_ramc_stagline"
path = "verification/qtt_ramc_stagline/main.rs"

[[example]]
name = "qtt_blunt_body_2d"
path = "verification/qtt_blunt_body_2d/main.rs"

[[example]]
name = "qtt_reentry_3d"
path = "verification/qtt_reentry_3d/main.rs"

# Studies: empirical tests of the "flowfield is low tensor-train rank" thesis.

# Compressible-carrier timing: Task 0 of add-compressible-blackout-carrier (go/no-go grid pick).
[[example]]
name = "compressible_carrier_timing"
path = "studies/compressible_carrier_timing/main.rs"

[[example]]
name = "qtt_rank_study"
path = "studies/qtt_rank_study/main.rs"

[[example]]
name = "qtt_rank_dynamic"
path = "studies/qtt_rank_dynamic/main.rs"

[[example]]
name = "qtt_rank_nonlinear"
path = "studies/qtt_rank_nonlinear/main.rs"

[[example]]
name = "qtt_rank_3d"
path = "studies/qtt_rank_3d/main.rs"

# Round-2 studies: de-risk the resolution-4/5/6 design nodes before the compressible build.
[[example]]
name = "qtt_rank_fitted_dynamic"
path = "studies/qtt_rank_fitted_dynamic/main.rs"

[[example]]
name = "qtt_acoustic_precond"
path = "studies/qtt_acoustic_precond/main.rs"

[[example]]
name = "qtt_blend_metric"
path = "studies/qtt_blend_metric/main.rs"

[[example]]
name = "qtt_repin_marcher"
path = "studies/qtt_repin_marcher/main.rs"

# Plume rank + fork economics: the plasma-retropulsion de-risk study (roadmap M1 risks 2 + 3).
[[example]]
name = "qtt_rank_plume"
path = "studies/qtt_rank_plume/main.rs"

# Momentum-jet follow-up: does a momentum-carrying jet (formed plume)
# recover the Jarvinen-Adams collapse the pinned-envelope imprint could not?
[[example]]
name = "srp_momentum_jet"
path = "studies/srp_momentum_jet/main.rs"

# Gap-3 trajectory-axis feasibility studies: de-risk Resolution-1's perturbed-conformal split (the
# generator, the aero-coupling law, the relativistic clock) before specifying the trajectory propagator.
[[example]]
name = "traj_fs1_generator"
path = "studies/traj_fs1_generator/main.rs"

[[example]]
name = "traj_fs2_coupling"
path = "studies/traj_fs2_coupling/main.rs"

[[example]]
name = "traj_fs3_clock"
path = "studies/traj_fs3_clock/main.rs"

[lints]
workspace = true