Dynamic wind farm wake modeling based on a Bilateral Convolutional Neural Network and high-fidelity LES data

Wake interactions between wind turbines have a great impact on the overall performance of a wind farm. In this work, a novel deep learning method, called Bilateral Convolutional Neural Network (BiCNN), is proposed and then employed to accurately model dynamic wind farm wakes based on flow field data generated by high-fidelity simulations. Different from the existing machine-learning-based dynamic wake models where dimensionality reduction is essential, the proposed BiCNN is designed to directly process the different types of inputs through a background path and a foreground path, thus avoiding the errors due to dimensionality reduction. Substantial results show that the developed machine learning based wake model can achieve accurate wake predictions in real time, i.e. it captures the spatial variations of the dynamic wakes similarly as high-fidelity wake models and runs as fast as low-fidelity static wake models. The overall prediction error of the developed model is 3.7% with respect to the freestream wind speed. Furthermore, the results for a test farm consisting of 25 turbines show that the developed model can predict the dynamic wind farm wakes within several seconds using a standard laptop, while the same scenario using high-fidelity numerical models would consume tens of thousands of CPU hours.


Introduction
Wind energy has demonstrated tremendous potential and experienced a great surge in recent years [1], due to its sustainable superiority against traditional fossil fuels. However, normally constructed in large-scale arrays to reduce the overall cost, the wind turbine severely suffers from the wake interactions, which decreases its productivity, especially when a turbine operates in the lee of another [2]. To alleviate the wake effects and enhance the wind farm performance, two distinct fields have been widely studied. The former is the turbine layout optimization, where the installation locations of wind turbines are optimized to maximize annual revenue [3]. The latter is wind farm control, which manipulates the internal wind field to optimize a farm level objective such as power generation maximization or structural degradation minimization [4]. Although steady state wake models can meet the requirement for layout optimization, an accurate and efficient dynamic wake model (including turbulence, transport delay, time-varying mean wind speed and direction, and potentially floating platform motion) are essential for the design and evaluation of the wind farm control strategy [4].
Tremendous efforts have been made on wind farm wake modeling.
The existing wake models can be categorized according to their fidelity into three types, i.e. low-fidelity, medium-fidelity, and high-fidelity models. The low-fidelity models, e.g. the Jensen Park model [5,6], the FLORIS model [7], the 3D wake model [8], the 3DEG model [9], and the FOWFSim [10], are formulated analytically and are the frequently-used methods for wind farm layout optimization due to their fast speed. To further enhance the performance, a series of improvements have been made in recent years. For example, the expansion of the physical wake boundary was considered in Ref. [11], while the optimal cooperative control was integrated by Ref. [12]. Meanwhile, more fine-grained factors were included, such as yaw effects [13][14][15], background flow field [16], and terrain conditions [17,18]. Besides, the uncertainty based on high-fidelity data was also incorporated [19]. Nevertheless, because they are static, these low-fidelity models can only be used for optimizing static quantities such as mean power generation and are inadequate when considering unsteady quantities such as power fluctuation and structural load in the scenarios of control design [20]. Hence, it is an urgent requirement to build a dynamic model that can capture the unsteady wakes. Currently, most investigations on unsteady wakes are conducted based on numerical simulations such as Reynolds-averaged Navier-Stokes (RANS) and Large Eddy Simulation (LES), where turbine rotors are modeled by the actuator line method (ALM) [7,21,22] or the actuator disk method (ADM) [23][24][25]. Even though the accurate features of flows can be achieved, they require tremendous computational resources. For instance, to generate a 1000-s LES of a 3 km × 3 km wind farm with 6 turbines, it would take about 60 h of distributed computation with 512 processors on High-Performance Computing (HPC) clusters [7]. To alleviate the computational burden, the control-oriented wake modeling is attracting attention lately, such as the WFSim [26], the FAST. Farm [27], the curled wake model [28], and the FLORIDyn model [29]. To summarize, for wind farm wake prediction, the low-fidelity models are computationally efficient but lack of flow details, while high-fidelity models are computationally too expensive to be used in engineering applications. To bridge this gap, Machine Learning (ML) method especially Deep Learning (DL) has great potential to achieve both accuracy and efficiency for wake predictions.
For example, ML algorithms such as Long Short Term Memory (LSTM) network [30], Artificial Neural Network (ANN) [31,32], Convolutional Neural Network (CNN) [33], Graph Neural Network (GNN) [34], and Regression Decision Tree (RDT) [35] were employed to predict power generation by taking wake losses into consideration. In Ref. [36], the random forest method was combined with analytical wake models to improve the performance of wake calculations. The genetic programming was adapted in Ref. [37] to derive empirical relationships, thereby estimating wake velocity and turbulence intensity for both uniform and atmospheric boundary layer inflows. The stochastic analysis of an offshore wind farm was conducted in Ref. [38] where five ML approaches were evaluated. Furthermore, in Ref. [39], three ML algorithms were validated to estimate the velocity and turbulence intensity of a wind turbine's wake. Similarly, by employing the ML method and RANS/ADM coupling approach, a novel framework for turbine wake predictions was proposed in Ref. [40]. Based on the ANN yawed wake model, a double-layer machine learning framework was proposed in Ref. [41] for cooperative yaw control. Based on the Gaussian Process Regression (GPR) model, the cumulative wake for a wind farm was analyzed by Ref. [42]. The ML approach, i.e. the random forest, was also introduced in order to reconstruct the wake flow of the Vertical-Axis Wind Turbine (VAWT) [43]. Besides, more advanced DL methods such as Generative Adversarial Network (GAN) were also introduced [44].
However, the works on developing machine learning models that can predict dynamic wind farm wake flows are still very limited. An ML method named POD-LSTM was proposed to predict the dynamic wake interactions of wind turbines within a wind farm in Ref. [45]. In the pipeline of their paper, the original flow field data were reduced to low-dimensional coefficients using the Proper Orthogonal Decomposition (POD) method and then reshaped into the 1D sequence shape. Then, the reduced coefficients, the inflow velocity, and the distributed control parameters at previous time steps were concatenated as the input sequence of POD-LSTM, while the reduced coefficients at the future time step were set as the output sequence, thereby modeling the issue as a sequence-to-sequence (seq2seq) task. Thereafter, a deep Recurrent Neural Network (RNN) for seq2seq tasks, i.e. LSTM, was trained and tested for the reduced coefficients. In Ref. [46], based on data generated by the medium-fidelity model WFSim, an autoencoder structure was included to map the high-dimensional nonlinear system to a low-dimensional linear system. Although the dimensionality reduction in their pipelines solves the issue of the curse of dimensionality, the spatial correlations were consequently eliminated as the flow field was reshaped into the 1D format after reducing the dimension, which would reduce the accuracy inevitably and limit the ability of the model for long-term predictions. For example, the dimensional reduction procedure alone could lead to an error of 0.253 m/s compared with the raw high-fidelity flow field data [45].
Therefore, this paper aims at developing a ML based dynamic wind farm wake model based on full flowfield data without dimensionality The number of points for each subdomain in the x dimension N y The number of points for each subdomain in the y dimension P The dimension of each distributed parameter S The number of simulations in the LES database The prediction error θ The parameters of the BiCNN reduction to achieve accurate and long-term dynamic wake prediction in real time. Generally, the basic status of the flow field are contiguous and stable along the adjacent time steps, while the change of inflow velocity and distributed control parameters are the main external factors that cause the variations. Based on the above intuitions, we divide the input of our pipeline into two categories, i.e. the background and the foreground. The former refers to the historic flow fields which are in 2D formats, while the latter includes the inflow velocity as well as the distributed control parameters which are in 1D formats. Accordingly, we design a Background Path (BP) using the flow field as the input and a Foreground Path (FP) taking the inflow velocity and control parameters as the input, forming the proposed Bilateral Convolutional Neural Network (BiCNN). For the background path, the shapes of the input and output flow fields are both kept in 2D formats, thereby modeling the target as an image to image (i2i) task and fully maintaining the abundant spatial information. For the foreground path, the 1D inflow velocity and distributed control parameters are first concatenated and reshaped into 2D formats after a densely connected layer. Then, as the feature maps are all in 2D formats, we design three stacked 2D CNN layers in the background path and the foreground path respectively. Particularly, an auxiliary loss is elaborately designed which constrains the foreground path to learn the variation tendency. Subsequently, the outputs of the background path and the foreground path are added directly and then processed by a densely connected layer to generate the predicted flow field at the further time step. This novel deep learning method without dimensionality reduction is then used to develop a dynamic wind farm wake model based on high-fidelity LES data. After training, the developed model's performance is evaluated by an extensive set of experiments. The comparison with high-fidelity data demonstrates that it can achieve accurate wake predictions in real time. Particularly, the Mean Absolute Error (MAE) between the predicted results and high-fidelity data is 0.330 m/s, which is 3.7% of the freestream wind speed. More importantly, the proposed BiCNN can still maintain a good accuracy even after 100 iterative predictions. The novelty and contributions of this paper are as follows: (1) A novel machine learning based dynamic wind farm wake model is developed based on high-fidelity simulation data without dimensionality reduction. Different from the existing ML-based dynamic wake models which are all based on dimensionality reduction, this paper develops a deep learning method which directly formulates the issue as a supervised ML task, thus avoiding the dimensionality reduction errors and retaining the detailed flow field features. The comparison between the proposed model and existing wake models is summarised in Table 1.
(2) The proposed BiCNN method introduces the convolutional neural network into the dynamic wind farm wake model for the first time. Compared with the existing methods, the BiCNN not only demonstrates the huge potential of the CNN in wake modeling but also shifts the traditional paradigm where dimensionality reduction is essential. Particularly, the CNN-based background path and foreground path are elaborately designed in the BiCNN to directly process the different types of inputs, which also provides a new framework for the ML-based surrogate modeling of general fluid systems. (3) The performance of the developed model is evaluated through comprehensive simulation tests, which include the predictions of single turbine wakes, multiple turbine wakes, yawed wakes, as well as wake interactions within a large wind farm. The results demonstrate that the proposed model can predict the unsteady wind farm wakes very accurately in real time. Specifically, the prediction error on the test set is only 0.330 m/s, which is just 3.7% of the freestream wind magnitude.
The remaining part of this paper is organized as follows: the proposed ML-based method and the high-fidelity data are described in Section 2. Thereafter, the model evaluation, validation, and prediction are given in Section 3. The conclusions are finally drawn in Section 4.

Methodology
There are two types of inputs for predicting the flow field at the future time step T + 1: the historic flow field conditions at time steps 1 ~ T and the influence factors including the inflow velocity as well as distributed control parameters at time steps 1 ~ T. Generally, the flow field at time step T + 1 is strongly related with those at adjacent time steps. Hence, the neighboring historic flow fields can be seen as the basic status, i.e. the background, of the flow field at time step T + 1. By contrast, the influence factors determine the variation tendency of the wake, which can be seen as the foreground at time step T + 1. Based on the above intuitions, we develop our BiCNN with two branches where the background path takes the historic flow fields as the input to obtain the background information and the foreground path takes influence factors as the input to generate the foreground features. The overall structure of the proposed BiCNN is illustrated in Fig. 1. In the rest part of this section, the proposed machine learning based wake modeling method (including the problem formalization, the bilateral structure, the loss function, the high-fidelity data, the model training, and the multi-step predictions for the whole wind farm) will be described in detail.
where E(θ) means the expected average error of the predicted flow field, while the loss function L(⋅) measures the disparity between the highfidelity flow fields and the predicted results.

Bilateral structure
As formulated in Eq. (1), the whole issue can be modeled as a supervised machine learning problem, aiming at predicting the flow field at the current time step based on flow history. Here, we utilize the convolutional neural network to address this issue where two branches are designed to process the background information and foreground features respectively. The detailed illustration of the proposed BiCNN is shown in Fig. 3, where the flow fields from time step 1 to T are fed into the background path while the inflow velocity and the distributed control parameters from time step 1 to T are fed into the foreground path.
Specifically, as in 2D format, the flow fields at time steps from 1 to T can be seen as an image with T channels which can be directly manipulated by the 2D convolution layer. Meanwhile, the function of the background path is to provide the basic status of the future flow field based on the previous flow fields, which means the input and the output are highly related and homogeneous. Hence, we design a relatively simple structure for the background path which stacks three convolution layers with (3 × 3), (1 × 1) and (3 × 3) kernel sizes and 1 channel respectively. For the foreground path, the inflow velocity and distributed parameters in 1D formats are concatenated first. Then, a densely connected layer is attached to extend the shape of the concatenated feature maps, which is thereafter reshaped to the 2D format in the identical shape of the flow field. In this way, the extracted feature maps can then be processed by convolution operations. Finally, three 2D convolution layers are stacked to capture the foreground features. Particularly, as the relationship between the input and the output of the foreground path is highly nonlinear, the activation function Rectified Linear Unit (ReLU) is adopted to enhance the representational ability for nonlinear features. With this network design, the background information is captured by the background path while the foreground features are generated by the foreground path. Thereafter, the outputs of the background path and the foreground path are added directly and then fed into a densely connected layer to generate the predicted flow field at time step T + 1. The detailed setting of each layer is given in Table 2.

