Skip to main content

Crate volterra_solver

Crate volterra_solver 

Source
Expand description

§volterra-solver

Nematohydrodynamics solvers for active nematics on Cartesian grids and Riemannian 2-manifolds.

§Modules

SymbolFunction
ActiveNematicEngineOperator-split active nematic engine on 2-manifolds
NematicField2DComplex nematic field (Section<2> wrapper)
StokesSolverTrait with stream-function and Killing backends
molecular_fieldLandau-de Gennes H = -δF/δQ
beris_edwards_rhsFull ∂_t Q RHS (dry active model)
EulerIntegratorFirst-order Euler time step
RK4IntegratorFourth-order Runge-Kutta time step
k0_convolutionK₀ Bessel kernel convolution for ℳ_SM (Component 2)
scan_defectsHolonomy-based defect detection (wraps cartan-geo)
DefectInfoPosition, charge, and frame of a detected disclination

§Physics: dry active nematic (Component 1)

The governing equation is:

∂_t Q = Γ_r · H_active

H_active = K_r ∇²Q  +  (ζ_eff/2 - a) Q  -  2c tr(Q²) Q

where a = a_landau (negative for the ordered phase), c = c_landau > 0, and ζ_eff/2 - a is the effective linear driving. When ζ_eff > 2|a| (equivalently a_eff < 0) the system enters the active turbulent phase with dense defects.

Including flow (optional):

∂_t Q = -u·∇Q + S(W,Q) + Γ_r H_active

where the co-rotation/strain term is S(W,Q) = λ(QW + WQ) - (QΩ + ΩQ).

§Physics: transfer map ℳ_SM (Component 2)

The orientational transfer to the lyotropic lipid phase is:

Q^lip(x) = ℳ_SM(Q^rot)(x)
         = ∫ K₀(|x-x'|/ξ_l) Q^rot(x') d²x' / (2π ξ_l²)

where K₀ is the modified Bessel function of the second kind, order 0, and ξ_l is the lipid coupling length. This is computed by k0_convolution.

§References

  • Beris, A. N. & Edwards, B. J. (1994). Thermodynamics of Flowing Systems.
  • Doostmohammadi, A. et al. (2018). “Active nematics.” Nature Commun. 9, 3246.
  • Giomi, L. (2015). “Geometry and topology of turbulence in active nematics.” Phys. Rev. X 5, 031003.

Re-exports§

pub use mol_field_3d::molecular_field_3d;
pub use mol_field_3d::molecular_field_3d_par;
pub use mol_field_3d::euler_step_fused_par;
pub use mol_field_3d::co_rotation_3d;
pub use beris_3d::beris_edwards_rhs_3d;
pub use beris_3d::beris_edwards_rhs_3d_par_dry;
pub use beris_3d::euler_step_par;
pub use beris_3d::EulerIntegrator3D;
pub use beris_3d::RK4Integrator3D;
pub use stokes_3d::stokes_solve_3d;
pub use ch_3d::ch_step_etd_3d;
pub use defects_3d::scan_defects_3d;
pub use defects_3d::track_defect_events;
pub use runner_3d::run_dry_active_nematic_3d;
pub use runner_3d::run_bech_3d;
pub use runner_3d::SnapStats3D;
pub use runner_3d::BechStats3D;
pub use gauss_bonnet_3d::gauss_bonnet_chi;
pub use runner_dec::run_dry_active_nematic_dec;
pub use runner_dec::SnapStatsDec;
pub use runner_dec_wet::run_wet_active_nematic_dec;
pub use engine::NematicEngine;
pub use engine::EngineStats;
pub use nematic_field_2d::NematicField2D;
pub use stokes_trait::StokesSolver;
pub use stokes_trait::StokesBackend;
pub use stokes_trait::FlowField;
pub use stokes_trait::KillingOperatorSolver;
pub use stokes_trait::StreamFunctionStokes;
pub use active_nematic_engine::ActiveNematicEngine;
pub use active_nematic_engine::EngineParams;
pub use active_nematic_engine::StepDiagnostics;

Modules§

active_nematic_engine
Active nematic engine on Riemannian 2-manifolds.
beris_3d
Beris-Edwards RHS and time integrators for 3D active nematics.
ch_3d
ETD (exponential time differencing) integrator for the Cahn-Hilliard equation on a 3D periodic grid.
defects_3d
3-D disclination detection and event tracking.
engine
Unified active nematohydrodynamics engine on Riemannian 2-manifolds.
gauss_bonnet_3d
Gauss-Bonnet Euler characteristic observable for the phi_l isosurface.
mol_field_3d
Molecular field and co-rotation term for 3D active nematics.
nematic_field_2d
Complex nematic field on 2-manifolds.
runner_3d
High-level 3D simulation runners for dry active nematic and BECH (Beris-Edwards + Cahn-Hilliard) models.
runner_dec
Dry active nematic runner on 2D DEC meshes.
runner_dec_wet
Wet active nematic runner on 2D DEC meshes.
stokes_3d
Spectral Stokes solver for active nematics on a 3D periodic grid.
stokes_trait
Stokes solver trait and backends for active nematic simulations.

Structs§

BechStats
Statistics collected at each snapshot during a BECH run.
DefectInfo
Information about a detected topological disclination.
EulerIntegrator
First-order forward Euler integrator.
RK4Integrator
Fourth-order Runge-Kutta integrator (RK4).
SnapStats
Statistics collected at each snapshot during an active nematic run.

Functions§

beris_edwards_rhs
Compute dQ/dt from the Beris-Edwards equation.
ch_chemical_potential
Compute the Cahn-Hilliard chemical potential μ_l at each vertex.
ch_step_etd
Advance the lipid volume fraction φ_l by one time step using an Exponential Time Differencing (ETD1) scheme.
corotation_strain
Compute the co-rotation–strain coupling S(W, Q) at each vertex.
defect_count
Count +1/2 and -1/2 disclinations detected in the field.
k0_convolution
Compute the orientational transfer map ℳ_SM(Q^rot) via K₀ convolution.
molecular_field
Compute the active molecular field H_active = -δF_active/δQ at each vertex.
run_active_nematic_hydro
Run the active nematic simulation with full hydrodynamic coupling.
run_bech
Run the full Beris-Edwards-Cahn-Hilliard (BECH) simulation.
run_dry_active_nematic
Run the dry active nematic simulation.
scan_defects
Detect topological defects in a 2D Q-tensor field using holonomy.
stokes_solve
Solve the 2D incompressible Stokes equation for the active velocity field.