Skip to content

Commit 896bbc6

Browse files
committed
feat(domino): support domino
1 parent d58a744 commit 896bbc6

File tree

5 files changed

+1647
-0
lines changed

5 files changed

+1647
-0
lines changed

examples/domino/conf/config.yaml

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2023 - 2024 NVIDIA CORPORATION & AFFILIATES.
2+
# SPDX-FileCopyrightText: All rights reserved.
3+
# SPDX-License-Identifier: Apache-2.0
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
project: # Project name
18+
name: AWS_Dataset
19+
20+
exp_tag: 1 # Experiment tag
21+
# Main output directory.
22+
output: outputs/${project.name}/${exp_tag}
23+
24+
hydra: # Hydra config
25+
run:
26+
dir: ${output}
27+
output_subdir: hydra # Default is .hydra which causes files not being uploaded in W&B.
28+
29+
data: # Input directory for training and validation data
30+
input_dir: /lustre/rranade/modulus_dev/data/volume_data/
31+
input_dir_val: /lustre/rranade/modulus_dev/data/volume_data_val/
32+
bounding_box: # Bounding box dimensions for computational domain
33+
min: [-3.5, -2.25 , -0.32]
34+
max: [8.5 , 2.25 , 3.00]
35+
bounding_box_surface: # Bounding box dimensions for car surface
36+
min: [-1.1, -1.2 , -0.32]
37+
max: [4.5 , 1.2 , 1.2]
38+
39+
# The directory to search for checkpoints to continue training.
40+
resume_dir: ${output}/models
41+
42+
variables:
43+
surface:
44+
solution:
45+
# The following is for AWS DrivAer dataset.
46+
pMeanTrim: scalar
47+
wallShearStressMeanTrim: vector
48+
volume:
49+
solution:
50+
# The following is for AWS DrivAer dataset.
51+
UMeanTrim: vector
52+
pMeanTrim: scalar
53+
nutMeanTrim: scalar
54+
55+
model:
56+
model_type: combined # train which model? surface, volume, combined
57+
loss_function: "mse" # mse or rmse
58+
interp_res: [128, 64, 48] # resolution of latent space
59+
use_sdf_in_basis_func: true # SDF in basis function network
60+
positional_encoding: false # calculate positional encoding?
61+
volume_points_sample: 8192 # Number of points to sample in volume per epoch
62+
surface_points_sample: 8192 # Number of points to sample on surface per epoch
63+
geom_points_sample: 200_000 # Number of points to sample on STL per epoch
64+
surface_neighbors: true # Pre-compute surface neighborhood from input data
65+
num_surface_neighbors: 7 # How many neighbors?
66+
use_surface_normals: true # Use surface normals and surface areas for surface computation?
67+
use_only_normals: true # Use only surface normals and not surface area
68+
integral_loss_scaling_factor: 0 # Scale integral loss by this factor
69+
normalization: min_max_scaling # or mean_std_scaling
70+
encode_parameters: true # encode inlet velocity and air density in the model
71+
geometry_rep: # Hyperparameters for geometry representation network
72+
base_filters: 16
73+
geo_conv:
74+
base_neurons: 32 # 256 or 64
75+
base_neurons_out: 1
76+
radius_short: 0.1
77+
radius_long: 0.5 # 1.0, 1.5
78+
hops: 1
79+
geo_processor:
80+
base_filters: 8
81+
geo_processor_sdf:
82+
base_filters: 8
83+
nn_basis_functions: # Hyperparameters for basis function network
84+
base_layer: 512
85+
aggregation_model: # Hyperparameters for aggregation network
86+
base_layer: 512
87+
position_encoder: # Hyperparameters for position encoding network
88+
base_neurons: 512
89+
geometry_local: # Hyperparameters for local geometry extraction
90+
neighbors_in_radius: 64
91+
radius: 0.05 # 0.2 in expt 7
92+
base_layer: 512
93+
parameter_model:
94+
base_layer: 512
95+
scaling_params: [30.0, 1.226] # [inlet_velocity, air_density]
96+
97+
train: # Training configurable parameters
98+
epochs: 500
99+
checkpoint_interval: 1
100+
dataloader:
101+
batch_size: 1
102+
pin_memory: true
103+
sampler:
104+
shuffle: true
105+
drop_last: false
106+
checkpoint_dir: /lustre/rranade/modulus_dev/modulus_forked/modulus/examples/cfd/external_aerodynamics/domino/outputs/AWS_Dataset/3/models/
107+
108+
val: # Validation configurable parameters
109+
dataloader:
110+
batch_size: 1
111+
pin_memory: true
112+
sampler:
113+
shuffle: true
114+
drop_last: false
115+
116+
eval: # Testing configurable parameters
117+
test_path: /lustre/rranade/benchmarking/drivaer_aws_surface_test_new/
118+
save_path: /lustre/rranade/domino/mesh_predictions_surf_final1/
119+
checkpoint_name: DoMINO.0.50.pt
120+
121+
data_processor: # Data processor configurable parameters
122+
kind: drivaer_aws # must be either drivesim or drivaer_aws
123+
output_dir: /lustre/rranade/modulus_dev/data/volume_data/
124+
input_dir: /lustre/datasets/drivaer_aws/drivaer_data_full/
125+
num_processors: 12

examples/domino/layers/__init__.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2023 - 2024 NVIDIA CORPORATION & AFFILIATES.
2+
# SPDX-FileCopyrightText: All rights reserved.
3+
# SPDX-License-Identifier: Apache-2.0
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.

0 commit comments

Comments
 (0)