Loss function
As illustrated above, the background information and foreground features are extracted by the background path and foreground path respectively. The pivotal point which drives different branches to optimize for specific targets is the loss function, which is described in this subsection.
As shown in Fig. 3, there are two loss functions in the proposed BiCNN, i.e. one for the final output (Loss1) and the other for the foreground path (Loss2), which are both set as Mean Squared Error (MSE) function. Loss1 is expressed as: where ũ i,j T+1 and û i,j T+1 indicate the value of flow field at the position (i, j) and time step T + 1 obtained by LES simulation and the BiCNN respectively. By minimizing Loss1, the whole network is trained to learn the relationship between the input and the output, thereby delivering accurate predictions. In contrast, the reference for Loss2 is the disparity between flow fields at time steps T and T + 1, which is expressed as: To be specific, the minimization of Loss2 impels the foreground path to capture the variation between flow fields at time steps T and T + 1, i.e. the foreground features.
In summary, the final output is optimized by Loss1 to approximate the LES data as good as possible, while the output of foreground path is constrained by Loss2 to learn the variation tendency of the wake. As the final output is the summation of the background path and the foreground path, the background path will be driven to deliver the background information naturally. The whole loss can then be expressed as: where û FP represents the output the foreground path and α controls the weight of Loss2. As the optimization of Loss1 is the main target of the model while Loss2 plays the subsidiary role, the value of weight α is set as 0.75.

High-fidelity data
To generate the dataset for training and testing, an LES solver developed by the National Renewable Energy Laboratory (NREL) for wind farm simulations, i.e. SOWFA [47], is utilized where the turbine rotors are modeled as actuator lines. Three turbines [51]  The generation process is conducted on a local cluster using 256 CPU cores. It takes around 7 × 10 5 CPU hours for the whole dataset and the consumption of each simulation is around 46 h. See Ref. [45] for the detailed simulation procedure.

Model training
There are 180 flow scenarios in the whole dataset where each scenario contains unsteady flow fields at 710 discrete time steps. Here, the first 64% time steps of each scenario are chosen as the training set, the 64% ~ 85% time steps as the validation set, and the remaining 15% time steps as the test set. The lookback time step of the flow history is set as 5. Then, the proposed BiCNN is trained on the training set with a batch size of 1024 under the learning rate of 0.001 and evaluated on the validation set after each epoch. During the training procedure, the early-stopping and the dynamic learning rate adjustment strategies are adopted to prevent the overfitting issue. To be concrete, for early-stopping, the training process is interrupted if the loss on the validation set does not decrease for 50 epochs. Meanwhile, the dynamic learning rate adjustment strategy would halve the learning rate if the loss does not reduce for 25 epochs. The whole training procedure takes 653s using a single Intel Core i7-7700 CPU and 32, 768 MB RAM. After training, the performance of the BiCNN is measured on the test set by the mean absolute error: where U

