Skip to content
Snippets Groups Projects
  1. May 25, 2024
  2. Nov 27, 2023
  3. Nov 13, 2023
  4. Jun 02, 2023
  5. Jun 01, 2023
  6. May 11, 2023
  7. May 05, 2023
  8. Feb 22, 2023
  9. Feb 03, 2023
  10. Feb 01, 2023
  11. Jan 27, 2023
  12. Dec 28, 2022
  13. Jul 19, 2022
  14. Oct 27, 2020
  15. Oct 26, 2020
  16. Oct 15, 2020
  17. Sep 27, 2020
  18. May 01, 2020
  19. Apr 29, 2020
  20. Feb 29, 2020
  21. Jan 28, 2020
  22. Jan 23, 2020
  23. Jan 22, 2020
  24. Jan 07, 2020
  25. Jan 03, 2020
  26. Dec 31, 2019
  27. Dec 30, 2019
  28. Dec 10, 2019
  29. Nov 27, 2019
  30. Nov 26, 2019
  31. Aug 21, 2019
    • J. Davison de St. Germain's avatar
      Based on feedback from Dave M and Chris C, made the following updates: · a05c2422
      J. Davison de St. Germain authored
      - Returned to using a string name (instead of enum) for the factory creation of the scheme.
      - Moved the scheme factory registrations out of the TimeIntegrationScheme.cpp file
          and into the separate SchemeInitializor.cpp file.  This was a compromise
          from creating a separate .cpp file for every specific scheme file to do the registration.
      - Grouped the related Time Integrators into shared .h files.  (For example, all
          Runge Kutta type Time Integrators are now defined in the RungeKuttaTimeIntegrationSchemes.h
          file.
      
      As this is mostly a "cosmetic" update, all Ctests (that were passing) are still passing.
      The ones that are not passing are related to the difference in implementations of time
      integrators between the wrappers (that are being replaced in this branch) and the time
      integrator demo.  See details as specified in my previous commit:
      
         commit e66dd8da
         Author: J. Davison de St. Germain <dav@sci.utah.edu>
         Date:   Sun May 19 22:01:22 2019 -0600
      
      This still needs to be addressed and I believe is on Chris' to-do list.
      a05c2422
  32. May 20, 2019
    • J. Davison de St. Germain's avatar
      This is round 2 of the Time Integration refactoring. I like this arrangement... · e66dd8da
      J. Davison de St. Germain authored
      This is round 2 of the Time Integration refactoring.  I like this arrangement better.  I have removed
      from the "Integrators" (that I added in the previous commit) and just refer to them as schemes now.
      A scheme (also called a "master scheme") can have a number of phases (or sub-schemes).  Each sub-scheme
      uses a "scheme" to set up the data for that phase.
      
      I have put the code that creates the (full/master) scheme in the corresponding file, eg:
      
      AdamsBashforthOrder2TimeIntegrationScheme.h  (see the constructor)
      
      Additionally, the code that sets the data for the sub-scheme/phase that corresponds to
      the master scheme is also in the same file (see the SetupSchemeData() method).
      The data for each phase of the scheme is contained in the TimeIntegrationSchemeData object.
      
      This code refactoring removes the giant switch statement that was used to initialize
      the schemes.  It also removes the use the Memory Manager that was returning shared
      pointers to each sub-scheme - which, while it worked, would not have allowed multiple
      schemes to be used in the same executable.
      
      I have also moved the TimeIntegrationSolution object into its own file.
      
      --------------
      
      Note, to create an integration scheme, do something like the following (using the factory):
      
          LibUtilities::TimeIntegrationSchemeSharedPtr tiScheme;
      
          TimeIntegrationSchemeFactory & factory = LibUtilities::GetTimeIntegrationSchemeFactory();
      
          tiScheme = factory.CreateInstance( "IMEXOrder1" );
      
      Note, as I go to commit this, it occurs to me that instead of passing a string to CreateInstance(),
      we should be passing the enum type.  I'll update this soon.
      
      --------------
      
      There are currently 3 failing tests (of 459):
      
      	275 - IncNavierStokesSolver_Prism_channel_varP (Failed)
      	326 - LibUtilities_TimeIntegrationDemoIMEXOrder2 (Failed)
      	341 - StdRegions_StdProject2D_Quad_Mod_P6_Q7 (Failed)
      
      Note, "326 - LibUtilities_TimeIntegrationDemoIMEXOrder2" is failing because IMEXOrder2 is done
      differently between the TimeIntegration/ directory and the original TimeIntegrationDemo code
      (which "re-implemented" the creation of the schemes).  (IMEXOrder2 should use IMEXdirk_2_3_2 as
      the 1st phase, but it is currently set to IMEXOrder1 instead.  Once a definitive determination
      on this is made, this needs to be updated one way or the other.)
      
      It is unclear to me why the other 2 are failing (and the errors are very minuscule).  For example:
      
      275:   Expected: 0 +/- 1e-12
      275:   Result:   1.27742e-12
      
      Before this branch gets merged in, we need to track down the reason for these differences.
      e66dd8da
Loading