C++ Code Organization

From Flooxs
Revision as of 12:51, 9 October 2023 by Thomas (talk | contribs) (→‎Source Structure)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Top Level Directory Structure

  • arch - make file architectures
  • bin - support scripts for compilation
  • doc - various forms of documentation, such as doxygen and man file
  • docker - docker files for building FLOOXS on various platforms (how we test on platforms we don't run)
  • Params - simulation parameter files
  • src - source code
  • TclLib - TCL front end support functions, such as models
  • Test - Test simulation files accumulated over many years

Source Structure

  • BasePDE
    • engine for alagator scripting
    • builds and solves partial differential equations
  • db
    • specific sqlite3 version and interface for flooxs
  • device
    • code specific to the device command and FLOODS solutions
  • diffuse
    • All code pertaining specifically to diffusion
    • The newton solver is also located here
  • doalldirs
    • script that is used to build the templates in all directories
  • etch
    • Old etching code
    • Still contains the OctTree, mask and machine commands
  • field
    • Finite element specific code,
    • Contains the field server that controls all mesh properties
    • Where all elements, meshes, and data fields are defined
  • flooxs.cc
    • where TCL commands are defined
  • FLOOXS.models
    • Master tcl startup model file
  • front
    • Tcl front end user commands
  • help.cc
    • old help menu command
  • implant
    • contains implant command code
  • include
    • helpful include files for use in the code
  • LevelSet
    • All code that pertains to level set geometry formation and meshing
  • mater
    • material specific code
  • math
    • vector and matrix specific functions
  • main.cc
    • contains program main function
  • param.tcl
    • a file that contains pdbSet commands
  • plot
    • old plot directory, still contains some useful functions used elsewhere
  • plplot
    • new plotting directory, contains plplot bindings
  • plplot.tcl
    • A blank file needed for plplot
  • pltcltk
    • directory for testing plplot
  • template
    • template files for flooxs Seq and List objects
  • test
    • contains simple tests that can be run when building flooxs (make test)