Multi-step predictions for the whole wind farm
After training, the flow field at time step T + 1, i.e. û T+1 , can be predicted by the proposed BiCNN using the historical flow field [ũ 1 ,ũ 2 ,…, u T ], the inflow velocity [u 0 1 , u 0 2 , …, u 0 T ], and the distributed control parameters [d 1 , d 2 , …, d T ]. Thereafter, by defining the inflow velocity and distributed control parameters at time step T + 1, i.e. u 0 T+1 and d T+1 , the flow field at time step T + 2 can be predicted based on the historical data as well as the predicted û T+1 . In this way, multi-step predictions can be achieved iteratively for single turbine wakes.
For the whole wind farm, the BiCNN can be applied to the flow field in each subdomain from upstream to downstream sequentially. After combining all the subdomains' predictions, the prediction for the whole wind farm can be obtained. The multi-step predictions can then be achieved iteratively for the whole farm similarly as the single turbine case.

Results and discussions
To comprehensively analyze the performance of the proposed BiCNN, we first evaluate the prediction errors on the validation set and test set for each turbine on each wind speed case. Then, quantitative and qualitative evaluations are carried out on the multi-step predictions for both the single-turbine wakes and the multiple-turbine wakes. Finally, two case studies are carried out to demonstrate the ability of the proposed BiCNN in capturing the yaw effects and in simulating an array of wind turbines.

Model evaluations
After training, the mean absolute error between the predictions and the SOWFA data on the test set is 0.330 m/s, which is 3.7% of the freestream wind speed. Apart from the overall performance metric, we also report the prediction error for each turbine at each wind speed case. As can be seen from Table 3, the proposed BiCNN has a similar performance for the validation set and the test set, demonstrating that the overfitting issue is well tackled by the proposed method. Otherwise, there will exist a clear accuracy gap between the validation set and test set. On the other hand, the accuracy for the turbine operating in the freestream condition (Turbine 1) is noticeably higher than those operating in the front turbine's wake condition (Turbine 2 and Turbine 3). This is reasonable because the wakes of the latter are significantly more complex than the former. Meanwhile, the absolute errors increase with the wind speed, while the relative errors normalized by the corresponding freestream wind speeds are on the same level. This shows that the normalized prediction error is a better metric to evaluate the overall performance. In conclusion, all these results show that a consistently high level of accuracy is achieved by the proposed model for different inflow conditions and different wind speeds. Specifically, for all these cases, the relative errors are about 3.7% ± 0.2%.

