Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Decaying homogeneous isotropic turbulence (#194)
* ESFR Split forms. Contains all unsteady unit and integration tests. Makes use of operators in DG strong. Provides weight-adjusted curvilinear Mass matrices. Includes free-stream preserving metric terms. * Removed the accidentally pushed mesh file. Will rebase last 4 commits into 1. * Cleaning up the accidental added line at end of some files and removed #if 0 #endif commented blocks. * And this file deleted last line. * Finished removing #if 0 #endif blocks, added some comments and included new numerical fluxes in the numerical_flux_conservation test. * Apply suggestions from code review dg.cpp minor edits * Implemented sum factorization in operators class. All operations can be written as a combination of matrix-vector products and inner products. A unit test verifies by testing the cputime for A*u and also M*u where M is a mass matrix--uses both matrix-vector product and inner product forms. All that is left is to clean up the unit test a bit to fail at wrong orders. * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review * Update src/parameters/all_parameters.cpp * Update with all changes requested from pull request. Only missing merge conflict with ode solver base then pull request changes complete. * Small cleanup changes before I merge upstream master in my branch. * Made corrections to explicit ode solver with Butcher tableau c values. Updated unsteady tests. Continued to clean up and removed deprecated Burgers Rewienski lines. * Cleaned up last few comments on pull request wrt Flux reconstruction operators and flags. * Removed old references to Runge-Kutta order. * Cleaned up re-used code in operators, and other comments from PR. * Removed collection tuple from dg. Removed finite element and quadrature collections from DG. Made consistent throughout the code to call operators finite element and quadrature collections from the operators collection tuple. * Fixed typos in error messages. * Created initial condition base class with interpolate and projection capabilities for different initial condition functions. This generalizes the initial condition class. * Turned axuiliary mass matrix into a single rather than array of dim because we use the same mass matrix for each dim direction. This reduces memory consumption. * Templated initial condition base by nstate and the functions therein. * Added a strong form Navier-Stokes integration test. * Made mapping support points arrays instead of vectors. Added flag in dg allocate system for the implicit matrix/vectors to allocate to reduce memory costs. * Fix minor changes from Pranshul. * Small update. Switching branch for other work. * Auxiliary variable correctly computed for NAvier-Stokes equation now. Verified through viscous TGV test strong. * Fixed small compiling error. * Fix TGV viscous strong control file * Strong viscous TGV energy check test confirmed pass. * Added definitions for projection. * Changed initial condition base to just initial condition since nothing is derived from it. * Current status of new operators backup * Made entropy conserving flux work for all physics types. Will return to my other branch with restructuring operators class for efficiency now. * Recent version, new operators quarter done. * For energy tests, only initializes ode solver on first iteration now. * For Julien to debug his flow solver case. I will revert these changes after so that the test case is mroe reasonable when using ctests. * Fixed the Burgers' energy inviscid initial condition. * Fixed stash error * Apply suggestions from code review * cleaning up InitialCondition; changed to SetInitialCondition * removing commented lines from previous commit * fixing bug that would run two tgv energy check quick tests * cleaning up src/parameter/ files; fixing comments marked as fixed that were not actually fixed * minor editorial changes * correcting all_parameters.cpp from last commit; indentation and doxygen fixes * indentation clean up in unit tests and euler split tgv * cleaning up src/testing/ files * removing unused CurvManifold class declaration in advection_explicit_periodic.h * changing tabs to spaces in burgers_stability.cpp * cleaning up ConvectionDiffusionPeriodic class files in src/testing/ * reducing code repetition in CMakeList for flow_variable_tests * reviewing src/dg, src/numerical_flux, and src/ode_solver/ files; moving all convective num fluxes to convective_numerical_flux.<cpp/hpp>; converting tabs to spaces in convective_numerical_flux.cpp; general clean up in numerical flux directory; indentation fixes * New operators class completed with passing unit tests. Only unit tests to change atm are sum factorization, metric splitting and weight adjusted inverse. Next step is to deprecate the previous operators class and make respective changes throughout dg, tests etc. * reviewing src/mesh/grids files * making repeated constants class members in NonsymmetricCurvedGridManifold * correcting "set test_type = flow_solver" to "set run_type = flow_simulation" in prm files * The sum factorization test. * Changed mapping shape functions class so metric operators less variables pass to construct. * fixing time refinement study parameter file * New operators class complete with top-nothc efficiency :) * adding print statements for operators allocation status * adding forgotten print statements * comment fix * resolving a PR comment * Implemented new operators class throughout DG/DG strong. All that is left is having it pass the tests. It currently compiles. * I have DG strong conservative working, now need to tweak split forms and pass all tests. * Conservative DG works 2D curvilinear. Now need cuvilinear split form to work properly, then will do auxtesting/tgv and finito. * Got curvilinear stability and weight-adjusted curvilinear working perfectly. Now only needs to pass auxiliary/conv_diff explicit and it's all done! * 3D TGV works. Now just auxiliary. * bug fix for writing pvtu files in subdirectory * setting default value for WALE model constant to that recommended by literature * Auxiliary and conv diffusion passes. * Inverse mass on the fly and mass evaluated on the fly in application per cell done. Only doesnt work for curvilinear at the moment. Has flag to use. For curvilinear, do not use inverse on the fly yet. Works perfectly for linear grids. * 2pt flux Hadamard sum after the Hadamard product now O n^d+1. All is finished. * Made mass matrix computation more efficient. FINALLY PASSES NACA 0012 OPTIMIZATION I'm so happy! * compiles. Have not yet tested since the merge. * Fixed TGV Euler split form test that got stuff deleted during the merge. Also, in mass matrix DG, changed condition of factoring out det of Jac by Cartesian element rather than linear. This is because unstructured linear meshes do NOT have a constant metric Jacobian determinant, only Cartesian meshes do. Will run ctest and clean up documentation now. * Moved the entropy consevring, entropy stable split, and central numerical fluxes into convective numerical flux. * Changed tabs to spaces in burgers epxlicit test. * Added documentation equations to DG strong. * Modified TGV split test to use initial condition TGV function. * Fixed Polynomial degree ramping issue. * Run curvilinear mesh on Narval. Also, made 3D periodic nonsymm curv grid. * Added energy file declaration from control file. Also increased warping of grid. * small clean up * fixing pde_type flag in strong dg * correcting initial condition setting in split tgv * Finished with curv TGV work for conference * 1D_BURGERS_STABILITY_ORDERS_OF_ACCURACY_LONG passing * 1D_TIME_REFINEMENT_STUDY_ADVECTION_EXPLICIT now passes and behaves as supposed to. * 1D periodic now CONFIRMED to work with dealii matched faces. Thus, the hardcoded 1D periodic was removed. All tests that are affected by this pass. * Viscous TGV energy check quick STRONG passing. * Smoothed out auxiliary test to reach asymptotic convergence in L infinity norm in a reasonable time/grid level. * Unit test verifying DG Strong Auxiliary equations' right-hand-side for d\in[1,3], for Navier-Stokes equations. * Fixed CMake files and cleaned up the include header files in unit test. * Resolved conflicts from merge that caused the tests to fail. Tests are passing now. * Removed use_strong_form flag in dg.cpp. Instead uses polymorphism to build operators needed for strong or fevalues needed for weak and assembles the residual functions therein. Also, corrected parameter files for advection unsteady weight adjusted curvilinear tests. * Made a few small minor changes to operators. * Small bug fix I saw. * fixing Gaussian bump flow case merge commit; related tests now passing * adding physics_model to use_aux_equation flag * Refactoring NumericalFluxConvective * introducing has_nonzero_diffusion bool in physics * assigning has_nonzero_diffusion to use_auxiliary_eqn * bug fix * Added viscous pseudotime to converge the diffusion with explicit steady state (both weak and strong needed this). Added the max_dt_cell for strong form calculation. Verified the boundary integrals in strong form. Fully verified viscous strong form, with energy tests recovering the exact provable stability bound to machine precision. Added a central viscous flux to achieve the exact provable stability condition. * Fixed 3D periodic nonsymmetric grid. Setup TGV for curvilinear grid. Fixed bug in weight-adjusted on-the-fly for curvilinear and now passes both 2D and 3D tests. Added condition for sum-factorization tests for cpu orders of convergence. * improving MPI_VISCOUS_TAYLOR_GREEN_VORTEX_RESTART_FROM_PARAMETER_FILE_CHECK * Update. Switching branches. * Added check for convergence in Hadamard product sum-factorized test. The test is still the same but it checks if the computed error was off because it didn't consider enough polynomial points. * This always passes. * Speed up TGV run. * Fixed bug with diffusion implicit convergence times. * Cleaned up TGV test for curvilinear grid. * Fix nonsymmetric grid for 2D advection, the 1/5 was too much warping, changed back to 1/10. * Adding Ismail-Roe split form convective numerical flux; introducing parameter 'two_point_num_flux_type'. * FlowSolver using set_initial_condition; can be used for curvilinear grids now * adding safeguard for parameter: number_of_grid_elements_per_dimension * Fixed projection IC for multi-state. * The test parameter file for multi-state curvilinear projection. * renaming "entropy_conserving_flux" to "two_point_flux" * using pcout in ODE factory * adding set_initial_condition_method parameter * progress on reading the file * adding read_values_from_file_and_project to SetInitialCondition class; code compiles -- ready to be tested for reading in serial * dhit test files * successfully reading DHIT flow setup file and projecting values to initialize solution; need to clean up this commit * reading files in parallel; MPI test passing * cleaning up set_initial_condition constructor, adding parameters for reading files and DHIT flow case, cleaning up test file, adding gdown script to get files * adding output_velocity_field() * bug fixes * setter/getter for time_step in FlowSolverCaseBase, outputting velocity field at hard-coded times for DHIT case * Outputting velocity field at a general set of times via input parameters * fixing seg fault * successfully preparing velocity field output files * adding output_high_order_grid parameter * interpolating velocity field to equidistant nodes for output * introducing parameter output_velocity_at_equidistant_nodes * adding constant_time_step parameter for TGV DNS verification * minor merge fix * bug fix in parameters for constant_time_step * updating ode_solver_type in missed prm files from explicit to runge_kutta; all tests expected to pass are passing * allowing for negative grid bounds; needed for verifying viscous TGV * Fixing bug which adds dissipation to Euler * Test to confirm conservation of entropy * PR comments re: entropy check test * Changing physics per PR comments; using isothermal TGV initialization * Adding comment re: MPI behaviour of dot product. * Move entropy calculation into physics * Fixing an accidental change * Addressing final PR comments * fixing ctest command for TGV restart tests when MPIMAX is not a power of 2 * setting output_high_order_grid to false by default * removing commented code in tgv shell script * Bug fixed for auxiliary rhs test to work with general processors. * Small fix from last commit. * Modify vtk output to write higher-order on straight grids * Add time data in unsteady flow solver * PeriodicTurbulence Adaptive Time Step MPI Bug Fix (#3) * flipping sign on viscous flux * reverting sign flip on viscous flux * renaming mean_specific_energy and trying equivalent pressure gradient method * unused var fix * removing misleading compute_dimensional_temperature * const member initialization for sutherlands law temperatures * bug fix for adaptive time step; using MPI max * making temperature_inf an input parameter that must be consistent with the Prandtl number * removing commented code in header * doxygen fix * renaming parameter set_initial_condition_method to apply_initial_condition_method * adding strain rate based dissipation rate to the integrated quantities * writing vorticity field * updating job_compile_PHiLiP for faster queue times * adding script for getting flow initialization files on cluster * adding documentation for getting the flow initialization files * fixing initialization of adaptive time step * error fix in last commit * adding data table for storing the exact output times for the velocity field files * adding output_flow_field_files_directory_name parameter * adding option to use constant viscosity * Printing message when negative pressure, density, or entropy is encountered * bug fix for outputting at equidistant nodes * adding option to output the solution files (.vtu) at the velocity field output times * changing int to unsigned int for file indexing in flow solver * setting proper index of current desired time for output velocity field when restarting the computation * adding timer to flow solver unsteady component * correcting LES filter width * closing issue 72 * additional merge fix * minor edit * fixing DHIT prm files; all tests passing that should be * adding timer start/stop message * addressing comment on src/dg/artificial_dissipation.h * adding check_positive functions in euler.cpp * merge fix * correcting comment header * removing mpi comment for table handler * addressing PR comments * adding DHIT test case files input files to gitignore * Correction to `output_flow_field` (#7) * Initial progress towards fixing the way soln_grad was computed at equidistant nodes * cleaning up code, removing output_velocity_field_at_equidistant_nodes parameter since always will be true * writing vorticity for mpi test as well --------- Co-authored-by: Alexander <alexander@localhost.localdomain> Co-authored-by: AlexanderCicchino <alexander.cicchino@mail.mcgill.ca> Co-authored-by: A. Cicchino <39313421+AlexanderCicchino@users.noreply.github.com> Co-authored-by: Carolyn <c.pethrick@gmail.com>
- Loading branch information