Difference between revisions of "PHASTA/Wish List"

From PHASTA Wiki
Jump to: navigation, search
Line 28: Line 28:
 
** The compressible and incompressible libraries will (probably) need to be documented as [https://www.doxygen.nl/manual/external.html "external libraries"] (config options [https://www.doxygen.nl/manual/config.html#config_external here])
 
** The compressible and incompressible libraries will (probably) need to be documented as [https://www.doxygen.nl/manual/external.html "external libraries"] (config options [https://www.doxygen.nl/manual/config.html#config_external here])
 
*Review code for use of <code>nshl</code> vs <code>nenl</code>.   
 
*Review code for use of <code>nshl</code> vs <code>nenl</code>.   
**Things having to do with nodes (<code>xl</code>) or linear fields (<code>dwallocalized</code>) are nodal fields and are size <code>nenl</code>.
+
**Things having to do with nodes (<code>xl</code>) or linear fields (<code>dwallocalized</code>) are nodal fields and are size <code>nenl</code>.
** Other fields that would be interpolated by all of the shape functions on an element (e.g., <code>yl</code>, <code>acl</code>, ) or residuals (<code>rl</code>) are of size <code>nshl</code>.  
+
** Other fields that would be interpolated by all of the shape functions on an element (e.g., <code>yl</code>, <code>acl</code>, ) or residuals (<code>rl</code>) are of size <code>nshl</code>.
**Similarly, at the global level nodal/linear fields are sized <code>numnp</code> while things that could be higher order are <code>nshg</code>.
+
**Similarly, at the global level nodal/linear fields are sized <code>numnp</code> while things that could be higher order are <code>nshg</code>.
 
+
* Modern <code>solver.inp</code> file format
 +
** json, yaml, toml
 +
** Requirements are the ability to comment/uncomment data and have flexible inputs (boolean, string, array, path, etc.)
 +
** Code should also have a way of checking for valid inputs
 +
* Have input file checking utility
 +
** Something like <code>phasta --check-inputs</code> to run the input file reader and check if there are any errors in the file
  
 
== NSpre ==
 
== NSpre ==
  
*Error checking to make sure that the size of the mesh contained in geom.sms is equal to the size of the mesh associated with restart.*.0.  
+
*Error checking to make sure that the size of the mesh contained in <code>geom.sms</code> is equal to the size of the mesh associated with <code>restart.*.0</code>.  
 
*Ability to interpolate directly from a partitioned mesh.
 
*Ability to interpolate directly from a partitioned mesh.
  
 
[[Category:PHASTA]]
 
[[Category:PHASTA]]

Revision as of 11:13, 17 August 2020

This page is intended to be a log of useful features to add to various tools such as Phasta and NSpre. Odds are that no one will ever actually implement anything listed on this page, but if you somehow find yourself with a little extra time, it's always here.

Phasta

  • Standardize the Sync IO library to work as is across Phasta and Paraview.
  • Get rid of the need to know a priori how many fields will need to be written when using Sync IO
  • Write interface to allow Phasta to read and write both Sync IO and Posix
  • Fix bug in Sync IO to allow serial IO.
  • Modify common.h (and the rest of the code) to allow implicit none.
  • Convert all Fortran to a separate language (such as C or Julia)
  • Cross Platform (Hey, I can dream)
  • Add testing (unit and regression)
  • Convert all code to use blk%_ instead of it's equivalents (npro, etc.)
  • Split generation of d2wall from SA code into a separate module
  • Make timestep increaseable through rerun-check
    • Replace iterative do loop with while loop
  • Implement style guide/formatter
    • findent for formatting and converting fixed-form to free-form (also actively maintained!)
    • fprettify is a Python derived version
  • Convert to free-form Fortran
    • Most tools these days support >=F90 format, also generally just an easier format to use
    • findent will convert fixed-form to free-form (also actively maintained!)
    • Several tools listed in this webpage
  • Documentation via doxygen
    • See jrwrigh/volumetric-stg-DoxygenTest branch for example. Open docs/index.html in a browser to see resulting code.
    • The compressible and incompressible libraries will (probably) need to be documented as "external libraries" (config options here)
  • Review code for use of nshl vs nenl.
    • Things having to do with nodes (xl) or linear fields (dwallocalized) are nodal fields and are size nenl.
    • Other fields that would be interpolated by all of the shape functions on an element (e.g., yl, acl, ) or residuals (rl) are of size nshl.
    • Similarly, at the global level nodal/linear fields are sized numnp while things that could be higher order are nshg.
  • Modern solver.inp file format
    • json, yaml, toml
    • Requirements are the ability to comment/uncomment data and have flexible inputs (boolean, string, array, path, etc.)
    • Code should also have a way of checking for valid inputs
  • Have input file checking utility
    • Something like phasta --check-inputs to run the input file reader and check if there are any errors in the file

NSpre

  • Error checking to make sure that the size of the mesh contained in geom.sms is equal to the size of the mesh associated with restart.*.0.
  • Ability to interpolate directly from a partitioned mesh.