## 4 Results and Discussion
### SDL Model Implementation on Type-1 Datasets: Forward Wave Propagation Simulation  
The proposed SDL network is implemented in PyTorch Lightning, an open-source Python library (see [[https://www.pytorchlightning.ai](https://www.pytorchlightning.ai)]([https://www.pytorchlightning.ai](https://www.pytorchlightning.ai)) (accessed on 28 March 2022)), by integrating multi-GPU, and trained using simulation-assisted FE datasets of type-1 (Section 2.2). These training datasets from the FE analysis form a sequence of images in each simulation. Each simulation contains 675 images, and a mini-batch of 15 images is randomly selected. A sequence of 5 images is used for input to the network from the mini-batch, and the next successive 10 images are used to compare the network-predicted output. These images are in grayscale, with a size of 128 \(\times\) 128 pixels. The SDL architecture contains the four layers of an encoder structure, and the four layers of the decoder structure are stacked together. Each layer contains 256 hidden states, and the convolutional operation is performed on each input image, with a kernel size of 5 \(\times\) 5 with the same padding. The geometrical information from the CAD model is captured in the binary matrix, by assigning '1' for the inside and '0' for an outside domain, as shown in Figure 2. The binary matrix and the sequence of frames are used as input to the network. This binary matrix is multiplied with an output of a hidden state, before updating the next hidden state. In total, 80% of the simulations are used for training and the remaining for testing the model. To predict the more accurate simulations from the SDL model, the suitable learnable parameters and hyperparameters are selected. The hyperparameters are selected before the training process and cannot be altered, and the weights and basis are learnable parameters that must be updated during training. First, the input datasets are fed and propagated to compute the output through the network. This predicted output is compared with the ground truth, to determine the error and, then, calculate the derivative of the error function, with respect to the network learnable parameters. Now, network weights and basis are updated to minimize the error; this process is well known as the back-propagation algorithm. The back-propagation algorithm is suitable for fixed-size input-output pairs in feed-forward neural networks [33]. However, in the current work, the training datasets are spatiotemporal, so the back-propagation through time (BPTT) algorithm is employed, instead of the back-propagation algorithm. The mean square error (MSE) loss function is minimized during the training process, using the back-propagation through time (BPTT) algorithm. The MSE loss function used in this network is as follows:  
\[MSE=\frac{1}{n}\sum_{t=1}^{n}(\hat{y}_{i}-y_{i})^{2} \tag{6}\]  
here, \(\hat{y}\) is the predicted output sequence, y is the ground truth sequence, and \(n=\) the number of instances. While training, the ConvLSTM network, as shown in Figure 2, predicts the output for one input in each time step. So, the BPTT works by unrolling all input time steps. Furthermore, each time step has one input time step, one output time step, and a copy of the network. Then, the error is calculated for every time step and accumulated for each time step. The network is unrolled back, and learnable parameters are updated. The network learning rate is set to a constant value of 1.0 \(\times\) 10\({}^{-4}\) in the Adam optimizer and trained for 150 epochs. The network took a total of 36 h to train, using two NVIDIA GeForce RTX 3090 GPU processors. The average loss value computed by comparing network-predicted output with ground truth is used to determine the model learning efficiency. Figure 3a shows the average loss values over the number of epochs, and training loss is determined to be 6.0 \(\times\) 10\({}^{-4}\), whereas testing loss is 2.0 \(\times\) 10\({}^{-4}\).