-
Notifications
You must be signed in to change notification settings - Fork 473
Description
Version
1.2.0
On which installation method(s) does this occur?
Docker
Describe the issue
Hello,
I compared DOMINO results using Version 1.2.0 and Version 1.1.1 on the same dataset, with both runs performed on a single GPU. The results are shown below. Only "surface" is used for training.
Although Version 1.2.0 demonstrates much better memory efficiency - enabling the use of a larger neural network -the outputs for Cp (pressure) and wall shear stress are considerably worse and diverge significantly from expectations.
Do you happen to have a successful benchmark case (with all settings specified) that I could replicate on my side? Thanks!
=================CONFIG.yaml=========
variables:
surface:
solution:
# The following is for AWS DrivAer dataset.
pressure_average: scalar
wall_shear_stress_average: vector
volume:
solution:
# The following is for AWS DrivAer dataset.
velocity_average: vector
pressure_average: scalar
global_parameters:
inlet_velocity:
type: vector
reference: [50.0] # vector [30, 0, 0] should be specified as [30], while [30, 30, 0] should be [30, 30].
air_density:
type: scalar
reference: 1.225
model:
model_type: surface # train which model? surface, volume, combined
activation: "relu" # "relu" or "gelu"
loss_function:
loss_type: "mse" # mse or rmse
area_weighing_factor: 800000 # Generally inverse of maximum area
interp_res: [128, 64, 64] # resolution of latent space 128, 64, 48
use_sdf_in_basis_func: true # SDF in basis function network
positional_encoding: false # calculate positional encoding?
volume_points_sample: 0 # Number of points to sample in volume per epoch
surface_points_sample: 20_000 # Number of points to sample on surface per epoch
surface_sampling_algorithm: area_weighted # random or area_weighted
geom_points_sample: 1_000_000 # Number of points to sample on STL per epoch
num_surface_neighbors: 21 # How many neighbors on surface?
num_neighbors_surface: 21 # How many neighbors on surface?
num_neighbors_volume: 0 # How many neighbors on volume?
combine_volume_surface: false # combine volume and surface encodings
use_surface_normals: true # Use surface normals and surface areas for surface computation?
use_surface_area: true # Use only surface normals and not surface area
integral_loss_scaling_factor: 100000 # Scale integral loss by this factor
normalization: min_max_scaling # or mean_std_scaling or min_max_scaling
encode_parameters: false # encode inlet velocity and air density in the model
surf_loss_scaling: 10.0 # scale surface loss with this factor in combined mode
vol_loss_scaling: 1.0 # scale volume loss with this factor in combined mode
geometry_encoding_type: both # geometry encoder type, sdf, stl, both
solution_calculation_mode: two-loop # one-loop is better for sharded, two-loop is lower memory but more overhead
resampling_surface_mesh: # resampling of surface mesh before constructing kd tree
resample: false #false or true
points: 1_000_000 # number of points
geometry_rep: # Hyperparameters for geometry representation network
geo_conv:
base_neurons: 256 # 256 or 64
base_neurons_in: 16
base_neurons_out: 16
volume_radii: [0.1, 0.5, 1.0, 2.5] # radii for volume
surface_radii: [0.01, 0.05, 1.0] # radii for surface
surface_hops: 5 # Number of surface iterations
volume_hops: 1 # Number of volume iterations
volume_neighbors_in_radius: [10, 10, 10, 10] # Number of neighbors in radius for volume
surface_neighbors_in_radius: [10, 10, 10] # Number of neighbors in radius for surface
fourier_features: false
num_modes: 5
activation: ${model.activation}
geo_processor:
base_filters: 8
activation: ${model.activation}
processor_type: unet # conv or unet
self_attention: true
cross_attention: true
nn_basis_functions: # Hyperparameters for basis function network
base_layer: 512
fourier_features: true
num_modes: 5
activation: ${model.activation}
local_point_conv:
activation: ${model.activation}
aggregation_model: # Hyperparameters for aggregation network
base_layer: 512
activation: ${model.activation}
position_encoder: # Hyperparameters for position encoding network
base_neurons: 512
activation: ${model.activation}
fourier_features: true
num_modes: 5
geometry_local: # Hyperparameters for local geometry extraction
volume_neighbors_in_radius: [64, 128] # Number of radius points
surface_neighbors_in_radius: [64, 128] # Number of radius points
volume_radii: [0.1, 0.25] # Volume radii
surface_radii: [0.05, 0.25] # Surface radii
base_layer: 512
parameter_model:
base_layer: 512
fourier_features: true
num_modes: 5
activation: ${model.activation}