Single-turbine wake predictions
Based on the test set, the results of single-turbine wake predictions are given here, where the proposed BiCNN predicts flow fields in multitime steps iteratively. Concretely, for BiCNN, the initial flow fields from time step T − 5 to T − 1 are set as identical as SOWFA. Then the identical inflow conditions and yaw angles as SOWFA from time step T to T + n are fed into the BiCNN to predict the flow fields from T to T + n.
Different from the single-step prediction, the errors will be accumulated when iteratively predicting wake flow fields for multi steps, which then further affects the accuracy of the subsequent time steps. Therefore, the prediction errors for iterative multi-step predictions can strongly illustrate the stability and the permanence of a dynamic wind farm wake model, demonstrating its capability for long-term wake predictions. To verify the effectiveness of the proposed BiCNN on multistep predictions, 100 time steps are predicted iteratively for each turbine on each wind speed case, where the prediction errors are calculated and averaged along the time dimension. As can be seen from Table 4, the prediction errors are about two times of the errors reported in Table 3 for single-step predictions. Despite the error increase, the overall prediction errors still remain low, which is only up to 7.7% (7.3% on average) of the freestream wind speed. As a contrast, the overall prediction error of the POD-LSTM [45] for iterative multi-step predictions is 10.0% on average based on the same configuration. Hence, a great leap of 27% improvement is achieved by the proposed BiCNN compared with the dimensionality reduction based method i.e. the POD-LSTM [45].
We then examine the ML-based wake model's qualitative performance. Here, we choose two representative cases, i.e., the turbine operating in freestream condition and the turbine operating in the front turbine's wake. The comparisons between SOWFA and BiCNN at time steps T, T + 30, and T + 100 are demonstrated in Fig. 4 and Fig. 5, while the video version can be seen in Video 1 and Video 2.
Supplementary video related to this article can be found at https ://doi.org/10.1016/j.energy.2022.124845 As shown in Fig. 4, the wake experiences a dramatic change during the first 30 time steps, while the proposed BiCNN successfully captures the unsteady features of the wake, and retains good accuracy throughout the time period. As the flow field at the future time step is predicted iteratively based on the predicted flow field at the previous time step, the errors will continue to accumulate over time. In spite of this, the overall shape of the wake is still reconstructed well even at time step T + 100. Similar results can also be seen in the case where the turbine operates in the front turbine's wake. Interfered by the wake of the upstream turbine, the wake of the downstream turbine is more complex and volatile. As illustrated in Fig. 5, the spatial pattern and shape of the wakes are predicted accurately by the BiCNN for this case as well.
Next, the wake profiles at different streamwise locations, from one rotor diameter in front of the turbine (X = − 1D) to four rotor diameters behind the turbine (X = 4D), are examined to further demonstrate the prediction performance. As shown in the left column of Fig. 6, at X = 0D, the freestream inflow is strongly disturbed by the turbine rotor. Then, the wake develops in the streamwise direction from X = 1D to X = 4D, and finally reaches a Gaussian-like profile at X = 4D. For the case of the turbine operating in the front turbine's wake in the right column of Fig. 6, the inflow at X = − 1D is in a near Gaussian shape induced by the upstream turbines, while the wake development from X = 1D to X = 4D shows a similar tendency as the freestream case.
From the above figures, we can see that the wakes predicted by the BiCNN are in high agreement with high-fidelity simulation results. Although certain details are not well retained due to the error accumulation over time, the main wake structures are reconstructed successfully even at time step T + 100. To sum up, the main features of the unsteady turbine wake are successfully captured by the BiCNN, which is especially true when considering the inherently chaotic nature of the turbulent wakes and the limited training data. More importantly, the wake prediction is achieved in real time, i.e. only 0.002s computational time is required for each time step using a single Intel Core i7-7700 CPU.

Multi-turbine wake predictions
In this subsection, the experiments on multiple-turbine wake predictions are implemented to illustrate the ability of BiCNN in capturing wake interactions. To be specific, we consider the case of two turbines located in a row with a downstream spacing of 5 rotor diameters. The BiCNN is utilized to predict the flow field in multi-time steps iteratively. Similarly, for the front turbine, the initial inflow conditions of BiCNN from time step T − 5 to T − 1 are set as identical as SOWFA, while yaw angles for all turbines from time step T to T + n are set as identical as SOWFA.
An example case is selected in Fig. 7 and Video 3 to illustrate the ability of BiCNN in capturing the wake interactions, where the results Table 3 The prediction errors on the validation set and the test set based on the single-step prediction. The values on the left and right sides show the evaluations on the validation and the test sets respectively, while the Error shown in the last column is the percentage of the average error against the freestream wind speed. Please notice that the errors are only calculated for the area within the wake boundary (99% of free stream).  Table 4 The prediction errors on the test set based on the iterative multi-step prediction. The values on the left and right sides show the evaluations for the BiCNN and POD-LSTM respectively, while the Error shown in the last column is the percentage of the average error against the freestream wind speed. Please notice that the errors are only calculated for the area within the wake boundary (99% of free stream).   We mention that without strong generalization ability, a model will fail after just several iterations, as the input will deviate quickly from the reference values due to the error accumulation, especially for multiturbine wake predictions. The results here thus demonstrate the robust generalization ability of the BiCNN in predicting the wake interactions iteratively. Furthermore, we calculate and compare the power production based on the flow fields predicted by the BiCNN and SOWFA. As shown in Fig. 8, the power productions predicted by BiCNN agree with the SOWFA's production in the majority of time. In addition, for the first turbine, the average powers predicted by BiCNN and SOWFA are respectively 1. To further verify the performance of the proposed BiCNN, the corresponding velocity profiles at various locations from X = − 1D to X = 9D are reported in Fig. 9. The turbines are located at X = 0D and X = 5D, where the wake deficits emerge. Then, behind each turbine, the wake features, including wake deflection, recovery and expansion, are all predicted well by the proposed BiCNN. Most importantly, the impact on the downstream turbine from the upstream turbine is well captured, which demonstrates the developed model's great potential for largescale wind farm predictions.

