diff --git a/SU2.bib b/SU2.bib index c947b68a..8ed341e6 100644 --- a/SU2.bib +++ b/SU2.bib @@ -1,5 +1,6 @@ @article{pascarella2019impact, title={Impact of POD modes energy redistribution on flow reconstruction for unsteady flows of impulsively started airfoils and wings}, + doi={10.1080/10618562.2019.1687887}, author={Pascarella, G and Fossati, M and Barrenechea, G}, journal={International Journal of Computational Fluid Dynamics}, pages={1--11}, @@ -9,6 +10,7 @@ @article{pascarella2019impact @article{kulkarni2020nonintrusive, title={Nonintrusive continuum sensitivity analysis for fluid applications}, + doi={10.1016/j.jcp.2019.109066}, author={Kulkarni, Mandar D and Canfield, Robert A and Patil, Mayuresh J}, journal={Journal of Computational Physics}, volume={403}, @@ -19,6 +21,7 @@ @article{kulkarni2020nonintrusive @article{belligoli2019using, title={Using an Anti-Fairing to Reduce Drag at Wing/Body Junctions}, + doi={10.2514/1.j057481}, author={Belligoli, Zeno and Koers, Annemiek J and Dwight, Richard P and Eitelberg, Georg}, journal={AIAA Journal}, volume={57}, @@ -30,6 +33,7 @@ @article{belligoli2019using @article{sagebaum2019high, title={High-Performance Derivative Computations using CoDiPack}, + doi={10.1145/3356900}, author={Sagebaum, Max and Albring, Tim and Gauger, Nicolas R}, journal={ACM Transactions on Mathematical Software (TOMS)}, volume={45}, @@ -41,6 +45,7 @@ @article{sagebaum2019high @article{kenway2019effective, title={Effective adjoint approaches for computational fluid dynamics}, + doi={10.1016/j.paerosci.2019.05.002}, author={Kenway, Gaetan KW and Mader, Charles A and He, Ping and Martins, Joaquim RRA}, journal={Progress in Aerospace Sciences}, pages={100542}, @@ -50,6 +55,7 @@ @article{kenway2019effective @inproceedings{michael2019application, title={Application of Sparse Grid Surrogate Models to Airfoil Analysis and Design}, + doi={10.2514/6.2019-2928}, author={Michael, Nicholas and Weed, Richard}, booktitle={AIAA Aviation 2019 Forum}, pages={2928}, @@ -67,6 +73,7 @@ @article{marks2019far @article{swischuk2019projection, title={Projection-based model reduction: Formulations for physics-based machine learning}, + doi={10.1016/j.compfluid.2018.07.021}, author={Swischuk, Renee and Mainini, Laura and Peherstorfer, Benjamin and Willcox, Karen}, journal={Computers \& Fluids}, volume={179}, @@ -77,6 +84,7 @@ @article{swischuk2019projection @article{mishra2019uncertainty, title={Uncertainty estimation module for turbulence model predictions in SU2}, + doi={10.2514/1.j057187}, author={Mishra, Aashwin Ananda and Mukhopadhaya, Jayant and Iaccarino, Gianluca and Alonso, Juan}, journal={AIAA Journal}, volume={57}, @@ -88,6 +96,7 @@ @article{mishra2019uncertainty @incollection{kumar2020uncertainty, title={Uncertainty Quantification and Robust Optimization in Engineering}, + doi={10.1007/978-981-13-9806-3_3}, author={Kumar, Dinesh and Alam, Syed Bahauddin and Vu{\v{c}}ini{\'c}, Dean and Lacor, C}, booktitle={Advances in Visualization and Optimization Techniques for Multidisciplinary Research}, pages={63--93}, @@ -97,6 +106,7 @@ @incollection{kumar2020uncertainty @incollection{molina2020application, title={Application of DDES to Iced Airfoil in Stanford University Unstructured (SU2)}, + doi={10.1007/978-3-030-27607-2_23}, author={Molina, Eduardo S and Silva, Daniel M and Broeren, Andy P and Righi, Marcello and Alonso, Juan J}, booktitle={Progress in Hybrid RANS-LES Modelling}, pages={283--293}, @@ -415,6 +425,7 @@ @article{Gutierrez2019 @incollection{kumar2019combination, title={Combination of Polynomial Chaos with Adjoint Formulations for Optimization Under Uncertainties}, + doi={10.1007/978-3-319-77767-2_35}, author={Kumar, Dinesh and Raisee, Mehrdad and Lacor, Chris}, booktitle={Uncertainty Management for Robust Industrial Design in Aeronautics}, pages={567--582}, @@ -424,6 +435,7 @@ @incollection{kumar2019combination @inproceedings{morelli2019simulation, title={Simulation and Analysis of Oscillating Airfoil Ice Shapes via a Fully Unsteady Collection Efficiency Approach}, + doi={10.4050/f-0075-2019-14651}, author={Morelli, Myles and Zhou, Beckett Y and Guardone, Alberto and others}, booktitle={75th International Annual Forum American Helicopter Society (AHS)}, pages={1--12}, @@ -432,6 +444,7 @@ @inproceedings{morelli2019simulation @article{razaaly2019impact, title={Impact of geometric, operational, and model uncertainties on the non-ideal flow through a supersonic ORC turbine cascade}, + doi={10.1016/j.energy.2018.11.100}, author={Razaaly, Nassim and Persico, Giacomo and Congedo, Pietro Marco}, journal={Energy}, volume={169}, @@ -442,6 +455,7 @@ @article{razaaly2019impact @incollection{kaynak2019transition, title={Transition Modeling for Low to High Speed Boundary Layer Flows with CFD Applications}, + doi={10.5772/intechopen.83520}, author={Kaynak, Unver and Bas, Onur and Cakmakcioglu, Samet Caka and Tuncer, Ismail Hakki}, booktitle={Boundary Layer Flows-Theory, Applications and Numerical Methods}, year={2019}, @@ -450,6 +464,7 @@ @incollection{kaynak2019transition @inproceedings{sharma2019numerical, title={Numerical investigation of noise generation by rod-airfoil configuration using DES (SU2) and the FW-H analogy}, + doi={10.2514/6.2019-2400}, author={Sharma, Sparsh and Geyer, Thomas F and Sarradj, Ennes and Schmidt, Heiko}, booktitle={25th AIAA/CEAS Aeroacoustics Conference}, pages={2400}, @@ -458,6 +473,7 @@ @inproceedings{sharma2019numerical @inproceedings{albring_challenges_2019, title = {Challenges in {Sensitivity} {Computations} for ({D}) {DES} and {URANS}}, + doi = {10.2514/6.2019-0169}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2019-0169}, booktitle = {{AIAA} {Scitech} 2019 {Forum}}, author = {Albring, Tim and Zhou, Beckett Yx and Gauger, Nicolas R}, @@ -468,6 +484,7 @@ @inproceedings{albring_challenges_2019 @article{thomas_cupydo-integrated_2019, title = {{CUPyDO}-{An} integrated {Python} environment for coupled fluid-structure simulations}, + doi = {10.1016/j.advengsoft.2018.05.007}, volume = {128}, url = {https://www.sciencedirect.com/science/article/pii/S0965997817310906}, journal = {Advances in Engineering Software}, @@ -479,6 +496,7 @@ @article{thomas_cupydo-integrated_2019 @article{palar_efficient_2019, title = {Efficient global optimization with ensemble and selection of kernel functions for engineering design}, + doi = {10.1007/s00158-018-2053-9}, volume = {59}, url = {https://link.springer.com/article/10.1007/s00158-018-2053-9}, number = {1}, @@ -491,6 +509,7 @@ @article{palar_efficient_2019 @article{poirier_powder_2019, title = {Powder {Development} and {Qualification} for {High}-{Performance} {Cold} {Spray} {Copper} {Coatings} on {Steel} {Substrates}}, + doi = {10.1007/s11666-019-00833-9}, volume = {28}, url = {https://link.springer.com/article/10.1007/s11666-019-00833-9}, number = {3}, @@ -502,6 +521,7 @@ @article{poirier_powder_2019 @article{yirtici_predictions_2019, title = {Predictions of ice formations on wind turbine blades and power production losses due to icing}, + doi = {10.1002/we.2333}, url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/we.2333}, journal = {Wind Energy}, author = {Yirtici, Ozcan and Ozgen, Serkan and Tuncer, Ismail H}, @@ -510,6 +530,7 @@ @article{yirtici_predictions_2019 @inproceedings{koodly_ravishankara_towards_2019, title = {Towards a {Vortex} {Generator} {Model} for {Integral} {Boundary} {Layer} {Methods}}, + doi = {10.2514/6.2019-0803}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2019-0803}, booktitle = {{AIAA} {Scitech} 2019 {Forum}}, author = {Koodly Ravishankara, Akshay and Ozdemir, Huseyin and Franco, Andrea}, @@ -519,6 +540,7 @@ @inproceedings{koodly_ravishankara_towards_2019 @inproceedings{zhou_towards_2019, title = {Towards {Adjoint}-based {Broadband} {Noise} {Minimization} using {Stochastic} {Noise} {Generation}}, + doi = {10.2514/6.2019-0002}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2019-0002}, booktitle = {{AIAA} {Scitech} 2019 {Forum}}, author = {Zhou, Beckett Yx and Gauger, Nicolas R and Yao, Huadong and Peng, Shia-Hui and Davidson, Lars}, @@ -528,6 +550,7 @@ @inproceedings{zhou_towards_2019 @article{re_adaptive_2019, title = {An adaptive {ALE} scheme for non-ideal compressible fluid dynamics over dynamic unstructured meshes}, + doi = {10.1007/s00193-018-0840-2}, volume = {29}, url = {https://link.springer.com/article/10.1007/s00193-018-0840-2}, number = {1}, @@ -540,6 +563,7 @@ @article{re_adaptive_2019 @inproceedings{holland_towards_2019, title = {Towards {Integrated} {Field} {Inversion} and {Machine} {Learning} {With} {Embedded} {Neural} {Networks} for {RANS} {Modeling}}, + doi = {10.2514/6.2019-1884}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2019-1884}, booktitle = {{AIAA} {Scitech} 2019 {Forum}}, author = {Holland, Jonathan R and Baeder, James D and Duraisamy, Karthik}, @@ -549,6 +573,7 @@ @inproceedings{holland_towards_2019 @inproceedings{srivastava_computational_2019, title = {A {Computational} {Framework} for {Assessment} of {Fuel} {Sloshing} {Effects} on {Transonic} {Wing} {Flutter} {Characteristics}}, + doi = {10.2514/6.2019-1527}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2019-1527}, booktitle = {{AIAA} {Scitech} 2019 {Forum}}, author = {Srivastava, Shashank and Damodaran, Murali and Khoo, Boo Cheong}, @@ -558,6 +583,7 @@ @inproceedings{srivastava_computational_2019 @article{guner_unsteady_2019, title = {Unsteady aerodynamic modeling methodology based on dynamic mode interpolation for transonic flutter calculations}, + doi = {10.1016/j.jfluidstructs.2018.11.002}, volume = {84}, url = {https://www.sciencedirect.com/science/article/pii/S0889974618303505}, journal = {Journal of Fluids and Structures}, @@ -568,6 +594,7 @@ @article{guner_unsteady_2019 @article{groth_rbf-based_2019, title = {{RBF}-based mesh morphing approach to perform icing simulations in the aviation sector}, + doi = {10.1108/aeat-07-2018-0178}, url = {https://www.emeraldinsight.com/doi/abs/10.1108/AEAT-07-2018-0178}, journal = {Aircraft Engineering and Aerospace Technology}, author = {Groth, Corrado and Costa, Emiliano and Biancolini, Marco Evangelos}, @@ -576,6 +603,7 @@ @article{groth_rbf-based_2019 @article{pustina_nerone:_2019, title = {{NERONE}: {An} {Open}-{Source} {Based} {Tool} for {Aerodynamic} {Transonic} {Optimization} of {Nonplanar} {Wings}}, + doi = {10.1007/s42496-019-00007-4}, volume = {98}, url = {https://link.springer.com/article/10.1007/s42496-019-00007-4}, number = {1}, @@ -587,6 +615,7 @@ @article{pustina_nerone:_2019 @inproceedings{munguia_shock-induced_2019, title = {Shock-{Induced} {Separation} {Suppression} {Using} {CFD}-{Based} {Active} {Flow} {Control} {Optimization}}, + doi = {10.2514/6.2019-0695}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2019-0695}, booktitle = {{AIAA} {Scitech} 2019 {Forum}}, author = {Munguia, Brian C and Mukhopadhaya, Jayant and Alonso, Juan J}, @@ -596,6 +625,7 @@ @inproceedings{munguia_shock-induced_2019 @inproceedings{bombardieri_nonlinear_2019, title = {Nonlinear {Aeroelasticity}: a {CFD}-based {Adaptive} {Methodology} for {Flutter} {Prediction}}, + doi = {10.2514/6.2019-1866}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2019-1866}, booktitle = {{AIAA} {Scitech} 2019 {Forum}}, author = {Bombardieri, Rocco and Cavallaro, Rauno and Sáez de Teresa, Jorge Luis and Karpel, Moti}, @@ -605,6 +635,7 @@ @inproceedings{bombardieri_nonlinear_2019 @inproceedings{molina_flow_2019, title = {Flow and {Noise} {Predictions} {Around} {Tandem} {Cylinders} using {DDES} approach with {SU}2}, + doi = {10.2514/6.2019-0326}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2019-0326}, booktitle = {{AIAA} {Scitech} 2019 {Forum}}, author = {Molina, Eduardo and Zhou, Beckett Yx and Alonso, Juan J and Righi, Marcello and Silva, Roberto G}, @@ -623,6 +654,7 @@ @inproceedings{razaaly_optimization_2019 @incollection{kaynak_transition_2019, title = {Transition {Modeling} for {Low} to {High} {Speed} {Boundary} {Layer} {Flows} with {CFD} {Applications}}, + doi = {10.5772/intechopen.83520}, url = {https://www.intechopen.com/online-first/transition-modeling-for-low-to-high-speed-boundary-layer-flows-with-cfd-applications}, booktitle = {Boundary {Layer} {Flows}-{Theory}, {Applications} and {Numerical} {Methods}}, publisher = {IntechOpen}, @@ -639,6 +671,7 @@ @article{razaaly_robust_2019 @incollection{kumar_combination_2019, title = {Combination of {Polynomial} {Chaos} with {Adjoint} {Formulations} for {Optimization} {Under} {Uncertainties}}, + doi = {10.1007/978-3-319-77767-2_35}, url = {https://link.springer.com/chapter/10.1007/978-3-319-77767-2_35}, booktitle = {Uncertainty {Management} for {Robust} {Industrial} {Design} in {Aeronautics}}, publisher = {Springer}, @@ -649,6 +682,7 @@ @incollection{kumar_combination_2019 @article{economon_performance_2016, title = {Performance optimizations for scalable implicit {RANS} calculations with {SU}2}, + doi = {10.1016/j.compfluid.2016.02.003}, volume = {129}, url = {https://www.sciencedirect.com/science/article/pii/S0045793016300214}, journal = {Computers \& Fluids}, @@ -659,6 +693,7 @@ @article{economon_performance_2016 @inproceedings{sanchez_towards_2016, title = {Towards a {Fluid}-{Structure} {Interaction} solver for problems with large deformations within the open-source {SU}2 suite}, + doi = {10.2514/6.2016-0205}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2016-0205}, booktitle = {57th {AIAA}/{ASCE}/{AHS}/{ASC} {Structures}, {Structural} {Dynamics}, and {Materials} {Conference}}, author = {Sanchez, Ruben and Palacios, Rafael and Economon, Thomas D and Kline, Heather L and Alonso, Juan J and Palacios, Francisco}, @@ -668,6 +703,7 @@ @inproceedings{sanchez_towards_2016 @inproceedings{yang_implementation_2015, title = {Implementation of ball-center spring analogy mesh deformation technique with {CFD} design optimization}, + doi = {10.2514/6.2015-2612}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2015-2612}, booktitle = {22nd {AIAA} {Computational} {Fluid} {Dynamics} {Conference}}, author = {Yang, Yosheph and Özgen, Serkan}, @@ -677,6 +713,7 @@ @inproceedings{yang_implementation_2015 @inproceedings{albring_efficient_2016, title = {Efficient aerodynamic design using the discrete adjoint method in {SU}2}, + doi = {10.2514/6.2016-3518}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2016-3518}, booktitle = {17th {AIAA}/{ISSMO} multidisciplinary analysis and optimization conference}, author = {Albring, Tim and Sagebaum, Max and Gauger, Nicolas R}, @@ -687,6 +724,7 @@ @inproceedings{albring_efficient_2016 @inproceedings{pini_su2:_2017, title = {Su2: the open-source software for non-ideal compressible flows}, + doi = {10.1088/1742-6596/821/1/012013}, volume = {821}, url = {https://iopscience.iop.org/article/10.1088/1742-6596/821/1/012013/pdf}, booktitle = {Journal of {Physics}: {Conference} {Series}}, @@ -706,6 +744,7 @@ @inproceedings{gori_non-ideal_2015 @article{yao_matrix-form_2014, title = {A matrix-form {GSM}–{CFD} solver for incompressible fluids and its application to hemodynamics}, + doi = {10.1007/s00466-014-0990-8}, volume = {54}, url = {https://link.springer.com/article/10.1007/s00466-014-0990-8}, number = {4}, @@ -717,6 +756,7 @@ @article{yao_matrix-form_2014 @inproceedings{vogeltanz_comparison_2015, title = {Comparison of open-source {CFD} software for aerodynamic analysis of mini-{UAV}}, + doi = {10.1109/dasc.2015.7311604}, url = {https://ieeexplore.ieee.org/abstract/document/7311438/}, booktitle = {2015 {IEEE}/{AIAA} 34th {Digital} {Avionics} {Systems} {Conference} ({DASC})}, publisher = {IEEE}, @@ -727,6 +767,7 @@ @inproceedings{vogeltanz_comparison_2015 @article{sanchez_assessment_2016, title = {Assessment of the fluid-structure interaction capabilities for aeronautical applications of the open-source solver {SU}2}, + doi = {10.7712/100016.1903.6597}, url = {https://spiral.imperial.ac.uk/handle/10044/1/48526}, author = {Sanchez, Ruben and Kline, HL and Thomas, David and Variyar, Anil and Righi, Marcello and Economon, Thomas D and Alonso, Juan J and Palacios, Rafael and Dimitriadis, Grigorios and Terrapon, Vincent}, year = {2016}, @@ -735,6 +776,7 @@ @article{sanchez_assessment_2016 @article{mishra_uncertainty_2018, title = {Uncertainty {Estimation} {Module} for {Turbulence} {Model} {Predictions} in {SU}2}, + doi = {10.2514/1.j057187}, volume = {57}, url = {https://arc.aiaa.org/doi/abs/10.2514/1.J057187}, number = {3}, @@ -746,6 +788,7 @@ @article{mishra_uncertainty_2018 @article{gu_automated_2018, title = {An automated {CFD} analysis workflow in overall aircraft design applications}, + doi = {10.1007/s13272-017-0264-1}, volume = {9}, url = {https://link.springer.com/article/10.1007/s13272-017-0264-1}, number = {1}, @@ -757,6 +800,7 @@ @article{gu_automated_2018 @inproceedings{padron_multi-fidelity_2014, title = {Multi-fidelity uncertainty quantification: application to a vertical axis wind turbine under an extreme gust}, + doi = {10.2514/6.2014-3013}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2014-3013}, booktitle = {15th {AIAA}/{ISSMO} {Multidisciplinary} {Analysis} and {Optimization} {Conference}}, author = {Padron, Andres S and Alonso, Juan J and Palacios, Francisco and Barone, Matthew F and Eldred, Michael S}, @@ -766,6 +810,7 @@ @inproceedings{padron_multi-fidelity_2014 @article{rubino_adjoint-based_2018, title = {Adjoint-based fluid dynamic design optimization in quasi-periodic unsteady flow problems using a harmonic balance method}, + doi = {10.1016/j.jcp.2018.06.023}, volume = {372}, url = {https://www.sciencedirect.com/science/article/pii/S0021999118304017}, number = {1}, @@ -779,6 +824,7 @@ @article{rubino_adjoint-based_2018 @article{s._vitale_fully_2017, title = {Fully turbulent discrete adjoint solver for non-ideal compressible flow applications}, + doi = {10.22261/jgpps.z1fvoi}, volume = {1}, url = {https://www.gppsjournal.org/journals/journal-of-the-global-power-and-propulsion-society/design-method-for-turbomachinery-working-in-the-nicfd-regime/}, journal = {Journal of the Global Power and Propulsion Society}, @@ -791,6 +837,7 @@ @article{s._vitale_fully_2017 @article{t._economon_adjoint_2017, title = {Adjoint {Formulation} {Investigations} of {Benchmark} {Aerodynamic} {Design} {Cases} in {SU}2}, + doi = {10.2514/6.2017-4363}, url = {https://arc.aiaa.org/doi/10.2514/6.2017-4363}, journal = {AIAA 2017-4363}, author = {T. Economon, J. J. Alonso, T. Albring, N. R. Gauger}, @@ -801,6 +848,7 @@ @article{t._economon_adjoint_2017 @article{t._albring_assessment_2017, title = {Assessment of the {Recursive} {Projection} {Method} for the {Stabilization} of {Discrete} {Adjoint} {Solvers}}, + doi = {10.2514/6.2017-3664}, journal = {AIAA 2017-3664}, author = {T. Albring, T. Dick, N. R. Gauger}, month = jun, @@ -810,6 +858,7 @@ @article{t._albring_assessment_2017 @article{zhou_reduction_2017, title = {Reduction of {Airframe} {Noise} {Components} {Using} a {Discrete} {Adjoint} {Approach}}, + doi = {10.2514/6.2017-3658}, journal = {AIAA 2017-3658}, author = {Zhou, B. Y. and Albring, T. and Gauger, N. R. and Silva, C. R. Ilario da and Economon, T. D. and Alonso, J. J.}, month = jun, @@ -818,6 +867,7 @@ @article{zhou_reduction_2017 @article{r._sanchez_optimal_2017, title = {Optimal {Actuation} of {Dielectric} {Membrane} {Wings} using {High}-{Fidelity} {Fluid}-{Structure} {Modelling}}, + doi = {10.2514/6.2017-0857}, journal = {AIAA 2017-0857}, author = {R. Sanchez, R. Palacios, T. D. Economon, J. J. Alonso, T. Albring, N. R. Gauger}, month = jan, @@ -844,6 +894,7 @@ @article{zhou_optimal_2016 @article{zhou_efficient_2016, title = {An {Efficient} {Unsteady} {Aerodynamic} and {Aeroacoustic} {Design} {Framework} {Using} {Discrete} {Adjoint}}, + doi = {10.2514/6.2016-3369}, url = {https://arc.aiaa.org/doi/10.2514/6.2016-3369}, journal = {AIAA 2016-3369}, author = {Zhou, B. Y. and Albring, T. and Gauger, N. R. and Silva, C. R. Ilario da and Economon, T. D. and Alonso, J. J.}, @@ -864,6 +915,7 @@ @article{albring_consistent_2014 @article{albring_development_2015, title = {Development of a {Consistent} {Discrete} {Adjoint} {Solver} in an {Evolving} {Aerodynamic} {Design} {Framework}}, + doi = {10.2514/6.2015-3240}, journal = {AIAA 2015-3240}, author = {Albring, T. and Sagebaum, M. and Gauger, N. R.}, month = feb, @@ -891,6 +943,7 @@ @article{kaushik_sensitivity_2018 @incollection{matiz-chicacausa_rans_2018, title = {{RANS} {Simulations} of the {High} {Lift} {Common} {Research} {Model} with {Open}-{Source} {Code} {SU}2}, + doi = {10.1007/978-3-319-62136-4_6}, url = {https://link.springer.com/chapter/10.1007/978-3-319-62136-4_6}, booktitle = {Numerical {Simulation} of the {Aerodynamics} of {High}-{Lift} {Configurations}}, publisher = {Springer}, @@ -908,6 +961,7 @@ @article{zhanga_prace_2018 @article{burghardt_accurate_2018, title = {Accurate gradient computations for shape optimization via discrete adjoints in {CFD}-related multiphysics problems}, + doi = {10.1007/978-3-030-25253-3_3}, url = {https://arxiv.org/abs/1811.00068}, journal = {arXiv preprint arXiv:1811.00068}, author = {Burghardt, Ole and Gauger, Nicolas R}, @@ -917,6 +971,7 @@ @article{burghardt_accurate_2018 @inproceedings{mansoor_saatloo_implementation_2018, title = {Implementation of {SU}2 {Solver} with {Cell}-{Based} {Data} {Structure} for 3D {RANS} {Equations}}, + doi = {10.2514/6.2018-4155}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2018-4155}, booktitle = {2018 {Fluid} {Dynamics} {Conference}}, author = {Mansoor Saatloo, Mahtab}, @@ -946,6 +1001,7 @@ @article{venkatesan-crome_aerodynamic_2018 @inproceedings{singh_comparison_2018, title = {Comparison of the {Finite} {Volume} and {Discontinuous} {Galerkin} schemes for the {Double} {Vortex} {Pairing} {Problem} using the {SU}2 {Software} {Suite}}, + doi = {10.2514/6.2018-1833}, url = {https://arc.aiaa.org/doi/pdf/10.2514/6.2018-1833}, booktitle = {2018 {AIAA} {Aerospace} {Sciences} {Meeting}}, author = {Singh, Kevin and Drikakis, Dimitris and Frank, Michael and Kokkinakis, Ioannis W and Alonso, Juan J and Economon, Thomas D and van der Weide, Edwin T}, @@ -970,6 +1026,7 @@ @article{mishra_uncertainty_2018-1 @article{schmidt_accurate_2018, title = {Accurate numerical simulation on the structural response of the {VEGA} payload fairing using modal coupling approach}, + doi = {10.1007/s12567-018-0225-5}, url = {https://link.springer.com/article/10.1007/s12567-018-0225-5}, journal = {CEAS Space Journal}, author = {Schmidt, H and Koh, S and Dafnis, A and Schröder, K-U and Schröder, W}, @@ -1002,6 +1059,7 @@ @inproceedings{razaaly_robust_2018 @inproceedings{kontogiannis_viscous-inviscid_2019, title = {Viscous-{Inviscid} {Analysis} of {Transonic} {Swept} {Wings} using 2.5 {D} {RANS} and {Parametric} {Shapes}}, + doi = {10.2514/6.2019-2116}, url = {https://arc.aiaa.org/doi/abs/10.2514/6.2019-2116}, booktitle = {{AIAA} {Scitech} 2019 {Forum}}, author = {Kontogiannis, Alexandros and Parenteau, Matthieu and Laurendeau, Eric}, @@ -1011,6 +1069,7 @@ @inproceedings{kontogiannis_viscous-inviscid_2019 @inproceedings{venkatesan-crome_optimal_2019, title = {Optimal {Compliant} {Airfoils} {Using} {Fully} {Non}-{Linear} {FSI} {Models}}, + doi = {10.2514/6.2019-1216}, url = {https://arc.aiaa.org/doi/abs/10.2514/6.2019-1216}, booktitle = {{AIAA} {Scitech} 2019 {Forum}}, author = {Venkatesan-Crome, Charanya and Carrusca Gomes, Pedro and Palacios, Rafael}, @@ -1029,6 +1088,7 @@ @inproceedings{uekermann_official_2017 @inproceedings{palar_multi-fidelity_2017, title = {Multi-fidelity uncertainty analysis in {CFD} using hierarchical kriging}, + doi = {10.2514/6.2017-3261}, url = {https://arc.aiaa.org/doi/abs/10.2514/6.2017-3261}, booktitle = {35th {AIAA} {Applied} {Aerodynamics} {Conference}}, author = {Palar, Pramudita S and Shimoyama, Koji}, @@ -1038,6 +1098,7 @@ @inproceedings{palar_multi-fidelity_2017 @article{rubino_look-up_2018, title = {A look-up table method based on unstructured grids and its application to non-ideal compressible fluid dynamic simulations}, + doi = {10.1016/j.jocs.2018.08.001}, volume = {28}, url = {https://www.sciencedirect.com/science/article/pii/S1877750318305891}, journal = {Journal of computational science}, @@ -1049,6 +1110,7 @@ @article{rubino_look-up_2018 @inproceedings{lehr_pira:_2018, title = {{PIRA}: performance instrumentation refinement automation}, + doi = {10.1145/3281070.3281071}, url = {https://dl.acm.org/citation.cfm?id=3281071}, booktitle = {Proceedings of the 5th {ACM} {SIGPLAN} {International} {Workshop} on {Artificial} {Intelligence} and {Empirical} {Methods} for {Software} {Engineering} and {Parallel} {Computing} {Systems}}, publisher = {ACM}, @@ -1059,6 +1121,7 @@ @inproceedings{lehr_pira:_2018 @article{fossati_kinetic_2019, title = {A kinetic {BGK} edge-based scheme including vibrational and electronic energy modes for {High}-{Mach} flows}, + doi = {10.1016/j.compfluid.2019.04.003}, volume = {185}, url = {https://www.sciencedirect.com/science/article/abs/pii/S0045793019301008}, number = {15}, @@ -1378,6 +1441,7 @@ @inproceedings{kline_multi-objective_2016 @inproceedings{kline_sensitivity_2014, address = {Atlanta, GA}, title = {Sensitivity of the {Performance} of a 3-{Dimensional} {Hypersonic} {Inlet} to {Shape} {Deformations}}, + doi = {10.2514/6.2014-3228}, shorttitle = {{AIAA} {Paper} 2014-3228}, booktitle = {19th {AIAA} {International} {Space} {Planes} and {Hypersonic} {Systems} and {Technologies} {Conference}}, author = {Kline, H.L. and Palacios, F. and Alonso, J.J.}, @@ -1387,6 +1451,7 @@ @inproceedings{kline_sensitivity_2014 @article{kline_adjoint_2017, title = {Adjoint of generalized outflow-based functionals applied to hypersonic inlet design}, + doi = {10.2514/1.j055863}, journal = {AIAA Journal}, author = {Kline, HL and Alonso, JJ}, year = {2017}, @@ -1400,3 +1465,311 @@ @phdthesis{kline_continuous_2017 author = {Kline, H. L.}, year = {2017} } + +@inproceedings{gomes2021sustainable, + title={Sustainable High-Performance Optimizations in SU2}, + author={Gomes, Pedro and Economon, Thomas D and Palacios, Rafael}, + url={https://arc.aiaa.org/doi/abs/10.2514/6.2021-0855}, + doi={10.2514/6.2021-0855}, + booktitle={AIAA Scitech 2021 Forum}, + pages={0855}, + year={2021} +} + +@article{fonzi2022extended, + title={Extended computational capabilities for high-fidelity fluid-structure simulations}, + author={Fonzi, Nicola and Cavalieri, Vittorio and De Gaspari, Alessandro and Ricci, Sergio}, + journal={Journal of Computational Science}, + volume={62}, + pages={101698}, + year={2022}, + publisher={Elsevier}, + doi={10.1016/j.jocs.2022.101698} +} + +@article{morelli2021development, + title={Development and preliminary assessment of the open-source CFD toolkit SU2 for rotorcraft flows}, + author={Morelli, Myles and Bellosta, Tommaso and Guardone, Alberto}, + journal={Journal of Computational and Applied Mathematics}, + volume={389}, + pages={113340}, + year={2021}, + publisher={Elsevier}, + doi={10.1016/j.cam.2020.113340} +} + +@article{lozano2023singularity, + title={Singularity and mesh divergence of inviscid adjoint solutions at solid walls}, + author={Lozano, Carlos and Ponsin, Jorge}, + journal={Journal of Computational Physics}, + volume={489}, + pages={112256}, + year={2023}, + publisher={Elsevier}, + doi={10.1016/j.jcp.2023.112256} +} + +@inproceedings{kucuk2022adjoint, + title={Adjoint Based Shape Optimization of an S-Shaped Duct with SU2}, + author={Kucuk, Umut Can and Tuncer, Ismail H}, + url={https://arc.aiaa.org/doi/abs/10.2514/6.2022-0207}, + doi={10.2514/6.2022-0207}, + booktitle={AIAA Scitech 2022 Forum}, + pages={0207}, + year={2022} +} + +@inproceedings{patel2022aerostructural, + title={Aero-Structural Discrete Adjoint Sensitivities in SU2 using Algorithmic Differentiation}, + author={Patel, Harsh C and Gastaldi, Alessandro A and Breitsamter, Christian and Daoud, Fernass and Alonso, Juan J}, + url={https://arc.aiaa.org/doi/abs/10.2514/6.2022-3358}, + doi={10.2514/6.2022-3358}, + booktitle={AIAA Aviation 2022 Forum}, + pages={3358}, + year={2022} +} + +@inproceedings{rausa2023implementation, + title={Implementation of gamma-Re_theta_t transition model within SU2: model validation and verification}, + author={Rausa, Andrea and Guardone, Alberto and Auteri, Franco}, + url={https://arc.aiaa.org/doi/abs/10.2514/6.2023-1570}, + doi={10.2514/6.2023-1570}, + booktitle={AIAA Scitech 2023 Forum}, + pages={1570}, + year={2023} +} + +@inproceedings{lauzon2023projection, + title={A Projection-based Reduced Order Modeling Approach with SU2}, + author={Lauzon, Jessica T and Alonso, Juan J}, + url={https://arc.aiaa.org/doi/abs/10.2514/6.2023-3416}, + doi={10.2514/6.2023-3416}, + booktitle={AIAA Aviation 2023 Forum}, + pages={3416}, + year={2023} +} + +@inproceedings{abergo2023unsteady, + title={Unsteady Adjoint Optimization in SU2 Based on the Hybrid Harmonic Balance-URANS Approach}, + author={Abergo, Luca and Guardone, Alberto}, + url={https://arc.aiaa.org/doi/abs/10.2514/6.2023-3311}, + doi={10.2514/6.2023-3311}, + booktitle={AIAA Aviation 2023 Forum}, + pages={3311}, + year={2023} +} + +@article{kucuk2024semisubmerged, + title={Adjoint based aerodynamic shape optimization of a semi-submerged inlet duct and upstream inlet surface}, + author={Kucuk, Umut Can and Tuncer, Ismail H}, + journal={Optimization and Engineering}, + volume={25}, + pages={2205--2228}, + year={2024}, + publisher={Springer}, + doi={10.1007/s11081-023-09877-x} +} + +@incollection{fuentesmonjas2023validation, + title={Validation of the SU2 Fluid Dynamic Solver for Isentropic Non-Ideal Compressible Flows}, + author={Fuentes-Monjas, Blanca and Head, Adam J and De Servi, Carlo and Pini, Matteo}, + booktitle={Proceedings of the 4th International Seminar on Non-Ideal Compressible Fluid Dynamics for Propulsion and Power (ERCOFTAC Series)}, + year={2023}, + publisher={Springer}, + doi={10.1007/978-3-031-30936-6_10} +} + +@article{yan2024extension, + title={Extension and Validation of the Turbomachinery Capabilities of SU2 Open Source Computational Fluid Dynamic Code}, + author={Yan, Chuanxiang and Wang, Baotong and He, Xiao and Zhao, Fanzhou and Zheng, Xuedong and Vahdati, Mehdi and Zheng, Xinqian}, + journal={Journal of Turbomachinery}, + volume={146}, + number={6}, + pages={061003}, + year={2024}, + publisher={ASME}, + doi={10.1115/1.4064341} +} + +@article{rubino2021adjointbased, + title={Adjoint-Based Unsteady Optimization of Turbomachinery Operating with Nonideal Compressible Flows}, + author={Rubino, Antonio and Colonna, Piero and Pini, Matteo}, + journal={Journal of Propulsion and Power}, + volume={37}, + number={6}, + pages={910--918}, + year={2021}, + publisher={American Institute of Aeronautics and Astronautics}, + doi={10.2514/1.b37920} +} + +@article{bluhdorn2025hybrid, + title={Hybrid parallel discrete adjoints in SU2}, + author={Bl{\"u}hdorn, Johannes and Gomes, Pedro and Aehle, Max and Gauger, Nicolas R}, + journal={Computers \& Fluids}, + volume={289}, + pages={106528}, + year={2025}, + publisher={Elsevier}, + doi={10.1016/j.compfluid.2024.106528} +} + +@article{yan2025su2cool, + title={SU2-COOL: Open-source framework for non-ideal compressible fluid dynamics}, + author={Yan, Peng and Gori, Giulio and Zocca, Marta and Guardone, Alberto}, + journal={Computer Physics Communications}, + volume={307}, + pages={109394}, + year={2025}, + publisher={Elsevier}, + doi={10.1016/j.cpc.2024.109394} +} + +@article{mayer2024automatic, + title={Automatic adjoint-based design optimization for laminar combustion applications}, + author={Mayer, D and Beishuizen, N and Pitsch, H and Economon, T D and Carrigan, T}, + journal={Fuel}, + volume={370}, + pages={131751}, + year={2024}, + publisher={Elsevier}, + doi={10.1016/j.fuel.2024.131751} +} + +@article{moralesubal2024adjointbased, + title={Adjoint-based design optimization of a Kenics static mixer}, + author={Morales Ubal, C and Beishuizen, N and Kusch, L and van Oijen, J}, + journal={Results in Engineering}, + volume={21}, + pages={101856}, + year={2024}, + publisher={Elsevier}, + doi={10.1016/j.rineng.2024.101856} +} + +@article{kusch2025adjointbased, + title={Adjoint-based multi-point optimization framework for mixing processes applied to a venturi mixer}, + author={Kusch, L and Beishuizen, N and Morales Ubal, C and Gauger, N R}, + journal={Applied Thermal Engineering}, + volume={280}, + number={2}, + pages={128609}, + year={2025}, + publisher={Elsevier}, + doi={10.1016/j.applthermaleng.2025.128609} +} + +@article{mangano2021multipoint, + title={Multipoint Aerodynamic Shape Optimization for Subsonic and Supersonic Regimes}, + author={Mangano, Marco and Martins, Joaquim R R A}, + journal={Journal of Aircraft}, + volume={58}, + number={3}, + pages={650--662}, + year={2021}, + publisher={American Institute of Aeronautics and Astronautics}, + doi={10.2514/1.C036216} +} + +@inproceedings{rausa2025su2results, + title={SU2 results for the Fifth High Lift Prediction Workshop}, + author={Rausa, Andrea and Guardone, Alberto and Beishuizen, Nijso}, + url={https://arc.aiaa.org/doi/abs/10.2514/6.2025-0276}, + doi={10.2514/6.2025-0276}, + booktitle={AIAA Scitech 2025 Forum}, + pages={0276}, + year={2025} +} + +@article{smink2026numerical, + title={Numerical and experimental study of tandem dual-jet injection into a supersonic cross-flow}, + author={Smink, Jan Siemen and van der Weide, Edwin T A and de Maag, Sem and Hoeijmakers, Harry W M and Venner, Cornelis H}, + journal={Journal of Fluid Mechanics}, + volume={1042}, + pages={A35}, + year={2026}, + publisher={Cambridge University Press}, + doi={10.1017/jfm.2026.11982} +} + +@article{ranjan_systematic_2025, + title = {A systematic investigation of {Interior} {Point} methods for aerodynamic shape optimization}, + volume = {163}, + doi = {https://doi.org/10.1016/j.ast.2025.110302}, + journal = {Aerospace Science and Technology}, + author = {Ranjan, Prateek and Zheng, Wanzheng and James, Kai}, + month = aug, + year = {2025}, +} + +@article{utsumi_inverse_2024, + title = {Inverse {Design} of {Low}-{Boom} {Supersonic} {Aircraft} with {Cylindrical} {Pressure} {Distribution}}, + volume = {0}, + url = {https://doi.org/10.2514/1.C038054}, + doi = {10.2514/1.C038054}, + abstract = {An inverse design of supersonic aircraft with low-boom in full-carpet, low-drag, and longitudinal trim using cylindrical pressure distribution is proposed. Defining consistent cylindrical pressure distribution and reconstructing geometry from the cylindrical pressure distribution have been challenging. In this paper, a function to express consistent cylindrical pressure distribution that satisfies the Helgason–Ludwig consistency conditions is used to define a target. Projections onto convex sets that are used in the field of limited angle tomography are applied to reconstruct a geometry iteratively. For sonic boom propagation, a fast low-fidelity method with Cole–Hopf transformation to solve the Burgers equation is proposed. An implementation of multipole analysis with piecewise series expansion of the multipole function is included and is used for resolving circumferential flow effects in near-field analysis for sonic boom propagation and for comparison with far-field linear theory. Case studies show the validity of the proposed methods.}, + number = {0}, + journal = {Journal of Aircraft}, + author = {Utsumi, Yuki}, + month = dec, + year = {2024}, + pages = {1--15}, +} + +@inproceedings{sunderroy_shock_2022, + title = {Shock boundary layer interactions in a supersonic flow over a flexible compression ramp}, + doi = {10.2514/6.2022-4049}, + url = {https://arc.aiaa.org/doi/10.2514/6.2022-4049}, + booktitle = {Supersonic and {Hypersonic} {Flows} {III}}, + author = {Sunderroy, Sangeet and Karnick, Pradeepa and Venkatraman, Kartik}, + year = {2022}, +} + +@article{bombardieri_aerostructural_2021, + title = {Aerostructural wing shape optimization assisted by algorithmic differentiation}, + url = {https://doi.org/10.1007/s00158-021-02884-5}, + doi = {10.1007/s00158-021-02884-5}, + abstract = {With more efficient structures, last trends in aeronautics have witnessed an increased flexibility of wings, calling for adequate design and optimization approaches. To correctly model the coupled physics, aerostructural optimization has progressively become more important, being nowadays performed also considering higher-fidelity discipline methods, i.e., CFD for aerodynamics and FEM for structures. In this work a model for high-fidelity gradient-based aerostructural optimization of wings, assisted by algorithmic differentiation and including aerodynamic and structural nonlinearities, is presented. First, the model is illustrated: a key feature lies in its enhanced modularity. Each discipline solver, employing algorithmic differentiation for the evaluation of adjoint-based sensitivities, is interfaced at high-level by means of a wrapper to both solve the aerostructural primal problem and evaluate discrete-consistent gradients of the coupled problem. Second, to demonstrate the feasibility of the method, a framework is ad hoc set up, within the open-source SU2 multiphysics suite, with the inclusion of a geometrically nonlinear beam FE and an interface module to deal with non-matching 3D surfaces. Finally, the framework is applied to perform aerostructural optimization of aeroelastic test cases based on the ONERA M6 and NASA CRM wings. Single-point optimizations, employing Euler or RANS flow models, are carried out to find wing optimal outer mold line in terms of aerodynamic efficiency. Results remark the importance of taking into account the aerostructural coupling when performing wing shape optimization.}, + journal = {Structural and Multidisciplinary Optimization}, + author = {Bombardieri, Rocco and Cavallaro, Rauno and Ruben, Sanchez and Gauger, Nicolas R.}, + month = jun, + year = {2021}, +} + +@incollection{becker_dpw-6_2018, + series = {{AIAA} {AVIATION} {Forum}}, + title = {{DPW}-6 and {HiLiftPW}-3 using the {Stanford} {University} {Unstructured} ({SU2})}, + url = {https://arc.aiaa.org/doi/10.2514/6.2018-2845}, + doi = {10.2514/6.2018-2845}, + urldate = {2021-01-28}, + booktitle = {2018 {Applied} {Aerodynamics} {Conference}}, + publisher = {American Institute of Aeronautics and Astronautics}, + author = {Becker, Gilberto G. and Granzoto, Rodrigo}, + month = jun, + year = {2018}, +} + +@inproceedings{munguia_goal-oriented_2020, + title = {Goal-{Oriented} {Mesh} {Adaptation} for {Flows} in {Thermochemical} {Nonequilibrium}}, + url = {https://arc.aiaa.org/doi/abs/10.2514/6.2020-2400}, + doi = {10.2514/6.2020-2400}, + booktitle = {23rd {AIAA} {International} {Space} {Planes} and {Hypersonic} {Systems} and {Technologies} {Conference}}, + author = {Munguía, Brian C and Maier, Walter T and Needels, Jacob T and Alonso, Juan J}, + year = {2020}, +} + +@article{mortazawy_mehdi_normal_2019, + title = {Normal shock wave attenuation during propagation in ducts with grooves}, + issn = {0938-1287}, + shorttitle = {Experimental {Measurements} and {Numerical} {Simulation} of {Shock} {Wave} {Attenuation} in {Grooved} {Ducts}}, + url = {https://doi.org/10.1007/s00193-019-00916-0}, + doi = {https://doi.org/10.1007/s00193-019-00916-0}, + abstract = {Experimental investigations and numerical simulations of normal shock waves of different strengths propagating inside ducts with roughness are presented. The roughness is added in the form of grooves. Straight and branching ducts are considered in order to better explore the mechanisms causing attenuation of the shock and the physics behind the evolution of the complex wave patterns resulting from diffraction and reflection of the primary moving shock. A well-established finite-volume numerical method is used and further validated for several test cases relevant to this study. The computed results are compared with experimental measurements in ducts with grooves. Good agreement between high-resolution simulations and the experiment is obtained for the shock speeds and complex wave patterns created by the grooves. High-frequency response time histories of pressure at various locations were recorded in the experiments. The recorded pressure histories and shock strengths were found in fair agreement with the two-dimensional simulation results as long as the shock stays in the duct. Overall, the physics of the interactions of the moving shock and the diffracted and reflected waves with the grooves are adequately captured in the high-resolution simulations. Therefore, shocks propagating in ducts with different groove geometries have been simulated in order to identify the groove shape that diminishes shock strength.}, + language = {English}, + journal = {Springer - Shock Waves}, + author = {{Mortazawy Mehdi} and {Kontis Konstantinos} and {Ekaterinaris John}}, + month = oct, + year = {2019}, + keywords = {Shock, Shock Attenuation, Shock Wave, Shock–vortex interaction}, + pages = {1--23}, +} diff --git a/_data/tutorials.yml b/_data/tutorials.yml index 0c62d7d0..9695585f 100644 --- a/_data/tutorials.yml +++ b/_data/tutorials.yml @@ -35,6 +35,7 @@ - Inc_Von_Karman - Inc_Turbulent_Bend - Inc_Urban_City + - Inc_Lid_Driven_Cavity - title: Structural Mechanics tutorials: @@ -50,6 +51,7 @@ - Static_CHT - Inc_Heated_Cylinders_Unsteady - SS_CR_CHT + - Inc_Laminar_Diffusion_Flame - Inc_Combustion - TFC_python @@ -66,6 +68,7 @@ - title: Workflow Setup tutorials: - paraview_live + - Aeroacoustic_Pressure_Spectrum - title: Event Content tutorials: diff --git a/_tutorials/incompressible_flow/Inc_Laminar_Diffusion_Flame/Inc_Laminar_Diffusion_Flame.md b/_tutorials/incompressible_flow/Inc_Laminar_Diffusion_Flame/Inc_Laminar_Diffusion_Flame.md new file mode 100644 index 00000000..13a67448 --- /dev/null +++ b/_tutorials/incompressible_flow/Inc_Laminar_Diffusion_Flame/Inc_Laminar_Diffusion_Flame.md @@ -0,0 +1,193 @@ +--- +title: "Incompressible, Laminar counterflow diffusion flame" +permalink: "/tutorials/Inc_Laminar_Diffusion_Flame/" +written_by: Nijso Beishuizen +for_version: 8.4.0 +revised_by: Nijso Beishuizen +revision_date: 17-05-2026 +revised_version: +solver: INC_NAVIER_STOKES +requires: SU2_CFD +complexity: intermediate +follows: +--- + + +## Goals + +![Counterflow burner](../../tutorials_files/incompressible_flow/Inc_Laminar_Diffusion_Flame/counterflow_diffusion_flame_temperature_streamlines.png) +*Figure (1): 2D axisymmetric configuration of the laminar counterflow diffusion flame. The axisymmetry is shown here vertically to align the simulation results with the usual lab orientation, but in the simulations, the axisymmetry axis is always horizontally at y=0.* + +In this tutorial we show how to setup a laminar diffusion flame computation for a counterflow flame. We will use a flamelet method to model combustion, which is a tabulated chemistry approach. The table was precomputed from 1D Cantera solutions using the SU2_DataMiner code. We then reproduce the experiments of C.K. Law, mentioned in his book *Combustion Physics* (2006). +![Counterflow burner](../../tutorials_files/incompressible_flow/Inc_Laminar_Diffusion_Flame/opflow01-1024x766_thomsonlab.jpg) +*Figure (2): Counterflow Diffusion burner from the Thomson Lab in Toronto: https://thomsonlab.mie.utoronto.ca/counterflow-diffusion-burner/.* +## Resources + +The resources for this tutorial can be found in the [incompressible_flow/Inc_Laminar_Diffusion_Flame](https://github.com/su2code/Tutorials/tree/master/incompressible_flow/Inc_Laminar_Diffusion_Flame) directory in the [tutorial repository](https://github.com/su2code/Tutorials). You will need the following files: + +1. *Configuration file*: The configuration file for this case is named [counterflow.cfg](https://github.com/su2code/Tutorials/tree/master/incompressible_flow/Inc_Laminar_Diffusion_Flame/counterflow.cfg). +2. *Mesh file*: The geometry for this test case is a simple, 2D counterflow burner geometry, ([counterflow.su2](https://github.com/su2code/Tutorials/tree/master/incompressible_flow/Inc_Laminar_Diffusion_Flame/counterflow.su2)). +3. *Manifold file*: We will use a 2D flamelet table with mixture fraction and enthalpy as the controlling variables. The lookup table contains a small enthalpy range for this specific setup. The detailed chemistry simulations were performed with cantera. The strain rate at which the counterflow flames were generated was 56 [1/s] to match the experimental setup. The file can be found at ([fgm_ch4_ZH.drg](https://github.com/su2code/Tutorials/tree/master/incompressible_flow/Inc_Laminar_Diffusion_Flame/fgm_ch4_ZH.drg)). + +The mesh is created using [gmsh](https://gmsh.info/) and a respective `.geo` script is available to recreate/modify the mesh [counterflow.geo](https://github.com/su2code/Tutorials/tree/master/incompressible_flow/Inc_Laminar_Diffusion_Flame/counterflow.geo). The mesh has quadrilateral cells, with 8324 elements and 8551 points. This very coarse mesh is sufficient to capture accurately resolve the flame for this testcase. + +![Mesh with boundary conditions](../../tutorials_files/incompressible_flow/Inc_Laminar_Diffusion_Flame/mesh.png) +*Figure (3): Computational mesh with color indication of the used boundary conditions.* + + +## Background + +For premixed flames, the controlling variable is the progress variable C, which monitors the progress of combustion. The smallest value represents the unburnt mixture and the largest value the burnt mixture, and in the reaction zone the progress variable is monotonously increasing. For nonpremixed flames, also called diffusion flames, the main controlling variable is the mixture fraction Z: Z=1 for the fuel and Z=0 for the oxidizer. In partially premixed combustion we need to solve a transport equation for both. The usual flamelet approach is to solve 1D flames using detailed chemistry. This can be done with detailed chemistry packages like cantera, FlameMaster, chem1d or other chemistry software. The solution is then rewritten into progress variable space or mixture fraction space. For example temperature T(x) is rewritten to T(Z). For purely premixed flames, the 1d solutions have to be generated for the equivalence ratio $\phi$ of the problem that you want to study. For purely nonmpremixed flames, the 1d solutions have to be generated for the strain rate $s$ of the problem. The equivalence ratio stays constant in purely premixed flames. However, in purely nonpremixed flames the strain rate is usually not constant except in exceptional cases like counterflow diffusion flames. So in general, a nonpremixed laminar flame needs 2 controlling variables: the mixture fraction and a controlling variable representing the strain rate. This will be treated in another tutorial. For this tutorial we will stick with a fixed strain rate. +That means combustion is in our case described solely by the transport equation for mixture fraction: + +$$ \frac{\partial Z}{dt} + \nabla \cdot (\rho u Z) = \nabla\cdot (D \nabla Z) $$ + +Where the diffusion coefficient D is retrieved from the lookup table. + +When heat loss occurs, the enthalpy also has to be taken into account as a controlling variable. Usually, heat losses are important and are taken into account by default in flamelet approaches. We also generate a lookup table as function of mixture fraction and enthalpy here. In SU2, an additional enthalpy equation is solved together with mixture fraction (the original energy equation of the flow solver is de-activated). Fluid and chemistry properties are tabulated from cantera results, stored in a LUT.drg file and retrieved from the lookup table every iteration. + + +## Problem Setup + +The Flamelet Generated Manifold method used the incompressible flow solver, so we set: +``` +SOLVER = INC_NAVIER_STOKES +``` + + +### Enabling Flamelet Fluid Model +Setting the fluid model to **FLAMELET** activates the scalar solver. The **CONTROLLING_VARIABLE_NAMES** determines the number of transport equations. The number of controlling variables and their names have to match what is in the lookup table. The lookup table file is given using **FILENAMES_INTERPOLATOR**. With **CONTROLLING_VARIABLE_SOURCE_NAMES** we define the main reaction source term for each of the controlling variables. Just put NULL if the controlling variable does not have a source term. Note that mixture fraction and enthalpy do not get any source terms here. + +``` +FLUID_MODEL= FLUID_FLAMELET +CONTROLLING_VARIABLE_NAMES= (MixtureFraction, EnthalpyTot) +FILENAMES_INTERPOLATOR= fgm_ch4_ZH.drg +CONTROLLING_VARIABLE_SOURCE_NAMES = (NULL, NULL) +``` + +We use a flamelet model for the other fluid submodels, except for density. For density, we use the incompressible ideal gas law. In that case we do not have to store density in the table. The results are the same. + +``` +KIND_SCALAR_MODEL= FLAMELET +DIFFUSIVITY_MODEL= FLAMELET +VISCOSITY_MODEL= FLAMELET +CONDUCTIVITY_MODEL= FLAMELET +INC_DENSITY_MODEL= VARIABLE +INC_ENERGY_EQUATION = NO +``` +Note that the energy equation from the flow solver will always be de-activated. + + +### Passive look-up terms + +To compare the species mole fractions with experiments, we need to look up these values from the table and then save them in for instance the paraview file for visualization. All quantities defined by **LOOKUP_NAMES** are passive values and are only retrieved from the table and then saved to an output file. +``` +LOOKUP_NAMES = (MolarWeightMix, Conductivity, Cp, Heat_Release, DiffusionCoefficient, X-CO, X-CO2, X-H2O, X-CH4, X-O2) +``` + + +### Boundary conditions + +The inlet boundary conditions for the counterflow diffusion flame are U=0.45 m/s for the fuel and air inlet. +At the wall, a zero heat flux is imposed. Note that for the flamelet method, we solve our own transport equation for the energy (total enthalpy). The regular energy equation of the flow solver is passive. We now have two methods to impose a boundary condition for the energy equation. The first one is using the temperature and heat flux from the flow solver: +``` +MARKER_INLET = (inlet_fuel, 305., 0.45, 0.0, 1.0, 0.0, inlet_oxidizer, 305., 0.45, 0.0,-1.0, 0.0) +MARKER_HEATFLUX= (wall_fuel, 0.0, wall_oxidizer, 0.0, wall_outlet, 0.0) +``` +The inlet temperature is then internally converted to a value for total enthalpy and this value is imposed on the total enthalpy equation of the flamelet solver. The second method is by directly imposing the inlet value and boundary for total enthalpy, + +``` +MARKER_INLET_SPECIES = (inlet_fuel, 1.0, -4.654e6, inlet_oxidizer, 0.0, 1.9e3) +MARKER_WALL_SPECIES= (wall_fuel, FLUX, 0.0, VALUE, -4.645e6, wall_oxidizer, FLUX, 0.0, VALUE, 1.90e3) +``` + +In this case, the temperature follows from the imposed enthalpy. +To switch between the two methods, you can use the configuration option: +``` +FLAMELET_ENTHALPY_BC= FLOW_MARKERS +% FLAMELET_ENTHALPY_BC= SPECIES_MARKERS +``` +Since we know from the experiment the inlet temperature, we use **FLOW_MARKERS** to define temperature. + +For the initialization of the flame we define a plane, and on one side of the plane we set Z=0 and on the other we set Z=1. We define a transition region of 1e-4 at the interface. +``` +FLAME_INIT_METHOD= FLAME_FRONT +% make sure to put it to NONE when restarting +%FLAME_INIT_METHOD= NONE +FLAME_INIT= (-0.006, 0.00, 0.00, 1.0, 0.0, 0.0, 1.0e-4, 1.0) +``` +This method also overrules any values defined using **SPECIES_INIT**. + +### Manifold set-up +The lookup table was generated using the SU2_DataMiner package, which can be found here: +[SU2_DataMiner](https://github.com/su2code/SU2_DataMiner) +We will not go into the table generation now, but merely provide the results. For the constant strain diffusion flamelets, we fix the strain rate and run a series of counterflow flames for different enthalpies (we vary the inlet temperature). The resulting solutions for temperature are shown below: + +![LUT Temperature](../../tutorials_files/incompressible_flow/Inc_Laminar_Diffusion_Flame/ZH_lines_Temperature.png) +*Figure (4): The 1D cantera solutions for the counterflow flames, using a variation in inlet temperature.* + +We then store the 1D solutions as a 2D field with mixture fraction and enthalpy as the independent variables. The result for temperature and heat release rate is shown below: + +![LUT field](../../tutorials_files/incompressible_flow/Inc_Laminar_Diffusion_Flame/ZH_fields.png) +*Figure (5): A 2D surface representation of the FGM, showing the temperature and the heat release rate as function of mixture fraction and enthalpy. Note that our enthalpy range is not very large. We can represent constant strain flames with different inlet temperatures, but for simulations with large heat losses the table has to be extended to lower enthalpies.* + +Note that the mixture fraction equation is a diffusion equation and does not contain any source terms, unlike the progress variable equation for premixed flames. + + +## Running SU2 + +The simulation can be run in serial using the following command: +``` +$ SU2_CFD lam_nonprem_ch4.cfg +``` +or in parallel with your preferred number of cores: +``` +$ mpirun -n <#cores> SU2_CFD lam_nonprem_ch4.cfg +``` + +## Results + +After 800 iterations, the simulation has converged. The convergence plot normalized with the first value of the residual looks like this: + +![convergence_plot](../../tutorials_files/incompressible_flow/Inc_Laminar_Diffusion_Flame/counterflow_diffusion_convergence.png) +*Figure (6): Residual plot showing convergence of the counterflow diffusion flame.* + +The residuals for pressure and velocity have dropped by 6 orders of magnitude, which is sufficient for this testcase. + +A contour plot of the temperature field in the domain is shown below. Note that only 1/3 of the right vertical edge is an outlet. The smaller outlet will force the flow to accelerate close to the outlet. This prevents backflow, which deteriorates convergence. + +![convergence_plot](../../tutorials_files/incompressible_flow/Inc_Laminar_Diffusion_Flame/counterflow_diffusion_flame_temperature_streamlines.png) +*Figure (7): Result visualized using paraview. Shown is the temperature field and the streamlines colored by mixture fraction.* + +In the figure we have also indicated the isocontours of mixture fraction for values Z=0.4 (blue), Z=0.5 (dark purple) and Z=0.6 (red), showing that the maximum temperature occurs at $Z<0.4$. The flame looks very diffusive close to the outlet because of the blockage in the corners. Here, a low velocity recirculation zone in the top and bottom corner is mixing the fuel and air, causing the diffusive behavior. + +A figure of the temperature on the symmetry axis is shown below, together with measured results from Sung et al. (1995). These results are also mentioned in the book of C.K. Law, *Combustion Physics*. +![convergence_plot](../../tutorials_files/incompressible_flow/Inc_Laminar_Diffusion_Flame/counterflow_S56_temperature.png) +*Figure (8): Temperature as function of distance (from the fuel inlet) on the symmetry axis.* + +We see that the temperature profile is predicted quite accurately, for the first order as well as for the second order MUSCL scheme. + +The methane mole fraction at the fuel inlet was 23%, which can be clearly seen in the figure for mole fraction of $CH_4$ below. +![convergence_plot](../../tutorials_files/incompressible_flow/Inc_Laminar_Diffusion_Flame/counterflow_S56_CH4.png) +*Figure (9): Methane mole fraction as function of distance (from the fuel inlet) on the symmetry axis.* + +A first sanity check is always to to check that inlet mass fraction or mole fractions are correct. The consumption of $CH_4$ in the flame is also predicted correctly + +The $CO_2$ mole fraction is zero at both inlets and rises in the reaction zone. +![convergence_plot](../../tutorials_files/incompressible_flow/Inc_Laminar_Diffusion_Flame/counterflow_S56_CO2.png) +*Figure (10): Mole fraction of CO2 as function of distance (from the fuel inlet) on the symmetry axis.* + +As for $CH_4$, the $CO_2$ mole fraction in the flame zone is correctly predicted, the maximum value as well as the slope is matching with the experiment. + +The lookup value for CO is much lower than the experimentally measured value. CO as well as NO are very slow reactions, and are not accurately predicted by flamelet approaches. To get more accurate results for CO or NO, a separate transport equation should be solved for them. Instead of the value for CO, we look up the source term for the transport equation for CO. +![convergence_plot](../../tutorials_files/incompressible_flow/Inc_Laminar_Diffusion_Flame/counterflow_S56_CO.png) +*Figure (11): Mole fraction of CO as function of distance (from the fuel inlet) on the symmetry axis.* + +The temperature can also be plotted as function of the mixture fraction, leading to the 1D flamelet result shown below. +![convergence_plot](../../tutorials_files/incompressible_flow/Inc_Laminar_Diffusion_Flame/counterflow_S56_Z_T.png) +*Figure (12): Temperature as function of mixture fraction, using the values taken at the symmetry axis.* + +This shows the typical Burke-Schumann- like behavior where the diffusion flame can be described by a pre-flame and a post-flame zone with almost linear slope for temperature. + +Note that the lookup table for this tutorial is for methane-air and a strain rate of 56 1/s. If you have a different configuration, you will need to generate your own table. + diff --git a/_tutorials/incompressible_flow/Inc_Lid_Driven_Cavity/Inc_Lid_Driven_Cavity.md b/_tutorials/incompressible_flow/Inc_Lid_Driven_Cavity/Inc_Lid_Driven_Cavity.md new file mode 100644 index 00000000..7cafa9ed --- /dev/null +++ b/_tutorials/incompressible_flow/Inc_Lid_Driven_Cavity/Inc_Lid_Driven_Cavity.md @@ -0,0 +1,150 @@ +--- +title: "Incompressible, Lid Driven Cavity Flow" +permalink: "/tutorials/Inc_Lid_Driven_Cavity/" +written_by: Thijs Aalbers +for_version: 8.5.0 +revised_by: +revision_date: +revised_version: +solver: INC_NAVIER_STOKES +requires: SU2_CFD +complexity: beginner +follows: +--- + +![LDC velocity contours](../../tutorials_files/incompressible_flow/Inc_Lid_Driven_Cavity/images/ldc_velocity.png) + +## Goals + +Upon completing this tutorial, the user will be familiar with performing a simulation of laminar, incompressible, lid-driven flow within a cavity. Consequently, the following capabilities of SU2 will be showcased in this tutorial: + +- Steady, 2D, laminar, incompressible, Navier-Stokes equations +- Dynamic mesh movement MOVING_WALL +- Central Difference Scheme (CDS) convective scheme in space (2nd-order) +- The pressure-correction solver for incompressible flow (PISO) + +The intent of this tutorial is to demonstrate the pressure-correction solver (PISO) algorithm of the incompressible solver, by using a very simple test case. + +## Resources + +The resources for this tutorial can be found in the [Inc_Lid_Driven_Cavity](https://github.com/su2code/Tutorials/tree/master/incompressible_flow/Inc_Lid_Driven_Cavity) directory in the [tutorial repository](https://github.com/su2code/Tutorials). You will need the configuration file ([incomp_pb_liddrivencavity.cfg](https://github.com/su2code/Tutorials/tree/master/incompressible_flow/Inc_Lid_Driven_Cavity/incomp_pb_liddrivencavity.cfg)) and the mesh file ([mesh_cavity_257x257.su2](https://github.com/su2code/Tutorials/tree/master/incompressible_flow/Inc_Lid_Driven_Cavity/mesh_cavity_257x257.su2)). + + +## Tutorial + +The following tutorial will walk you through the steps required when solving for the flow in the lid-driven cavity using the pressure-correction incompressible flow solver in SU2. It is assumed you have already obtained and compiled the SU2_CFD code for a serial (or parallel) computation. If you have yet to complete these requirements, please see the [Download](/docs_v7/Download/) and [Installation](/docs_v7/Installation/) pages. + +### Background + +The lid-driven cavity is a classic benchmark problem for testing incompressible flow solvers. It consists of a simple 2D square cavity, with a moving lid. This moving lid creates a driving force on the fluid in the cavity trough the viscosity of the fluid. As the fluid is contained by the cavity, this driving force results in several vortices forming inside the cavity, depending on the Reynolds number. + +### Problem Setup + +The problem setup is meant to be entirely governed by the Reynolds number which is defined as $Re = \rho U L / \mu$. Here, for simplicity, we use $\rho=1$, $U=1$, and $L=1$. Then the Reynolds number is entirely determined by the dynamic viscosity. Here we use a moderate Reynolds number of $400$, we therefore do not have to worry about instabilities caused by turbulence, or require very fine meshes to resolve the boundary layers. + +### Mesh Description + +The computational mesh for the cavity is composed of quadrilaterals with 65 uniformly spaced nodes in both the x- and y-directions. The 4 boundaries of the cavity are no-slip walls. The cavity is 1 m by 1 m. + + +### Configuration File Options + +Here, we specify some of the important configuration file options, specifically related to the pressure-correction solver type. We however start with some more general options to set up the problem with a moving lid. We start with a constant density, and a viscosity to get a Reynolds number of 400 + +``` +% ---------------- INCOMPRESSIBLE FLOW CONDITION DEFINITION -------------------% +% +INC_DENSITY_MODEL= CONSTANT +INC_DENSITY_INIT= 1.0 +INC_VELOCITY_INIT= ( 0.0, 0.0, 0.0 ) + +INC_DENSITY_REF= 1.0 +INC_VELOCITY_REF= 1.0 +INC_NONDIM= REFERENCE_VALUES + +% --------------------------- VISCOSITY MODEL ---------------------------------% +% +VISCOSITY_MODEL= CONSTANT_VISCOSITY +MU_CONSTANT= 2.5E-3 +``` + +We then define the upper wall to move to the right with a constant velocity as + +``` +% ----------------------- DYNAMIC MESH DEFINITION -----------------------------% + +% Type of dynamic mesh (NONE, RIGID_MOTION, DEFORMING, ROTATING_FRAME, +% MOVING_WALL, FLUID_STRUCTURE, AEROELASTIC, EXTERNAL) +SURFACE_MOVEMENT= MOVING_WALL +MARKER_MOVING= upper +SURFACE_MOTION_ORIGIN = 0.0 0.0 0.0 +SURFACE_ROTATION_RATE = 0.0 0.0 0.0 +SURFACE_TRANSLATION_RATE = 1.0 0.0 0.0 +``` + +Now that the moving lid is set up, we continue by defining the pressure-correction algorithm. To activate the pressure-correction solver, we specify + +``` +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= INC_NAVIER_STOKES +% +% The kind of incompressible solver (DENSITY_BASED, PRESSURE_BASED) +KIND_INCOMP_SYSTEM = PRESSURE_BASED + +``` + +Once we have selected the pressure-correction solver instead of the default solver for incompressible flow, we can continue specifying options for the algorithm. Here, we use the PISO algoritm, which means that we use 2 corrections instead of 1, this is defined by setting the PISO_CORECTIONS setting to 2 (default is 1). We use a PISO algorithm (with multiple corrections) to improve the convergence speed by allowing a greater CFL number. + +For a regular PISO algorithm, the pressure and momentum underrelaxation is commonly not used, as this is not needed, we therefore also do not touch these and leave these as 1. Lastly, we have the option to alter the influence of the transient term in the coefficients used by the algorithm. These coefficients are dependent on the time step, which means that the final solution can be dependent on the CFL. Here, this effect does not influence the final solution noticeably and we therefore keep it. + +``` +% ----------------------- PRESSURE BASED PARAMETERS ---------------------------% +% +KIND_PB_ITER= SIMPLE +PISO_CORRECTIONS = 2 +RELAXATION_FACTOR_PRESSURE= 1.0 +TRANSIENT_TERM_REMOVAL_FACTOR= 0.0 +``` + +Lastly, we must take care of the solution method for the poisson equation that is required when solving for the pressure-correction. This is notoriously a bottleneck in the algorithm, as it often has difficulty to converge fast. For a low Reynolds number case such as this, this is not so much an issue which is why we use FGMRES. At the time of writing this, there does not yet exist a linear solver method specifically for the poisson solver which makes this more difficult and important at larger Reynolds numbers or finer meshes. + +``` +POISSON_LINEAR_SOLVER= FGMRES +POISSON_LINEAR_SOLVER_PREC= ILU +POISSON_LINEAR_SOLVER_ERROR= 1E-4 +POISSON_LINEAR_SOLVER_ITER= 1000 +``` + +### Running SU2 + +To run this test case, the follwing steps can be applied. First, make sure that the config file and mesh file are copied to the same directory. Also make sure that SU2 is compiled, installed and that the install location was added to your path. + +#### In Serial + +To run the test case in serial, enter the following in the command line + +``` +$ SU2_CFD incomp_pb_liddrivencavity.cfg +``` + +#### In Parallel + +To run it in parallel, using ```NP``` number of processors, enter the following command in the command line + +``` +$ mpirun -np NP SU2_CFD incomp_pb_liddrivencavity.cfg +``` + +### Results + +Results of the test case are shown below. We compare the results (postprocessed in Paraview) to results obtained by Ghia et al. which shows excellent agreement. + + +![Velocities along midlines](../../tutorials_files/incompressible_flow/Inc_Lid_Driven_Cavity/images/velocity_comparisons.png) + +Figure (1): A plot of the velocities along the midlines ($x=0.5$ and $y=0.5$ respectively) compared to the results reported by Ghia et al. + + + + diff --git a/_tutorials/index.md b/_tutorials/index.md index 5b4c910e..c48a2a8f 100644 --- a/_tutorials/index.md +++ b/_tutorials/index.md @@ -83,6 +83,8 @@ Simulation of unsteady laminar vortex shedding behind a circular cylinder. Simulation of turbulent flow in a 90 degree pipe bend using wall functions. * [Urban City](/tutorials/Inc_Urban_City/) Simulation of wind velocity and smoke through the city center of Amsterdam. +* [Lid Driven Cavity](/tutorials/Inc_Lid_Driven_Cavity/) +Simulation of a laminar, lid driven cavity, using the PISO algorithm #### Structural Mechanics @@ -107,6 +109,8 @@ Simulation of multiple heated cylinders in incompressible fluid flow. Simulation of an unsteady coupled CHT problem incorporating multiple physical zones. * [Conjugate Heat Transfer between Solid Domains](/tutorials/SS_CR_CHT/) Simulation of CHT between solid domains with contact resistance. +* [Laminar Diffusion Flame](/tutorials/Inc_Laminar_Diffusion_Flame/) +Simulation of a laminar, non-premixed counterflow flame with constant strain rate. * [Pre-mixed Hydrogen Combustion](/tutorials/Inc_Combustion/) Simulation of a laminar, pre-mixed hydrogen flame on a cooled burner plate. * [Python wrapper for User Defined Functionality](/tutorials/TFC_python/) diff --git a/_tutorials/workflow_features/Aeroacoustic_Pressure_Spectrum/Aeroacoustic_Pressure_Spectrum.md b/_tutorials/workflow_features/Aeroacoustic_Pressure_Spectrum/Aeroacoustic_Pressure_Spectrum.md new file mode 100644 index 00000000..9921dfcd --- /dev/null +++ b/_tutorials/workflow_features/Aeroacoustic_Pressure_Spectrum/Aeroacoustic_Pressure_Spectrum.md @@ -0,0 +1,143 @@ +--- +title: Aeroacoustic Pressure Spectrum +permalink: /tutorials/Aeroacoustic_Pressure_Spectrum/ +written_by: tokito-99 +for_version: 8.5.0 +solver: all +requires: aeroacoustics.py, Python, Matplotlib +complexity: basic +--- + +![Pressure spectrum](../../tutorials_files/workflow_features/Aeroacoustic_Pressure_Spectrum/images/pressure_spectrum.png) + +Figure (1): Narrowband SPL spectrum computed from a pressure probe history. The dashed line marks the dominant non-zero frequency. + +## Goals + +This tutorial shows how to use `aeroacoustics.py` to postprocess an unsteady pressure history written by SU2. The tutorial uses a pressure probe history from an existing unsteady square-cylinder case and computes: + +- the pressure power spectral density; +- the narrowband sound pressure level; +- the overall sound pressure level; +- the dominant non-zero frequency. + +This is a postprocessing workflow. It does not run a new flow simulation. + +## Resources + +The resources for this tutorial can be found in the [workflow_features/Aeroacoustic_Pressure_Spectrum](https://github.com/su2code/Tutorials/tree/master/workflow_features/Aeroacoustic_Pressure_Spectrum) directory in the [tutorial repository](https://github.com/su2code/Tutorials). You will need the pressure history file [history_aeroacoustics.csv](https://github.com/su2code/Tutorials/tree/master/workflow_features/Aeroacoustic_Pressure_Spectrum/history_aeroacoustics.csv) and the plotting script [plot_spectrum.py](https://github.com/su2code/Tutorials/tree/master/workflow_features/Aeroacoustic_Pressure_Spectrum/plot_spectrum.py). + +## Tutorial + +The following sections show how to prepare a pressure history, run the aeroacoustics postprocessor, and inspect the resulting acoustic quantities. It is assumed that SU2 has been compiled and installed, and that the SU2 tools are available in your path. + +### Pressure probe history + +The input to `aeroacoustics.py` is a uniformly sampled CSV history file. For a new unsteady SU2 case, pressure probes can be added with custom outputs. For example: + +```bash +CUSTOM_OUTPUTS= 'mic1 : Probe{PRESSURE}[1.0, 0.0, 0.0]' +HISTORY_OUTPUT= TIME_ITER, CUR_TIME, mic1 +``` + +The important requirements are: + +- the pressure column must contain pressure values; +- the samples must be uniformly spaced in physical time; +- the initial transient should be removed before interpreting the spectrum. + +The tutorial input file already contains a pressure column named `mic1` and a physical-time column named `Cur_Time`. + +### From pressure history to SPL + +A pressure probe records a time signal, usually written as \(p(t)\). For spectral analysis, the useful quantity is the pressure fluctuation around the local mean. The postprocessor removes the mean from each segment by default, so the spectrum is based on the fluctuating part of the signal. + +The signal is split into overlapping blocks. Each block is multiplied by a window function and converted from time to frequency with a fast Fourier transform. The squared Fourier amplitudes are scaled to form a one-sided pressure power spectral density. Averaging these spectra over all blocks gives the Welch spectrum used by `aeroacoustics.py`. + +The narrowband SPL in each frequency bin is computed by multiplying the PSD by the frequency-bin width and referencing the result to \(p_{ref}=20\) micro-Pa: + +$$ +SPL(f_i) = 10 \log_{10}\left(\frac{PSD(f_i)\Delta f}{p_{ref}^2}\right) +$$ + +The OASPL is computed by summing the PSD over frequency before applying the same reference pressure. This gives a single pressure level for the analyzed signal. + +### Running the aeroacoustics tool + +Move to the tutorial resource directory: + +```bash +$ cd workflow_features/Aeroacoustic_Pressure_Spectrum +``` + +Run the postprocessor: + +```bash +$ aeroacoustics.py history_aeroacoustics.csv \ + --pressure mic1 \ + --time Cur_Time \ + --segment-length 2048 \ + --summary acoustic_summary.json \ + --output acoustic_spectrum.csv +``` + +The command writes two files. The CSV file contains the frequency-dependent spectrum. The JSON file contains scalar metrics that are useful for quick inspection or automated checks. + +The terminal output should be similar to: + +```bash +Sample rate: 666.66667 Hz +mic1: OASPL = 103.151 dB, dominant frequency = 1.953125 Hz +Spectrum written to acoustic_spectrum.csv +``` + +### Plotting the results + +After running `aeroacoustics.py`, create the figures with: + +```bash +$ python3 plot_spectrum.py +``` + +This creates: + +- `pressure_history.png` +- `pressure_spectrum.png` + +The first plot shows the pressure signal in time. + +![Pressure history](../../tutorials_files/workflow_features/Aeroacoustic_Pressure_Spectrum/images/pressure_history.png) + +Figure (2): Pressure recorded at the `mic1` probe. + +The second plot shows the narrowband SPL spectrum. + +![Pressure spectrum](../../tutorials_files/workflow_features/Aeroacoustic_Pressure_Spectrum/images/pressure_spectrum.png) + +Figure (3): Narrowband SPL spectrum. The strongest non-zero spectral bin occurs at 1.953125 Hz. + +### Interpreting the output + +The value reported as OASPL is obtained by integrating the pressure power spectral density and referencing the result to 20 micro-Pa. For this tutorial data, the computed OASPL is 103.151 dB. + +The dominant frequency is the non-zero frequency bin with the largest pressure spectral density. For this tutorial data, the dominant frequency is 1.953125 Hz. + +The spectrum is a probe-pressure spectrum. If the probe is placed in the vortical near field, the result should not be interpreted as a far-field acoustic prediction. Far-field acoustic propagation requires a separate acoustic analogy or propagation method. + +### Effect of analysis settings + +Several command-line options affect the appearance and interpretation of the spectrum. + +The `--segment-length` option controls the frequency spacing. A larger segment length gives a smaller `Frequency_Hz` spacing, so peaks can be located more precisely. The tradeoff is that fewer blocks are available for Welch averaging. + +The `--overlap` option controls how much neighboring blocks share data. The default value of 0.5 is a common choice for Hann-windowed spectra. + +The `--window` option controls the weighting applied to each block before the Fourier transform. The default Hann window reduces spectral leakage when the signal does not contain an exact integer number of periods inside one segment. Other windows can change peak width and sidelobe levels. + +The `--detrend` option controls how offsets or slow drift are removed from each block. The default `mean` setting removes the average pressure from each segment. The `linear` setting can be useful if the history has slow drift. + +The `--skip-samples` option removes samples from the beginning of the file. This is useful when the early part of an unsteady simulation still contains startup transients. + +### Final notes + +A clean spectrum requires enough samples, a fixed time step, and a pressure probe location that matches the question being asked. A near-wake pressure probe can identify dominant unsteady flow frequencies, but it should not be treated as a far-field microphone without an acoustic propagation model. diff --git a/download.html b/download.html index 0b3cea57..9603593a 100644 --- a/download.html +++ b/download.html @@ -16,14 +16,14 @@