{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":135157418,"defaultBranch":"main","name":"T-Flows","ownerLogin":"DelNov","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-05-28T12:22:55.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/32706988?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1710550730.0","currentOid":""},"activityList":{"items":[{"before":"1beb22b80141b98fae33f1b1b93c6c7a54c2fc16","after":"85b0d6b7e46762a7132bf23f386c2212b86c96ad","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-08-29T10:09:55.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Updated create_external_dependencies_for_makefile!\n\nNow works much better for GPU version\n\nOn branch bojan_gpu_development\n\nmodified: Process_Cpu/makefile_explicit_dependencies\nmodified: Process_Gpu/makefile_explicit_dependencies\nmodified: Utilities/create_external_dependencies_for_makefile.sh","shortMessageHtmlLink":"Updated create_external_dependencies_for_makefile!"}},{"before":"3f84129ad6b27b4b9ca7d192d85c090b4f8a1df5","after":"1beb22b80141b98fae33f1b1b93c6c7a54c2fc16","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-08-28T15:07:21.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"IMPORTANT: Implemented backup for GPU version!\n\nAlong the way, also changed the default behaviour of the\nDriver function (former main). Now, if it is invoked\nwithout any parameters, behaves like the old (CPU) version\nof Process.\n\nOn branch bojan_gpu_development\n\nnew file: Backup_Mod.f90\nnew file: Backup_Mod/Load.f90\nnew file: Backup_Mod/Load_Cell_Real.f90\nnew file: Backup_Mod/Load_Face_Real.f90\nnew file: Backup_Mod/Load_Int.f90\nnew file: Backup_Mod/Load_Int_Array.f90\nnew file: Backup_Mod/Load_Log.f90\nnew file: Backup_Mod/Load_Log_Array.f90\nnew file: Backup_Mod/Load_Real.f90\nnew file: Backup_Mod/Load_Real_Array.f90\nnew file: Backup_Mod/Load_Variable.f90\nnew file: Backup_Mod/Save.f90\nnew file: Backup_Mod/Save_Cell_Real.f90\nnew file: Backup_Mod/Save_Face_Real.f90\nnew file: Backup_Mod/Save_Int.f90\nnew file: Backup_Mod/Save_Int_Array.f90\nnew file: Backup_Mod/Save_Log.f90\nnew file: Backup_Mod/Save_Log_Array.f90\nnew file: Backup_Mod/Save_Real.f90\nnew file: Backup_Mod/Save_Real_Array.f90\nnew file: Backup_Mod/Save_Variable.f90\nnew file: Backup_Mod/Time_To_Save_Backup.f90\nrenamed: Main.f90 -> Driver.f90\nrenamed: Test_008.f90 -> Main_Pro.f90\nmodified: Results_Mod.f90\nmodified: Results_Mod/Main_Results.f90\nmodified: control.009\nmodified: control.010\nmodified: makefile","shortMessageHtmlLink":"IMPORTANT: Implemented backup for GPU version!"}},{"before":"b688d49aae8410e7903f6d338289780fff1a19d5","after":"3f84129ad6b27b4b9ca7d192d85c090b4f8a1df5","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-23T09:39:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Fixed a couple of things for the GPU version\n\nMost noteably, made the energy equation work again.\n\nOn branch bojan_gpu_development\n\nmodified: Sources/Process_Gpu/Process_Mod/Form_Energy_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_Momentum_Matrix.f90","shortMessageHtmlLink":"Fixed a couple of things for the GPU version"}},{"before":"c256c71ea0be5fb0c0b9f05b96aaf10461c425fc","after":"b688d49aae8410e7903f6d338289780fff1a19d5","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-22T16:12:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Further developments of the GPU version.\n\nThis commit brings WALE SGS model to the suite, but many\nother little additions and changes.\n\nOn branch bojan_gpu_development\n\nmodified: Documentation/Syntax/.vim/syntax/control.vim\nmodified: Documentation/Syntax/.vim/syntax/fortran.vim\nrenamed: Documentation/Template_Mod.f90 -> Documentation/Syntax/Template_Mod.f90\nrenamed: Documentation/Template_Subroutine.f90 -> Documentation/Syntax/Template_Subroutine.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Turb/Copy_To_Device.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Turb/Destroy_On_Device.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Turb/Update_Host.f90\nmodified: Sources/Process_Gpu/Gpu_Pointers_Mod.f90\nmodified: Sources/Process_Gpu/Process_Mod.f90\nmodified: Sources/Process_Gpu/Process_Mod/Add_Advection_Term.f90\nmodified: Sources/Process_Gpu/Process_Mod/Add_Inertial_Term.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Energy.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Momentum.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Pressure.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_Energy_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_Momentum_Matrix.f90\nmodified: Sources/Process_Gpu/Read_Controls_Mod/Physical_Models.f90\nmodified: Sources/Process_Gpu/Test_001.f90\nmodified: Sources/Process_Gpu/Test_004.f90\nmodified: Sources/Process_Gpu/Test_007.f90\nmodified: Sources/Process_Gpu/Test_008.f90\nmodified: Sources/Process_Gpu/Turb_Mod.f90\nmodified: Sources/Process_Gpu/Turb_Mod/Create_Turb.f90\nmodified: Sources/Process_Gpu/Turb_Mod/Init_Turb.f90\nmodified: Sources/Process_Gpu/Turb_Mod/Main_Turb.f90\nmodified: Sources/Process_Gpu/Turb_Mod/Vis_T_Subgrid.f90\nnew file: Sources/Process_Gpu/Turb_Mod/Vis_T_Wale.f90","shortMessageHtmlLink":"Further developments of the GPU version."}},{"before":"ae15489971687c1926d678310c557c155b899735","after":"c256c71ea0be5fb0c0b9f05b96aaf10461c425fc","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-21T07:33:46.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"GOOD: Split Form_System_Matrix into two routines\n\nOne specializing in forming momentum matrix and the other\nspecializing in forming energy matrix. Having them unified\nstarted to become more of a burden than an advanage, and\nthings would only get worse when we start implementing\nturbulence models.\n\nOn branch bojan_gpu_development\n\nmodified: Sources/Process_Gpu/Process_Mod.f90\nmodified: Sources/Process_Gpu/Process_Mod/Add_Advection_Term.f90\nmodified: Sources/Process_Gpu/Process_Mod/Add_Inertial_Term.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Energy.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Momentum.f90\nnew file: Sources/Process_Gpu/Process_Mod/Form_Energy_Matrix.f90\nrenamed: Sources/Process_Gpu/Process_Mod/Form_System_Matrix.f90 -> Sources/Process_Gpu/Process_Mod/Form_Momentum_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Insert_Volume_Source_For_Pressure.f90\nmodified: Sources/Process_Gpu/Test_001.f90\nmodified: Sources/Process_Gpu/Test_004.f90\nmodified: Sources/Process_Gpu/control.010","shortMessageHtmlLink":"GOOD: Split Form_System_Matrix into two routines"}},{"before":"2108359a51b484f462511426257b6421932c9311","after":"ae15489971687c1926d678310c557c155b899735","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-20T15:54:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Still continuing from the previous commit.\n\nOn branch bojan_gpu_development\n\nmodified: Sources/Process_Gpu/Field_Mod/Gradients/Grad_Component.f90\nmodified: Sources/Process_Gpu/Field_Mod/Gradients/Grad_Pressure.f90\nmodified: Sources/Process_Gpu/Field_Mod/Gradients/Grad_Variable.f90\nmodified: Sources/Process_Gpu/Field_Mod/Utilities/Buoyancy_Forces.f90\nmodified: Sources/Process_Gpu/Field_Mod/Utilities/Calculate_Bulk_Velocities.f90\nmodified: Sources/Process_Gpu/Field_Mod/Utilities/Calculate_Shear_And_Vorticity.f90\nmodified: Sources/Process_Gpu/Field_Mod/Utilities/Volume_Average.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Field/Copy_To_Device.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Grid/Copy_To_Device.f90\nmodified: Sources/Process_Gpu/Gpu_Pointers_Mod.f90\nmodified: Sources/Process_Gpu/Process_Mod/Add_Advection_Term.f90\nmodified: Sources/Process_Gpu/Process_Mod/Add_Inertial_Term.f90\nmodified: Sources/Process_Gpu/Process_Mod/Add_Pressure_Term.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Energy.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Momentum.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Pressure.f90\nmodified: Sources/Process_Gpu/Process_Mod/Correct_Velocity.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_Pressure_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_System_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Initialize_Variables.f90\nmodified: Sources/Process_Gpu/Process_Mod/Insert_Energy_Bc.f90\nmodified: Sources/Process_Gpu/Process_Mod/Insert_Momentum_Bc.f90\nmodified: Sources/Process_Gpu/Process_Mod/Insert_Volume_Source_For_Pressure.f90\nmodified: Sources/Process_Gpu/Process_Mod/Update_Boundary_Values.f90\nmodified: Sources/Process_Gpu/Read_Controls_Mod/Boundary_Conditions.f90\nmodified: Sources/Process_Gpu/Sparse_Mod/Create_Sparse_Con.f90\nmodified: Sources/Shared/Browse.h90","shortMessageHtmlLink":"Still continuing from the previous commit."}},{"before":"98b63ecfbc7f69bf41c1f6a7502e765e9272d6af","after":"2108359a51b484f462511426257b6421932c9311","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-20T10:12:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Continuation from the previous commit.\n\nCommitter: Bojan Niceno \n\nOn branch bojan_gpu_development\n\nmodified: Documentation/Syntax/.vim/syntax/fortran.vim\nmodified: Sources/Process_Gpu/Gpu_Mod/Field/Copy_To_Device.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Grid/Copy_To_Device.f90\nmodified: Sources/Process_Gpu/Gpu_Pointers_Mod.f90\nmodified: Sources/Process_Gpu/Process_Mod/Correct_Velocity.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_Pressure_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_System_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Initialize_Variables.f90\nmodified: Sources/Process_Gpu/Process_Mod/Insert_Volume_Source_For_Pressure.f90\nmodified: Sources/Process_Gpu/Sparse_Mod/Create_Sparse_Con.f90","shortMessageHtmlLink":"Continuation from the previous commit."}},{"before":"0389e1a9dc123c624c532cc8543b92ae24767f8a","after":"98b63ecfbc7f69bf41c1f6a7502e765e9272d6af","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-20T06:14:27.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"This is an unstable commit, WIP sort of thing.\n\nI finally realized what seems to be the only way to convince\nNvidia Fortran compiler that certain data is on the device.\n\nIf, during the compilation you see that compiler is telling you:\n\n\"Generating implicit copyin(flow%u%n(:),...) [if not already present]\"\n\nit means that compiler doesn't know if Flow % u % n is on the device\n(although you know you coppied it there yourself) and will create a\n\"copyin\" clause before the loop, which WILL cause data to be coppied\nagain to the device. This situation is detremental for two reasons.\nFirst of all the program is gradually getting slower and slower since\nyou are losing time on copying and, to make matters even worse, copying\nthe datas which IS already on the device.\n\nThe workaround is similar to what I had a couple of weeks back: you\nshould introduce pointers to simple (Fortran's basic) data structure\nin your object. Thus, for example:\n\n grid_xc(:) => Grid % xc\n grid_cells_f(:) => Grid % cells_f\n flow_u_n(:) => Flow % u % n\n\nEt cetera, et cetera, you get the point. These pointers are needed\nalso for the data defined and manipulated in same module. So for\nexample, Module_Field (always creating object Flow) won't be able\nto recognize that Flow % u % n or Flow % density is already on the\ndevice - so silly is that.\n\nAnyhow, this commit marks a detour from the old approach to GPU\ncomputing with OpenACC, and the one which ensures the data on the\nGPU (device) is really used. The approach works in the following\nsteps:\n\n1. Identify the data which you want to transfer on the device. A\n part of this data is already visible in the module Gpu_Mod, which\n is currently responsible for CPU->GPU data management. If more\n (or some new) data has to be transferred to GPU and/or back, it\n should go into this module.\n\n2. For each field transferred to GPU should have its own pointer in\n the module Gpu_Pointers_Mod. At the time of this commit, it looks\n a bit like this:\n\n ! Access to Grid members\n integer, contiguous, pointer :: grid_faces_c(:,:)\n integer, contiguous, pointer :: grid_cells_n_cells(:)\n ...\n real, contiguous, pointer :: grid_dx(:), grid_dy(:), grid_dz(:)\n real, contiguous, pointer :: grid_sx(:), grid_sy(:), grid_sz(:)\n\n ! Access to Flow members\n real, contiguous, pointer :: flow_t_n(:), flow_t_o(:), flow_t_oo(:)\n real, contiguous, pointer :: flow_u_n(:), flow_u_o(:), flow_u_oo(:)\n real, contiguous, pointer :: flow_v_n(:), flow_v_o(:), flow_v_oo(:)\n ...\n\n3. These pointers to data transferred to GPUs are initializied inside\n the subroutines which transfer data to GPUs. That is the best place\n to do it, becase it is much easier to have them synchronized that\n way. For instance, Gpu_Mod/Field/Copy_To_Device.f90 looks like this:\n\n call Gpu % Vector_Real_Copy_To_Device(Flow % pp % n)\n call Gpu % Vector_Real_Copy_To_Device(Flow % p % n)\n flow_pp_n => Flow % pp % n\n flow_p_n => Flow % p % n\n call Gpu % Vector_Real_Copy_To_Device(Flow % u % n)\n call Gpu % Vector_Real_Copy_To_Device(Flow % v % n)\n call Gpu % Vector_Real_Copy_To_Device(Flow % w % n)\n call Gpu % Vector_Real_Copy_To_Device(Flow % u % o)\n call Gpu % Vector_Real_Copy_To_Device(Flow % v % o)\n call Gpu % Vector_Real_Copy_To_Device(Flow % w % o)\n flow_u_n => Flow % u % n\n flow_u_o => Flow % u % o\n flow_v_n => Flow % v % n\n flow_v_o => Flow % v % o\n flow_w_n => Flow % w % n\n flow_w_o => Flow % w % o\n if(Flow % u % td_scheme .eq. PARABOLIC) then\n call Gpu % Vector_Real_Copy_To_Device(Flow % u % oo)\n call Gpu % Vector_Real_Copy_To_Device(Flow % v % oo)\n call Gpu % Vector_Real_Copy_To_Device(Flow % w % oo)\n flow_u_oo => Flow % u % oo\n flow_v_oo => Flow % v % oo\n flow_w_oo => Flow % w % oo\n end if\n\n You see that pointers are associated right after transferring the data,\n before compiler loses track of them. Since the data from Gpu_Pointers_Mod\n are practically global, the compiler will know in all parts of the code\n to which section of the GPU memory they are pointing. To be more precise,\n for the compiler the association between the CPU and GPU memory will\n always be preserved.\n\n4. Finally, you have to use these global pointers. For example, what looked\n\n !$acc parallel loop\n do c1 = Cells_In_Domain()\n b_tmp = 0.0\n\n !$acc loop seq\n do i_cel = 1, Grid % cells_n_cells(c1)\n c2 = Grid % cells_c(i_cel, c1)\n s = Grid % cells_f(i_cel, c1)\n\n before, will now be:\n\n !$acc parallel loop &\n !$acc present(grid_cells_n_cells, grid_cells_c, grid_cells_f, &\n !$acc si, dxi, &\n !$acc flow_t_n)\n do c1 = Cells_In_Domain()\n b_tmp = 0.0\n\n !$acc loop seq\n do i_cel = 1, grid_cells_n_cells(c1)\n c2 = grid_cells_c(i_cel, c1)\n s = grid_cells_f(i_cel, c1)\n\n All data structures which are used on the GPU are used through their\n pointers, AND (VERY IMPORTANT) there is a clause \"present\" before the\n loop. This clause tells compiler NOT TO copy the data to the GPU\n because you KNOW it is alrady there, and it WILL cause the program to\n CRASH if you fail to ensure it is really there.\n\n Hence, the statement \"present\" ensures we are doing things right with\n the OpenACC programming for the GPUs.\n\nFinal note: Although a version of the Work_Mod has been defined for the\nGPUs, at this commit it doesn't follow the above principle and its use\nwill gradually make the program slower and slower.\n\nOn branch bojan_gpu_development\n\nnew file: Sources/Process_Gpu/Gpu_Pointers_Mod.f90\nmodified: Documentation/Syntax/.vim/syntax/fortran.vim\nmodified: Sources/Process_Gpu/Field_Mod.f90\nmodified: Sources/Process_Gpu/Field_Mod/Core/Create_Field.f90\nmodified: Sources/Process_Gpu/Field_Mod/Gradients/Grad_Component.f90\nmodified: Sources/Process_Gpu/Field_Mod/Gradients/Grad_Pressure.f90\nmodified: Sources/Process_Gpu/Field_Mod/Utilities/Buoyancy_Forces.f90\nmodified: Sources/Process_Gpu/Field_Mod/Utilities/Calculate_Bulk_Velocities.f90\nmodified: Sources/Process_Gpu/Field_Mod/Utilities/Calculate_Shear_And_Vorticity.f90\nmodified: Sources/Process_Gpu/Field_Mod/Utilities/Volume_Average.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Field/Copy_To_Device.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Field/Destroy_On_Device.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Field/Update_Host.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Grid/Copy_To_Device.f90\nnew file: Sources/Process_Gpu/Gpu_Mod/Work/Create_On_Device.f90\nnew file: Sources/Process_Gpu/Gpu_Mod/Work/Destroy_On_Device.f90\nmodified: Sources/Process_Gpu/Linalg_Mod/Mat_X_Vec_Acc.f90\nmodified: Sources/Process_Gpu/Linalg_Mod/Sca_O_Dia_Acc.f90\nmodified: Sources/Process_Gpu/Linalg_Mod/Sys_Normalize_Acc.f90\nmodified: Sources/Process_Gpu/Linalg_Mod/Sys_Restore_Acc.f90\nmodified: Sources/Process_Gpu/Linalg_Mod/Vec_Copy_Acc.f90\nmodified: Sources/Process_Gpu/Linalg_Mod/Vec_D_Vec_Acc.f90\nmodified: Sources/Process_Gpu/Linalg_Mod/Vec_M_Vec_X_Vec_Acc.f90\nmodified: Sources/Process_Gpu/Linalg_Mod/Vec_P_Sca_X_Vec_Acc.f90\nmodified: Sources/Process_Gpu/Linalg_Mod/Vec_P_Vec_X_Vec_Acc.f90\nmodified: Sources/Process_Gpu/Linalg_Mod/Vec_X_Vec_Acc.f90\nmodified: Sources/Process_Gpu/Process_Mod/Add_Advection_Term.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Energy.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Momentum.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Pressure.f90\nmodified: Sources/Process_Gpu/Process_Mod/Correct_Velocity.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_Pressure_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Insert_Energy_Bc.f90\nmodified: Sources/Process_Gpu/Process_Mod/Insert_Momentum_Bc.f90\nmodified: Sources/Process_Gpu/Process_Mod/Insert_Volume_Source_For_Pressure.f90\nmodified: Sources/Process_Gpu/Process_Mod/Update_Boundary_Values.f90\nmodified: Sources/Process_Gpu/Test_001.f90\nmodified: Sources/Process_Gpu/Test_004.f90\nmodified: Sources/Process_Gpu/Test_007.f90\nmodified: Sources/Process_Gpu/Test_008.f90\nmodified: Sources/Process_Gpu/Turb_Mod/Create_Turb.f90\nmodified: Sources/Process_Gpu/makefile\nmodified: Sources/Shared/Browse.h90","shortMessageHtmlLink":"This is an unstable commit, WIP sort of thing."}},{"before":"f8a04db6f72fee3b546ec2f57b48860cf3650388","after":"0389e1a9dc123c624c532cc8543b92ae24767f8a","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-19T12:44:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Renamed variable \"work\" to \"temp\"\n\nThis was to avoid collision with singleton object Work!\n\nOn branch bojan_gpu_development\n\nmodified: Process_Gpu/Field_Mod.f90\nmodified: Process_Gpu/Field_Mod/Core/Create_Field.f90\nmodified: Process_Gpu/Field_Mod/Utilities/Buoyancy_Forces.f90\nmodified: Process_Gpu/Gpu_Mod/Field/Copy_To_Device.f90\nmodified: Process_Gpu/Gpu_Mod/Field/Destroy_On_Device.f90\nmodified: Process_Gpu/Process_Mod/Compute_Momentum.f90\nmodified: Process_Gpu/Test_001.f90\nmodified: Process_Gpu/Test_004.f90","shortMessageHtmlLink":"Renamed variable \"work\" to \"temp\""}},{"before":"fd9efaea1aca37f7d5da89cae1566759e452296b","after":"f8a04db6f72fee3b546ec2f57b48860cf3650388","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-18T10:06:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Quite a few changes, although nothing substantial\n\nThe most important is the addition of additional argument\nsave_v_m in Process_Mod/Form_System_Matrix in GPU version.\nThat was actually a correction.\n\nSecond thing is introduction of macro Face_Value, which is\na temproary measure before I start sending interpolation\nfactors from the Grid object to GPUs.\n\nThe rest is little changes, renaming variables, nothing\nreally of paramount importance.\n\nOn branch bojan_gpu_development\n\nnew file: Sources/Shared/Macros.h90\nmodified: Documentation/Syntax/.vim/syntax/fortran.vim\nmodified: Sources/Process_Cpu/Field_Mod.f90\nmodified: Sources/Process_Cpu/Process_Mod.f90\nmodified: Sources/Process_Cpu/Surf_Mod.f90\nmodified: Sources/Process_Cpu/Swarm_Mod.f90\nmodified: Sources/Process_Gpu/Field_Mod.f90\nmodified: Sources/Process_Gpu/Field_Mod/Utilities/Buoyancy_Forces.f90\nmodified: Sources/Process_Gpu/Field_Mod/Utilities/Volume_Average.f90\nmodified: Sources/Process_Gpu/Gpu_Mod.f90\nmodified: Sources/Process_Gpu/Linalg_Mod/Sys_Restore_Acc.f90\nmodified: Sources/Process_Gpu/Main.f90\nmodified: Sources/Process_Gpu/Process_Mod.f90\nmodified: Sources/Process_Gpu/Process_Mod/Add_Advection_Term.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Momentum.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Pressure.f90\nmodified: Sources/Process_Gpu/Process_Mod/Correct_Velocity.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_Pressure_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_System_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Insert_Volume_Source_For_Pressure.f90\nmodified: Sources/Process_Gpu/Read_Controls_Mod.f90\nmodified: Sources/Process_Gpu/Sparse_Mod.f90\nmodified: Sources/Process_Gpu/Test_001.f90\nmodified: Sources/Process_Gpu/Test_004.f90\nmodified: Sources/Process_Gpu/Test_005.f90\nmodified: Sources/Process_Gpu/Test_006.f90\nmodified: Sources/Process_Gpu/Test_007.f90\nmodified: Sources/Process_Gpu/Test_008.f90\nmodified: Sources/Process_Gpu/Turb_Mod.f90\nmodified: Sources/Process_Gpu/control.010\nmodified: Sources/Shared/Browse.h90\nmodified: Sources/Shared/Control_Mod/Native/Use_One_Matrix.f90\nmodified: Sources/Shared/Grid_Mod.f90\nmodified: Tests/Les/Rayleigh_Benard_Convection_Ra_10e09/control","shortMessageHtmlLink":"Quite a few changes, although nothing substantial"}},{"before":"71821ba3cde019c6d3ea199f60ce6cae44b2902f","after":"fd9efaea1aca37f7d5da89cae1566759e452296b","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-18T03:07:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"NICE: Introduced linear system scaling in GPU part\n\nI tried to test it in different settings, sequential,\nparallel, GPU, with one matrix, with multiple matrices\nand all seems to have been working, but more tests will\nbe run in the future.\n\nThere is room for further optimizations. For example\nfor cases in which separate matrices are used for each\nvariable, scaling of the matrix should be done only\nonce (but r.h.s. should be scaled every time).\n\nOn the other hand, if only one matrix is used for all\nvariables, then it doesn't have to be restored at the\nend of linear solver.\n\nScaling factor (now called \"fn\" in this or that function)\ncould be stored together with Aval (as a data memeber of\nAval) and estimated only once.\n\nAll these thing could lead to potential savings in CPU/GPU\ntime, but let's leave them all for the future.\n\nOn branch bojan_gpu_development\n\nmodified: Process_Gpu/Linalg_Mod.f90\nnew file: Process_Gpu/Linalg_Mod/Sys_Normalize.f90\nnew file: Process_Gpu/Linalg_Mod/Sys_Normalize_Acc.f90\nnew file: Process_Gpu/Linalg_Mod/Sys_Restore.f90\nnew file: Process_Gpu/Linalg_Mod/Sys_Restore_Acc.f90\nmodified: Process_Gpu/Native_Mod/Cg_Avoids_If.f90\nmodified: Process_Gpu/Native_Mod/Cg_With_If.f90\nmodified: Process_Gpu/control.008","shortMessageHtmlLink":"NICE: Introduced linear system scaling in GPU part"}},{"before":"c1c4edeb9ab327d9344a1d6d988d5ef46c7a05c8","after":"71821ba3cde019c6d3ea199f60ce6cae44b2902f","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-17T10:58:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Further reduction of dependency on pointers.\n\nAs it was argued two commits prior to this (the exact number\nis deafd9573e7fbd7f3f18b21f45969717b20b34c1), using pointers\nto Field and/or Grid objects makes the GPU version quite ginger,\nunstable and unpredictable.\n\nTo make further developments easier for all, I tried to reduce\nthe use of pointers (to Grid and Field) as much as possible in\nthe GPU version. This commit is a step in that direction.\n\nOn branch bojan_gpu_development\n\nmodified: Field_Mod.f90\nmodified: Field_Mod/Core/Create_Field.f90\ndeleted: Field_Mod/Core/Update_Aliases.f90\nmodified: Field_Mod/Gradients/Calculate_Grad_Matrix.f90\nmodified: Field_Mod/Utilities/Adjust_P_Drops.f90\nmodified: Field_Mod/Utilities/Buoyancy_Forces.f90\nmodified: Field_Mod/Utilities/Calculate_Bulk_Velocities.f90\nmodified: Field_Mod/Utilities/Calculate_Shear_And_Vorticity.f90\nmodified: Field_Mod/Utilities/Volume_Average.f90\nmodified: Gpu_Mod/Grid/Copy_To_Device.f90\nmodified: Gpu_Mod/Grid/Destroy_On_Device.f90\nmodified: Gpu_Mod/Grid/Update_Host.f90\nmodified: Process_Mod/Compute_Energy.f90\nmodified: Process_Mod/Compute_Momentum.f90\nmodified: Process_Mod/Compute_Pressure.f90\nmodified: Process_Mod/Correct_Velocity.f90\nmodified: Process_Mod/Form_System_Matrix.f90\nmodified: Process_Mod/Initialize_Variables.f90\nmodified: Process_Mod/Insert_Energy_Bc.f90\nmodified: Process_Mod/Insert_Volume_Source_For_Pressure.f90\nmodified: Process_Mod/Update_Boundary_Values.f90\nmodified: Read_Controls_Mod/Boundary_Conditions.f90\nmodified: Read_Controls_Mod/Native_Solvers.f90\nmodified: Read_Controls_Mod/Numerical_Schemes.f90\nmodified: Read_Controls_Mod/Physical_Properties.f90\nmodified: Results_Mod/Main_Results.f90\nmodified: Results_Mod/Save_Vtu_Fields.f90\nmodified: Test_001.f90\nmodified: Test_004.f90\nmodified: Test_005.f90\nmodified: Test_006.f90\nmodified: Test_007.f90\nmodified: Test_008.f90\nmodified: Turb_Mod/Vis_T_Subgrid.f90\nmodified: control.010","shortMessageHtmlLink":"Further reduction of dependency on pointers."}},{"before":"deafd9573e7fbd7f3f18b21f45969717b20b34c1","after":"c1c4edeb9ab327d9344a1d6d988d5ef46c7a05c8","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-16T18:32:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"IMPORTANT BUG FIX IN MPI/GPU VERSION!!!\n\nOn branch bojan_gpu_development\n\nmodified: Process_Mod/Compute_Momentum.f90","shortMessageHtmlLink":"IMPORTANT BUG FIX IN MPI/GPU VERSION!!!"}},{"before":"9ec5057224c9209ea84a1cb5b9d9a34b163090db","after":"deafd9573e7fbd7f3f18b21f45969717b20b34c1","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-16T15:43:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"IMPORTANT STEP FOR GPU: Computes Smagorinsky Vis_T\n\nThis check-in represents the skeleton of the implementation\nof turbulence models. So far, it only computes turbulent\nviscosity with Smagorinsky model, but it still led to a number\nof other changes and implementations of the GPU version.\n\nFew things worth pointing out:\n\n 1. Modules and source files in the GPU branch should be as close\n as possible to the files in the CPU branch. It will never be\n possible to have 101 comparison, but the fewer the differences\n the less headache when porting models to GPU.\n\n 2. Only data (and functions) which are actually used in the GPU\n version should reside here. If data members are ported here\n for \"future convenience\", it will prove to be a future nightmare\n since it will be difficult to tell what works and what (still)\n does not work here. So, stick to the principle: define only\n what is really used.\n\n 3. When porting a new field (from Turb_Mod) from CPU version to\n the GPU version, it should:\n\n 3.1. Be introduced in Turb_Mod (by vimdiff copying from CPU\n version.\n 3.2. Be allocated, within the framework of the proper model,\n in Turb_Mod/Create_Turb\n 3.3. Be added in Gpu_Mod/Turb/Copy_To_Device.f90, as well as\n to Gpu_Mod/Turb/Destroy_On_Device.f90, and also to\n Gpu_Mod/Turb/Update_Host.f90. The last one is important\n to transfer data back to host before post-processing, i.e.\n saving .vtu files.\n 3.4. The update/calculation of the new variable should be added\n to Turb_Mod/Init_Turb.\n\n 4. LAST BUT CERTAINLY NOT THE LEAST: MAJORITY OF CRASHES ON THE\n GPU VERSION SEEM TO HAVE BEEN STEMMING FROM USAGE OF POINTERS\n TO GRID AND FLOW OBJECTS. TO MAKE IT PUZZLING EVEN MORE, THE\n APPROACH WITH POINTERS WOULD SOMETIMES WORK AND SOMETIMES NOT.\n TO PUT AN END TO IT, I REMOVED POINTERS TO GRID AND FLOW IN\n ALL PLACES I BELIEVE TO BE EXECUTING ON GPUS. I AM NOT SURE\n ALL ARE HANDLED YET, BUT THE BOTTOM LINE IS: DO NOT RELY ON\n POINTERS ON THE GPUS.\n\nOn branch bojan_gpu_development\n\nmodified: Process_Cpu/Process_Mod/Initialize_Variables.f90\nmodified: Process_Gpu/Field_Mod.f90\nnew file: Process_Gpu/Field_Mod/Utilities/Calculate_Shear_And_Vorticity.f90\nmodified: Process_Gpu/Gpu_Mod.f90\nmodified: Process_Gpu/Gpu_Mod/Grid/Copy_To_Device.f90\nmodified: Process_Gpu/Gpu_Mod/Grid/Destroy_On_Device.f90\nnew file: Process_Gpu/Gpu_Mod/Grid/Update_Host.f90\nnew file: Process_Gpu/Gpu_Mod/Turb/Copy_To_Device.f90\nnew file: Process_Gpu/Gpu_Mod/Turb/Destroy_On_Device.f90\nnew file: Process_Gpu/Gpu_Mod/Turb/Update_Host.f90\nmodified: Process_Gpu/Main.f90\nmodified: Process_Gpu/Process_Mod/Initialize_Variables.f90\nmodified: Process_Gpu/Read_Controls_Mod.f90\nmodified: Process_Gpu/Read_Controls_Mod/Physical_Models.f90\nmodified: Process_Gpu/Results_Mod.f90\nmodified: Process_Gpu/Results_Mod/Main_Results.f90\nmodified: Process_Gpu/Results_Mod/Save_Vtu_Fields.f90\nmodified: Process_Gpu/Test_007.f90\nmodified: Process_Gpu/Test_008.f90\nnew file: Process_Gpu/Turb_Mod.f90\nnew file: Process_Gpu/Turb_Mod/Const_Les.f90\nnew file: Process_Gpu/Turb_Mod/Create_Turb.f90\nnew file: Process_Gpu/Turb_Mod/Init_Turb.f90\nnew file: Process_Gpu/Turb_Mod/Main_Turb.f90\nnew file: Process_Gpu/Turb_Mod/Vis_T_Subgrid.f90\nmodified: Process_Gpu/control.010\nmodified: Process_Gpu/generate_010.scr\nmodified: Process_Gpu/makefile\nmodified: Process_Gpu/makefile_explicit_dependencies","shortMessageHtmlLink":"IMPORTANT STEP FOR GPU: Computes Smagorinsky Vis_T"}},{"before":"7ff8a2d40175969a3b5ab7114ad19e1565ecfe5b","after":"9ec5057224c9209ea84a1cb5b9d9a34b163090db","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-15T13:30:12.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"This is neat: one source file for solution of NS!\n\nOn branch bojan_gpu_development\n\nmodified: Documentation/Syntax/.vim/syntax/fortran.vim\nnew file: Sources/Process_Gpu/Face_Mod\nnew file: Sources/Process_Gpu/Face_Mod.f90\nmodified: Sources/Process_Gpu/Field_Mod.f90\nmodified: Sources/Process_Gpu/Field_Mod/Core/Create_Field.f90\nmodified: Sources/Process_Gpu/Field_Mod/Core/Update_Aliases.f90\nmodified: Sources/Process_Gpu/Field_Mod/Gradients/Grad_Variable.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Field/Copy_To_Device.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Field/Destroy_On_Device.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Grid/Copy_To_Device.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Native/Copy_To_Device.f90\nmodified: Sources/Process_Gpu/Main.f90\nnew file: Sources/Process_Gpu/Numerics_Mod.f90\nnew file: Sources/Process_Gpu/Numerics_Mod/Time_Integration_Scheme_Code.f90\nmodified: Sources/Process_Gpu/Process_Mod.f90\nmodified: Sources/Process_Gpu/Process_Mod/Add_Advection_Term.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Energy.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Momentum.f90\nmodified: Sources/Process_Gpu/Process_Mod/Correct_Velocity.f90\nnew file: Sources/Process_Gpu/Process_Mod/Initialize_Variables.f90\nmodified: Sources/Process_Gpu/Process_Mod/Insert_Volume_Source_For_Pressure.f90\nmodified: Sources/Process_Gpu/Read_Controls_Mod/Numerical_Schemes.f90\nmodified: Sources/Process_Gpu/Test_006.f90\nmodified: Sources/Process_Gpu/Test_007.f90\nmodified: Sources/Process_Gpu/Test_008.f90\ndeleted: Sources/Process_Gpu/Test_009.f90\ndeleted: Sources/Process_Gpu/Test_010.f90\nmodified: Sources/Process_Gpu/Var_Mod.f90\nmodified: Sources/Process_Gpu/Var_Mod/Create_Variable.f90\nmodified: Sources/Process_Gpu/control.008\nmodified: Sources/Process_Gpu/control.010\nmodified: Sources/Process_Gpu/makefile\nmodified: Sources/Process_Gpu/makefile_explicit_dependencies","shortMessageHtmlLink":"This is neat: one source file for solution of NS!"}},{"before":"a7481904521ddf8a015ab2128196199bb234b09d","after":"7ff8a2d40175969a3b5ab7114ad19e1565ecfe5b","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-14T13:42:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Implemented buoyancy force in the GPU version.\n\nOn branch bojan_gpu_development\n\nmodified: Process_Gpu/Field_Mod.f90\nmodified: Process_Gpu/Field_Mod/Core/Create_Field.f90\nnew file: Process_Gpu/Field_Mod/Utilities/Buoyancy_Forces.f90\nmodified: Process_Gpu/Native_Mod/Create_Native.f90\nmodified: Process_Gpu/Process_Mod/Add_Inertial_Term.f90\nmodified: Process_Gpu/Process_Mod/Compute_Energy.f90\nmodified: Process_Gpu/Process_Mod/Compute_Momentum.f90\nmodified: Process_Gpu/Process_Mod/Form_System_Matrix.f90\nmodified: Process_Gpu/Read_Controls_Mod/Physical_Models.f90\nmodified: Process_Gpu/Test_001.f90\nmodified: Process_Gpu/Test_004.f90\nmodified: Process_Gpu/Test_007.f90\nmodified: Process_Gpu/Test_008.f90\nmodified: Process_Gpu/Test_009.f90\nmodified: Process_Gpu/Test_010.f90\nmodified: Process_Gpu/control.010\nmodified: Process_Gpu/test_010_rb_conv.dom","shortMessageHtmlLink":"Implemented buoyancy force in the GPU version."}},{"before":"795306af7f85e71b75226d1f0e879400c6ca415c","after":"a7481904521ddf8a015ab2128196199bb234b09d","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-13T09:41:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"COOL: Implemented energy equation into GPU version\n\nOn branch bojan_gpu_development\n\nmodified: Process_Gpu/Field_Mod.f90\nmodified: Process_Gpu/Field_Mod/Core/Create_Field.f90\nmodified: Process_Gpu/Field_Mod/Core/Update_Aliases.f90\nmodified: Process_Gpu/Main.f90\nmodified: Process_Gpu/Process_Mod.f90\nnew file: Process_Gpu/Process_Mod/Compute_Energy.f90\nmodified: Process_Gpu/Process_Mod/Compute_Momentum.f90\nrenamed: Process_Gpu/Process_Mod/Form_Momentum_Matrix.f90 -> Process_Gpu/Process_Mod/Form_System_Matrix.f90\nnew file: Process_Gpu/Process_Mod/Insert_Energy_Bc.f90\nmodified: Process_Gpu/Read_Controls_Mod/Boundary_Conditions.f90\nmodified: Process_Gpu/Test_001.f90\nmodified: Process_Gpu/Test_004.f90\nnew file: Process_Gpu/Test_010.f90\nmodified: Process_Gpu/Var_Mod/Create_Variable.f90\nnew file: Process_Gpu/control.010\nnew file: Process_Gpu/generate_010.scr\nnew file: Process_Gpu/test_010_rb_conv.dom","shortMessageHtmlLink":"COOL: Implemented energy equation into GPU version"}},{"before":"acf70328d374abeeb2cf41202a5b624aa45b115c","after":"795306af7f85e71b75226d1f0e879400c6ca415c","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-06-12T14:03:59.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Further modification for the energy equation!\n\nOn branch bojan_gpu_development\n\nmodified: Process_Gpu/Process_Mod/Compute_Momentum.f90\nmodified: Process_Gpu/Process_Mod/Form_Momentum_Matrix.f90\nmodified: Process_Gpu/Test_001.f90\nmodified: Process_Gpu/Test_004.f90","shortMessageHtmlLink":"Further modification for the energy equation!"}},{"before":"ad0bf6eaccfc0e78380c7d19344a703f537fee80","after":"acf70328d374abeeb2cf41202a5b624aa45b115c","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-05-10T11:59:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Extended the comments in Save_Fluent function.\n\nOn branch bojan_gpu_development\n\nmodified: Convert_Mod/Save_Fluent.f90","shortMessageHtmlLink":"Extended the comments in Save_Fluent function."}},{"before":"6df65c3db167c73d182ce184f4f380236ed3b963","after":"ad0bf6eaccfc0e78380c7d19344a703f537fee80","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-05-09T13:03:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Cool, saves meshes in Fluent file format\n\nOn branch bojan_gpu_development\n\nmodified: Sources/Convert/Convert_Mod.f90\nnew file: Sources/Convert/Convert_Mod/Save_Fluent.f90\nmodified: Sources/Convert/Main_Con.f90","shortMessageHtmlLink":"Cool, saves meshes in Fluent file format"}},{"before":"ed3b1123e2bdfe4452f82e34108fd1a61602ab9c","after":"6df65c3db167c73d182ce184f4f380236ed3b963","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-03-24T15:29:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Added new procedure, it wasn't tested yet.\n\nOn branch bojan_gpu_development\n\nmodified: Field_Mod.f90\nnew file: Field_Mod/Gradients/Grad_Variable.f90","shortMessageHtmlLink":"Added new procedure, it wasn't tested yet."}},{"before":"0ae478f4aa47e5ea2aaf5d5ceb1c210303aaed40","after":"ed3b1123e2bdfe4452f82e34108fd1a61602ab9c","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-03-24T14:55:59.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Sets the Nat % use_one_matrix from control file\n\nIn addition, removed some functionality from gradients\ncalculations which were never used. Like, to be able\nto send external arrays for gradients. It was never\nused.\n\nOn branch bojan_gpu_development\n\nmodified: Documentation/Syntax/.vim/syntax/control.vim\nmodified: Documentation/all_control_keywords\nmodified: Sources/Process_Gpu/Field_Mod/Gradients/Grad_Pressure.f90\nmodified: Sources/Process_Gpu/Native_Mod.f90\nmodified: Sources/Process_Gpu/Read_Controls_Mod/Native_Solvers.f90\nmodified: Sources/Process_Gpu/Test_005.f90\nmodified: Sources/Process_Gpu/Test_008.f90\nmodified: Sources/Process_Gpu/control.008\nmodified: Sources/Shared/Control_Mod.f90\nnew file: Sources/Shared/Control_Mod/Native/Use_One_Matrix.f90","shortMessageHtmlLink":"Sets the Nat % use_one_matrix from control file"}},{"before":"b7d87c92d8c235b287cebfd6739f836a7e258d16","after":"0ae478f4aa47e5ea2aaf5d5ceb1c210303aaed40","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-03-24T12:59:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Computes and reports maximum CFL and Peclet number\n\nI still have no clue why are these routines derived in the way\nthey are, but they work. I tried an alternative derivation,\nbut it wasn't giving good numbers.\n\nOn branch bojan_gpu_development\n\nmodified: Documentation/Syntax/.vim/syntax/fortran.vim\nmodified: Sources/Process_Gpu/Process_Mod/Correct_Velocity.f90\nmodified: Sources/Process_Gpu/Test_007.f90\nmodified: Sources/Process_Gpu/Test_008.f90\nmodified: Sources/Process_Gpu/Test_009.f90\nmodified: Sources/Shared/Comm_Mod.f90\nnew file: Sources/Shared/Comm_Mod/Parallel/Global/Max_Real_Array.f90\nnew file: Sources/Shared/Comm_Mod/Parallel/Global/Max_Reals.f90\nnew file: Sources/Shared/Comm_Mod/Sequential/Global/Max_Real_Array.f90\nnew file: Sources/Shared/Comm_Mod/Sequential/Global/Max_Reals.f90","shortMessageHtmlLink":"Computes and reports maximum CFL and Peclet number"}},{"before":"ede7b8caeb92512f74424c05b328381430532aaf","after":"b7d87c92d8c235b287cebfd6739f836a7e258d16","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-03-23T18:47:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Instead of A and M, now use array of A's\n\nOnce that was in place, it was possible to switch between\ntwo options: using one matrix for all variables, or to have\none matrix for each variable.\n\nThe former option is memory conservative but it's a bit slower.\nThe latter is faster, but more memory hungry.\n\nOn branch bojan_gpu_development\n\nmodified: Sources/Process_Gpu/Native_Mod.f90\nmodified: Sources/Process_Gpu/Native_Mod/Create_Native.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Momentum.f90\nmodified: Sources/Process_Gpu/Process_Mod/Compute_Pressure.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_Momentum_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_Pressure_Matrix.f90\nmodified: Sources/Process_Gpu/Sparse_Mod.f90\nmodified: Sources/Process_Gpu/Test_001.f90\nmodified: Sources/Process_Gpu/Test_004.f90\nmodified: Sources/Process_Gpu/Test_007.f90\nmodified: Sources/Process_Gpu/Test_008.f90\nmodified: Sources/Process_Gpu/Test_009.f90","shortMessageHtmlLink":"Instead of A and M, now use array of A's"}},{"before":"732e304a0571071b1a3b8e03a2f1f31b6f90e965","after":"ede7b8caeb92512f74424c05b328381430532aaf","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-03-23T13:18:07.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Little steps forward with this check-in.\n\nMost noteably:\n\n1. Moved v_m from Sparse_Val to Field. If we are to store many\n matrices during a simulation, not each an every one of them\n will need v_m, only the momentum equations.\n\n2. Removed refernces to Prec_Form procedure because it is not used\n anymore. See one of the previous check ins, not it is one simple\n call to a Linalg function.\n\n3. Physical properties, viscosity and density up to now, are also\n sent to the device. This should speed the things up a little bit.\n\n4. In one of the cases, can't recall which one exactly, \"m\" was\n replaced with \"nc\", because that's what it is: number of cells.\n\nOn branch bojan_gpu_development\n\nmodified: Sources/Process_Gpu/Field_Mod.f90\nmodified: Sources/Process_Gpu/Field_Mod/Core/Create_Field.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Sparse_Val/Copy_To_Device.f90\nmodified: Sources/Process_Gpu/Gpu_Mod/Sparse_Val/Destroy_On_Device.f90\nmodified: Sources/Process_Gpu/Native_Mod.f90\nmodified: Sources/Process_Gpu/Process_Mod/Correct_Velocity.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_Momentum_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_Pressure_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Insert_Volume_Source_For_Pressure.f90\nmodified: Sources/Process_Gpu/Sparse_Mod.f90\nmodified: Sources/Process_Gpu/Sparse_Mod/Create_Sparse_Val.f90\nmodified: Sources/Process_Gpu/Test_004.f90\nmodified: Sources/Process_Gpu/Test_007.f90\nmodified: Sources/Process_Gpu/Test_008.f90\nmodified: Sources/Process_Gpu/Test_009.f90\nmodified: Sources/Process_Gpu/control.004","shortMessageHtmlLink":"Little steps forward with this check-in."}},{"before":"91cb3e4ee7af669f7fb11c586a66de7e8114f838","after":"732e304a0571071b1a3b8e03a2f1f31b6f90e965","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-03-20T20:20:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Updates the pressure field in Compute_Pressure\n\nBefore it was in Correct_Velocity which, although tecnically\ncorrect, doesn't make a lot of sense. You update the pressure\nwhen you compute pressure - as simple as that.\n\nOn branch bojan_gpu_development\n\nmodified: Process_Mod/Compute_Pressure.f90\nmodified: Process_Mod/Correct_Velocity.f90","shortMessageHtmlLink":"Updates the pressure field in Compute_Pressure"}},{"before":"36f85b8b6f3f0fca661d32c7fd168fdb4737d08e","after":"91cb3e4ee7af669f7fb11c586a66de7e8114f838","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-03-20T18:51:21.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"First working case with inflow/outflow in GPU.\n\nImplemented necessary changes to run a simulation with inflow\nand outflows. Only plain outflow (vanishing derivative) is\nsupported up to now.\n\nI would not bet that the case works flawlessly, but it is a\nstep forward. It would be good to compare the results with\nthe same case with CPU version, but also with convective\noutflow, PISO algorithm, and all beautiful things CPU version\nhas\n\nOn branch bojan_gpu_development\n\nmodified: Sources/Process_Gpu/Process_Mod.f90\nmodified: Sources/Process_Gpu/Process_Mod/Add_Advection_Term.f90\nmodified: Sources/Process_Gpu/Process_Mod/Correct_Velocity.f90\nmodified: Sources/Process_Gpu/Process_Mod/Form_Diffusion_Matrix.f90\nmodified: Sources/Process_Gpu/Process_Mod/Insert_Diffusion_Bc.f90\nmodified: Sources/Process_Gpu/Process_Mod/Insert_Volume_Source_For_Pressure.f90\nnew file: Sources/Process_Gpu/Process_Mod/Update_Boundary_Values.f90\nmodified: Sources/Process_Gpu/control.009\nnew file: Sources/Process_Gpu/profile.dat","shortMessageHtmlLink":"First working case with inflow/outflow in GPU."}},{"before":"b89f65f1d476451c9a884f6d3115d11d9664798b","after":"36f85b8b6f3f0fca661d32c7fd168fdb4737d08e","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-03-18T04:19:44.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Added under-relaxation to the Process_Gpu\n\nWith this addition, matrix of cubes seems to work\nvery neatly with MPI.\n\nOn branch bojan_gpu_development\n\nmodified: Process_Gpu/Field_Mod.f90\nmodified: Process_Gpu/Field_Mod/Gradients/Grad_Pressure.f90\nmodified: Process_Gpu/Process_Mod/Add_Advection_Term.f90\nmodified: Process_Gpu/Process_Mod/Compute_Momentum.f90\nmodified: Process_Gpu/Process_Mod/Compute_Pressure.f90\nmodified: Process_Gpu/Process_Mod/Correct_Velocity.f90\nmodified: Process_Gpu/Process_Mod/Form_Diffusion_Matrix.f90\nmodified: Process_Gpu/Read_Controls_Mod.f90\nnew file: Process_Gpu/Read_Controls_Mod/Numerical_Schemes.f90\nmodified: Process_Gpu/Test_007.f90\nmodified: Process_Gpu/Test_008.f90\nmodified: Process_Gpu/Var_Mod.f90\nmodified: Process_Gpu/control.007\nmodified: Process_Gpu/control.008\nnew file: Process_Gpu/convert_008.scr","shortMessageHtmlLink":"Added under-relaxation to the Process_Gpu"}},{"before":"28857638693fa77a5e68b360d095d7b1ef16379b","after":"cdccd45cce1d67b359b5e0c6d1aa7a603a5f5c9e","ref":"refs/heads/Mohamed_Splash","pushedAt":"2024-03-17T22:17:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mohamedalysayed","name":"Mohamed Aly SAYED","path":"/mohamedalysayed","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11530653?s=80&v=4"},"commit":{"message":"Resizing the window - no big deal!","shortMessageHtmlLink":"Resizing the window - no big deal!"}},{"before":"9cdf437c2c04bf8b442a403b6e9b5bb519c49af9","after":"b89f65f1d476451c9a884f6d3115d11d9664798b","ref":"refs/heads/bojan_gpu_development","pushedAt":"2024-03-17T11:45:34.000Z","pushType":"push","commitsCount":34,"pusher":{"login":"Niceno","name":"Bojan Niceno","path":"/Niceno","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26437580?s=80&v=4"},"commit":{"message":"Three new supporting files for new test case\n\nOn branch bojan_gpu_development\n\nnew file: control.008\nnew file: generate_006.scr\nnew file: test_008_disc.geo","shortMessageHtmlLink":"Three new supporting files for new test case"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEp3TmOwA","startCursor":null,"endCursor":null}},"title":"Activity ยท DelNov/T-Flows"}