Skip to content

C# implementation of computational algorithms that can be used on large linear systems in order to significantly reduce the computational cost.

Notifications You must be signed in to change notification settings

spiroskou/ComputationalMethods

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ComputationalMethods

This project is about the implementation of computational algorithms on large linear systems in order to significantly reduce the computational cost. It is part of a course I took in my master's degree in Computational Mechanics. The programming language used is C#.

For instance, in Finite Element Analysis we have to deal with large matrices who are sparse. In order to avoid saving the full matrix on the computer memory, we choose to store only parts of it and perform the calculations needed on a reduced and more convenient linear system.

CONTENTS:

ExerciseGroup1: Mainly some basic linear algebra operations needed.

ExerciseGroup2: Direct Solution Methods and Iterative Solution Methods

Direct: LL Factorization (Cholesky), LU Factorization, CSR CSC COO operations, LL Factorization for matrices in Skyline format.

Iterative: Jacobi, GaussSeidel, ConjugateGradient.

Utilities: Some more linear algebra operations and printing functions.

Every method is provided with a test function which performs the calculations on a given matrix. In the end, the function checks if the result is the same as the one we get from performing the same operations using a software like Matlab.

Example: Test LL Factorization (a.k.a Cholesky Factorization)

image image

If the two vectors are equal, CheckEqualArrays function prints "Method is correct" in the console.

image

About

C# implementation of computational algorithms that can be used on large linear systems in order to significantly reduce the computational cost.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages