spiceSharpFluidFlowSolver 4 - Code Exploration: how spicesharp code that solves matrices works

Subscribers:
8,790
Published on ● Video Link: https://www.youtube.com/watch?v=qbKcTeRzh6o



Duration: 40:56
66 views
0


------------------ 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




Other Videos By Theo Ong Science and Engineering


2022-06-14spiceSharpFluidFLowSolver 12 - fluidPipeTheory documentation (equation derivations)
2022-06-07vimium 2 - page up and down (u,d) tabs (t, x, X, gt, gT, J, K)
2022-06-07vimium 1 - installation and basic navigation (hjkl, HL, f, esc key)
2022-06-03spiceSharpFluidFlowSolver 11 - Code Exploration Simulation.cs too complex, use custom components
2022-06-02spiceSharpFluidFlowSolver 10 - Code Exploration CreateBehaviors creates Matrices frm Circuit Objects
2022-05-28spiceSharpFluidFlowSolver 9 - Code Exploration VariableMaps are Modified using SimulationState Class
2022-05-27spiceSharpFluidFlowSolver 8 - Code Exploration Positive Negative Conventions and Indexing Variables
2022-05-26spiceSharpFluidFlowSolver 7 - Code Exploration OnePort Class and Nodal Analysis Eg with Resistor
2022-05-26spiceSharpFluidFlowSolver 6 - code exploration: Biasing Class in current SRC for IBiasingBehaviour
2022-05-25spiceSharpFluidFlowSolver 5 - setting up a sandbox in Xunit for matrix tests
2022-05-25spiceSharpFluidFlowSolver 4 - Code Exploration: how spicesharp code that solves matrices works
2022-05-23spiceSharpFluidFlowSolver 3 - exploring code: equation solvers and where Jacobians are constructed
2022-05-23spiceSharpFluidFlowSolver 2 - Newton Raphson Method for Multiple Equations
2022-05-23spiceSharpFluidFlowSolver 1 - Analogy between pipe networks and circuits
2022-05-12vim tricks - my current manjaro vimrc setup may 2022
2022-05-11windows vim - my setup in May 2022 setting up gruvbox theme and NERDTree
2022-05-11autocompletion in vim ctrl N or ctrl P in insert mode
2022-05-11Linux Like Cross Platform Dotnet Core VSCode Environment with vim keybindings
2022-05-07playing with dotnet core 86 - typecasting unknown units into base units manually
2022-05-07playing with dotnet core 85 - trouble with the UnknownUnit Class Type
2022-05-07playing with dotnet core 84 - EngineeringUnits Nuget Package instantiate complex units



Tags:
Engineering
Math
Science
Thermodynamics
Fluid Mechanics
Chemical
Nuclear
Chemical Potential
Fugacity
Enthalpy
Internal Energy
Entropy
First Law
Second law
Gibbs Free Energy
Hemholtz free energy
heat capacity
constant volume
constant pressure
tutorial
petroleum
oil
refinery
downstream
crude
jet
gasoline
gasoil
diesel
computational fluid dynamics
CFD
OpenFoam
Open
Foam
Fluid mechanics
heat transfer
turbulence
conduction
convection
radiation
Linux
Mint
Ubuntu
Manjaro