bedrock-checkpoints-58

Physics-informed neural-network (PINN) surrogate trained on STAR-CCM+ RANS CFD results for steady coolant flow. The model maps geometry-aware coordinate features to flow fields and uses three geodesic flow-connectivity features in addition to the prior 55-feature local-chart representation.

The metadata below was extracted from starccm_pinn_model.pt and cross-checked against the included training configuration and loss history.

Checkpoint: starccm_pinn_model.pt

Setting Value
Training step 600,000
Saved schema identifier canonical_local_chart_dim55_geometry_conditioned_v1 (legacy name; checkpoint has 58 inputs)
Input features (semantic) 58
Encoded input dimension (Fourier) 986 = 58 raw + 58 x 2 x 8 frequencies
Output variables 7
Hidden width 384
Hidden layers 6
Linear layers 7
Activation SiLU
Main-network trainable parameters 1,120,903
Pressure-head trainable parameters 1,485
Total trainable parameters 1,122,388
Training geometries in metadata 35 (33 fitted pressure targets)
Data backend CUDA

The checkpoint is the final artifact from the included loss history, whose last row is step 600,000. It contains model and pressure-head weights, Adam optimizer state, scheduler state, normalization arrays, feature/output contracts, STAR-CCM+ metadata, and geometry-similarity metadata.

Outputs (7)

Public output order:

u, v, w, p, k, epsilon, temperature

The network internally predicts p_shape; physical pressure is reconstructed from the outlet reference and the geometry-conditioned pressure-drop head:

p = outlet_pressure + delta_p * p_shape

Supervised fields are u, v, w, and pressure-derived targets. k, epsilon, and temperature are latent physics-constrained fields.

Architecture

All 58 inputs are Fourier-encoded with 8 frequency bands (sine and cosine), producing 986 encoded values before the MLP.

State-dict tensor Layer shape (in -> out)
mlp.net.0.weight 986 -> 384
mlp.net.2.weight 384 -> 384
mlp.net.4.weight 384 -> 384
mlp.net.6.weight 384 -> 384
mlp.net.8.weight 384 -> 384
mlp.net.10.weight 384 -> 384
mlp.net.12.weight 384 -> 7

The separate pressure-drop head predicts log(delta_p) from 11 geometry descriptors using a ridge-linear branch plus a nonlinear correction branch:

geometry_regressor: 11 -> 1
geometry_mlp:       11 -> 32 -> 32 -> 1

STAR-CCM+ physics

Setting Value
Physics continuum 02.Coolant(LLC-10) - Steady
Region 0.coolant (LLC-10)
Turbulence model RkeTwoLayerTurbModel
Wall treatment KeTwoLayerAllYplusWallTreatment
Inlet temperature 298.15 K
Inlet mass flow 25.0 L/min
STAR-CCM+ version 2402.0001 / 19.02.013

Input feature names (58)

 0. x
 1. y
 2. z
 3. distance_to_inlet
 4. distance_to_outlet
 5. distance_to_wall
 6. axial_inlet_to_outlet
 7. radial_to_inlet_outlet_axis
 8. signed_distance_proxy
 9. wall_proximity
10. source_x_norm
11. source_y_norm
12. source_z_norm
13. source_axis_axial
14. source_axis_lateral_1
15. source_axis_lateral_2
16. source_axis_radial
17. chart_center_x_norm
18. chart_center_y_norm
19. chart_center_z_norm
20. chart_center_axis_axial
21. chart_center_axis_lateral_1
22. chart_center_axis_lateral_2
23. chart_local_x
24. chart_local_y
25. chart_local_z
26. chart_local_axis_axial
27. chart_local_axis_lateral_1
28. chart_local_axis_lateral_2
29. chart_radius
30. chart_log_count
31. chart_wall_distance_mean
32. chart_wall_distance_std
33. chart_cov_eig_1
34. chart_cov_eig_2
35. chart_cov_eig_3
36. chart_anisotropy
37. chart_planarity
38. wall_distance_x_minus
39. wall_distance_x_plus
40. wall_distance_y_minus
41. wall_distance_y_plus
42. wall_distance_z_minus
43. wall_distance_z_plus
44. surface_area
45. fluid_volume
46. surface_area_to_volume_ratio
47. equivalent_hydraulic_diameter
48. surface_genus
49. cross_section_area_min
50. cross_section_area_mean
51. cross_section_area_std
52. cross_section_area_min_ratio
53. number_of_strong_constrictions
54. high_curvature_surface_fraction
55. geodesic_distance_from_inlet
56. geodesic_distance_to_outlet
57. flow_coordinate_s

Loading

This is a full training checkpoint rather than a standalone serialized model class. Use the included trainer architecture to instantiate the network, then load the state dictionaries.

import torch

ckpt = torch.load(
    "starccm_pinn_model.pt",
    map_location="cpu",
    weights_only=False,
)

model_state = ckpt["model"]
pressure_head_state = ckpt["pressure_head"]

feature_names = ckpt["feature_names"]       # 58 inputs
output_order = ckpt["output_order"]         # public physical outputs
pressure_output_order = ckpt["pressure_output_order"]

# Input standardization
feature_mean = ckpt["feature_mean"]
feature_scale = ckpt["feature_scale"]

# Supervised-label standardization (u, v, w, p)
label_mean = ckpt["label_mean"]
label_scale = ckpt["label_scale"]

Only load pickle-based PyTorch checkpoints from sources you trust. The weights_only=False setting is required here because the checkpoint contains NumPy metadata in addition to tensors.

Included files

  • starccm_pinn_model.pt: final checkpoint at step 600,000
  • starccm_pinn_loss_history.csv: 3,001 logged records through step 600,000
  • bedrock_trainer_dim55.py: training/evaluation implementation (the filename is historical; this run uses 58 inputs)
  • build_local_chart_starccm_enriched_data_cuda.py: CUDA data builder for enriched local-chart features
  • bedrock_dim58_dp_head_geodesic.yaml: run configuration
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support