Loss Function Implementation for 2D Helmholtz Problem.
This module implements the loss function for solving the 2D Helmholtz equation using neural networks. It focuses on computing residuals in the weak form of the PDE with wave number parameter.
Key functions
- pde_loss_helmholtz: Computes domain-based PDE loss
Note
The implementation is based on the FastVPINNs methodology [1] for efficient computation of Variational residuals of PDEs.
References
[1] FastVPINNs: Tensor-Driven Acceleration of VPINNs for Complex Geometries DOI: https://arxiv.org/abs/2404.12063
pde_loss_helmholtz(test_shape_val_mat, test_grad_x_mat, test_grad_y_mat, pred_nn, pred_grad_x_nn, pred_grad_y_nn, forcing_function, bilinear_params)
Calculates residual for 2D Helmholtz equation.
Implements the FastVPINNs methodology for computing variational residuals in 2D Helmholtz equation (-Δu - k²u = f) using efficient tensor operations.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
test_shape_val_mat
|
Tensor
|
Test function values at quadrature points Shape: (n_elements, n_test_functions, n_quad_points) |
required |
test_grad_x_mat
|
Tensor
|
Test function x-derivatives at quadrature points Shape: (n_elements, n_test_functions, n_quad_points) |
required |
test_grad_y_mat
|
Tensor
|
Test function y-derivatives at quadrature points Shape: (n_elements, n_test_functions, n_quad_points) |
required |
pred_nn
|
Tensor
|
Neural network solution at quadrature points Shape: (n_elements, n_quad_points) |
required |
pred_grad_x_nn
|
Tensor
|
x-derivative of NN solution at quadrature points Shape: (n_elements, n_quad_points) |
required |
pred_grad_y_nn
|
Tensor
|
y-derivative of NN solution at quadrature points Shape: (n_elements, n_quad_points) |
required |
forcing_function
|
callable
|
Right-hand side forcing term |
required |
bilinear_params
|
dict
|
Dictionary containing: eps: Diffusion coefficient (typically 1.0) k: Wave number parameter |
required |
Returns:
Type | Description |
---|---|
Tensor
|
Cell-wise residuals averaged over test functions Shape: (n_cells,) |
Note
The weak form includes: - Diffusion term: -∫∇u·∇v dΩ - Wave term: ∫k²uv dΩ Implementation handles high wave numbers through efficient tensor operations.