spiceSharpFluidFlowSolver 4 - Code Exploration: how spicesharp code that solves matrices works
------------------ Useful Links ------------------------------------
SpiceSharp
https://spicesharp.github.io/SpiceSharp/
Nonlinear Solvers using Modified Nodal Analysis
https://spicesharp.github.io/SpiceSharp/articles/custom_components/modified_nodal_analysis.html
SpiceSharpFluidFlowSolver
https://github.com/theodoreOnzGit/spiceSharpFluidFlowSolver
Where we can see solvers being used (SparseSolverTests.cs):
https://github.com/SpiceSharp/SpiceSharp/blob/dace7bddaadf7ac22bc32abd2dc61b4d28afb13d/SpiceSharpTest/Algebra/SparseSolverTests.cs
IPivotingSolver Interface
https://github.com/SpiceSharp/SpiceSharp/blob/dace7bddaadf7ac22bc32abd2dc61b4d28afb13d/SpiceSharp/Algebra/Solve/IPivotingSolver.cs#L53
Sparse Real Solver Class (inherits SparseLUSolver)
https://github.com/SpiceSharp/SpiceSharp/blob/dace7bddaadf7ac22bc32abd2dc61b4d28afb13d/SpiceSharp/Algebra/Solve/LU/SparseSolver/SparseRealSolver.cs#L10
Sparse LU Solver Class (inherits PivotingSolver)
https://github.com/SpiceSharp/SpiceSharp/blob/dace7bddaadf7ac22bc32abd2dc61b4d28afb13d/SpiceSharp/Algebra/Solve/LU/SparseSolver/SparseLUSolver.cs
Pivoting Solver Class
https://github.com/SpiceSharp/SpiceSharp/blob/dace7bddaadf7ac22bc32abd2dc61b4d28afb13d/SpiceSharp/Algebra/Solve/PivotingSolver.cs
To create A solution vector, we instantiate an empty vector using a denseVector class:
https://github.com/SpiceSharp/SpiceSharp/blob/master/SpiceSharp/Algebra/Vector/DenseVector/DenseVector.cs
we then feed the object into the solver.Solve() method
------------------ Video Sections --------------------------------
Chapters:
0:00 What system of equations are we solving?
10:28 You can open links in my github LaTeX document
13:09 How to define the Ymatrix and RHS vector within the solver class
15:54 SparseRealSolver inherits from SparseLUSolver, which in turn inherits from PivotingSolver
17:56 abstract class (applies to PivotingSolver)
18:25 Matrix and Vectors are properties of the PivotingSolver class
18:53 GetElement method gets or sets elements within a Ymatrix or RHS vector depending on the input or overload used
23:41 Setting matrices and vectors in the solver using for loops
29:03 OrderAndFactor (brief exploration)
32:30 Creating a vector for the solution
33:00 solver.Solve(IMatrix solution)
33:31 Overview of steps needed to use the matrix solver
---------------------[Playlists and Relevant Github Repositories]----------------------------------------------
Fluid Mechanics and Git Repos:
https://www.youtube.com/playlist?list=PLhPfNw4V4_YSmdAXc6J0XOSQ1b27qsMGt
https://github.com/theodoreOnzGit/OpenFoam_heatTrf_YouTube
Petroleum Downstream Crash Course Playlist:
https://www.youtube.com/playlist?list=PLhPfNw4V4_YQ13CnhacUqEVk-tZlU4ISE
OpenFOAM for Windows 10 Beginner Playlist and some Git Repos
https://www.youtube.com/playlist?list=PLhPfNw4V4_YRhBU4IqSaToQ8_X543YQsZ
https://github.com/theodoreOnzGit/laminar_BL_OpenFOAM
OpenFOAM Intermediate Playlist and some Git Repos
https://www.youtube.com/playlist?list=PLhPfNw4V4_YSpWX6mSOlwWEOKVa6i_iuE
https://github.com/theodoreOnzGit/thin_pipeflow_snappyHexMesh
OpenFOAM Heat Transfer Playlist and GitHub Repo
https://www.youtube.com/playlist?list=PLhPfNw4V4_YR2Qa3Q9-AzNSF2J9Dc4_qT
https://github.com/theodoreOnzGit/OpenFoam_heatTrf_YouTube
Convection Boundary Layer and git Repos:
https://www.youtube.com/playlist?list=PLhPfNw4V4_YR9pRBpp101Mkuds49vjQ63
https://github.com/theodoreOnzGit/heatTransferTheory_YouTube
Turbulence Modelling Playlist
https://www.youtube.com/watch?v=F_Rxv9uMM3g&list=PLhPfNw4V4_YSnbYkJIBQ1kRN06Mmxe2Be
https://github.com/theodoreOnzGit/turbulenceModelling
OpenFOAM C++
https://github.com/theodoreOnzGit/C-_YouTube_OpenFoam
https://www.youtube.com/playlist?list=PLhPfNw4V4_YT9OgqS7ZPlot_Ucxzc6pQJ
OpenFOAM Bash
https://github.com/theodoreOnzGit/Bash_OpenFOAM_YouTube
https://www.youtube.com/playlist?list=PLhPfNw4V4_YT5zjBhfj5Hj4r4D5eXilcU
Basic Samba
https://www.youtube.com/playlist?list=PLhPfNw4V4_YQuWJLufBUpNplitReZX0fB
https://github.com/theodoreOnzGit/sambaVideos
Manjaro Tips and Tricks
https://www.youtube.com/playlist?list=PLhPfNw4V4_YQuyXBfJxAvzHJTl0UiWx3h
lammps and Discrete Element Modelling (DEM)
https://www.youtube.com/playlist?list=PLhPfNw4V4_YTdRlnLiu2OUXeTf5ZNVQ9E
playing with dotnet core
https://www.youtube.com/playlist?list=PLhPfNw4V4_YQSTR8sqz0aRVzWlQBq3QUw
dotnet core github repo
https://github.com/theodoreOnzGit/dotnetCoreYoutube