The yaw effects on turbine wakes
To demonstrate the ability of the BiCNN in capturing the yaw effects, a single turbine case with opposite yaw angles is investigated. Specifically, operating under the identical initial condition, two independent turbines are given different yaw angles (− 20 • and 20 • ). The snapshots at time steps T + 120, T + 150, and T + 200 are shown in Fig. 10, while the video is available as Video 4. As can be seen, for both yaw angles, the main features of the unsteady turbine wakes are captured by the developed model during the whole procedure, including not only the streamwise convection of flow structures in the deflected direction due to yaw but also the wake's crosswind meandering. This fully demonstrates the great performance of the proposed BiCNN. Compared with the ML model based on dimensionality reduction [45], the streamwise convection and crosswind meandering of flow structures can be better captured by our model because the intact spatial information is retained. Besides, the generalization ability of the developed model is also verified through this case as the constant yaw pattern is not included during training.
Supplementary video related to this article can be found at https ://doi.org/10.1016/j.energy.2022.124845

A 25-turbine test case
To demonstrate the use of the developed model for large-scale wind farm wake predictions, the simulation of a 5 × 5 wind turbine test case is  Fig. 11 and the corresponding video is available as Video 5. As can be seen, the wake interactions between turbines are well captured by the developed model. The unsteady flow field features predicted by the developed model are similar to those in the LES of wind farms, including the wake meandering and the streamwise convection of flow structures. Thus, the generalization ability of the proposed BiCNN to a wind farm is clearly demonstrated by the above experiment. In terms of efficiency, for the proposed BiCNN, the simulation process for 200 time steps only takes 7.3s, i.e. 0.037s for each time step, using a single Intel Core i7-7700 CPU. While with LES models, it would require tens of thousands of CPU hours on an HPC cluster to simulate this case. Therefore, this case fully demonstrates the applied value of the developed model in the control design of utility-scale wind farms.
Supplementary video related to this article can be found at https ://doi.org/10.1016/j.energy.2022.124845

Conclusions
In this work, a deep learning method, called Bilateral Convolutional Neural Network, was developed and then employed for dynamic wind farm wake modeling based on full flowfield high-fidelity Large Eddy Simulation data without dimensionality reduction. As the first method that introduces the convolutional neural network into the dynamic wind farm wake model, the developed BiCNN model significantly outperformed the conventional paradigm where dimensionality reduction is essential. Specifically, in our pipeline, both the input and output flow fields were kept in 2D formats, while the inputs were classified into two categories according to physical intuitions. Accordingly, two CNN-based paths, i.e. a foreground path and a background path, were designed to process the different types of inputs, leading to a new framework for The developed wake model was then extensively evaluated under diverse inflow conditions and turbine yaw settings. Compared against high-fidelity LES data, the overall error was only 3.7% with respect to the freestream wind speed. Further analysis demonstrated that the wind farm wakes, including both near wake and far wake, were correctly captured by the proposed model. Meanwhile, the velocity profiles matched very well with the high-fidelity data, for turbines operating both in freestream condition and the front turbine's wake, and the detailed wake structures were captured very well, including the wake deflection with the turbine yaw angle, the wake recovery in the streamwise direction, and more importantly the wake meandering. Furthermore, the developed model maintained a consistently good performance for long-term simulations, demonstrating the robustness of the developed model. Besides, the parametric study for turbine yaw effects was carried out. The results showed that the impact of turbine yaw was correctly captured, which also demonstrated the generalization ability of the developed model to the input settings that are drastically different from the training set. Furthermore, the case study for a 5 × 5 turbine array was carried out using the developed model. The results showed that the flow details, in particular the wake interactions, were predicted by the proposed BiCNN in real time, demonstrating the huge potential of the developed model for the fast simulations of wind farms.
The future work will involve the use of the proposed BiCNN wake model for wind farm control, aiming at maximizing the wind power generation, reducing wind turbine load, and supporting the electricity grid. Other research directions include generalizing the model to other types of turbines and the extension of BiCNN for full 3D dynamic wake modeling.