コード例 #1
0
ファイル: Lis.Functions.cs プロジェクト: lulzzz/IvyFEM
        public static int MatrixAssemble(LisMatrix A)
        {
            int ret = 0;

            unsafe
            {
                ret = IvyFEM.Lis.ImportedFunctions.lis_matrix_assemble(A.Native);
            }
            return(ret);
        }
コード例 #2
0
ファイル: Lis.Functions.cs プロジェクト: lulzzz/IvyFEM
        public static int MatrixSetSize(LisMatrix A, int localN, int globalN)
        {
            int ret = 0;

            unsafe
            {
                ret = IvyFEM.Lis.ImportedFunctions.lis_matrix_set_size(A.Native, localN, globalN);
            }
            return(ret);
        }
コード例 #3
0
ファイル: Lis.Functions.cs プロジェクト: lulzzz/IvyFEM
        /////////////////////////////////////////////////////////////////////////
        // Matrix-Vector Operations
        public static int Matvec(LisMatrix A, LisVector x, LisVector y)
        {
            int ret = 0;

            unsafe
            {
                ret = IvyFEM.Lis.ImportedFunctions.lis_matvec(A.Native, x.Native, y.Native);
            }
            return(ret);
        }
コード例 #4
0
ファイル: Lis.Functions.cs プロジェクト: lulzzz/IvyFEM
        public static int Solve(LisMatrix A, LisVector b, LisVector x, LisSolver solver)
        {
            int ret = 0;

            unsafe
            {
                ret = IvyFEM.Lis.ImportedFunctions.lis_solve(A.Native, b.Native, x.Native, solver.Native);
            }
            return(ret);
        }
コード例 #5
0
ファイル: Lis.Functions.cs プロジェクト: lulzzz/IvyFEM
        public static int MatrixSetType(LisMatrix A, MatrixType matrixType)
        {
            int ret = 0;

            unsafe
            {
                IvyFEM.Lis.ImportedFunctions.lis_matrix_set_type(A.Native, matrixType);
            }
            return(ret);
        }
コード例 #6
0
ファイル: Lis.Functions.cs プロジェクト: lulzzz/IvyFEM
        public static int MatrixDestroy(LisMatrix A)
        {
            int ret = 0;

            unsafe
            {
                ret      = IvyFEM.Lis.ImportedFunctions.lis_matrix_destroy(A.Native);
                A.Native = null;
            }
            return(ret);
        }
コード例 #7
0
ファイル: Lis.Functions.cs プロジェクト: lulzzz/IvyFEM
        public static int MatrixSetValueNew(
            SetValueFlag flag, int i, int j, LisScalar value, LisMatrix A)
        {
            int ret = 0;

            unsafe
            {
                ret = IvyFEM.Lis.ImportedFunctions.lis_matrix_set_value_new(
                    flag, i, j, value, A.Native);
            }
            return(ret);
        }
コード例 #8
0
ファイル: Lis.Functions.cs プロジェクト: lulzzz/IvyFEM
        public static int MatrixGetType(LisMatrix A, out MatrixType matrixType)
        {
            int ret = 0;

            unsafe
            {
                fixed(MatrixType *matrixTypeP = &matrixType)
                {
                    ret = IvyFEM.Lis.ImportedFunctions.lis_matrix_get_type(A.Native, matrixTypeP);
                }
            }
            return(ret);
        }
コード例 #9
0
ファイル: Lis.Functions.cs プロジェクト: lulzzz/IvyFEM
        /////////////////////////////////////////////////////////////////////////
        // Matrix Operations
        public static int MatrixCreate(int comm, LisMatrix A)
        {
            int ret = 0;

            unsafe
            {
                A.Native = null;
                fixed(NativeLisMatrix **nativeAPP = &A.Native)
                {
                    ret = IvyFEM.Lis.ImportedFunctions.lis_matrix_create(comm, nativeAPP);
                }
            }
            return(ret);
        }
コード例 #10
0
ファイル: Lis.Functions.cs プロジェクト: lulzzz/IvyFEM
        public static int MatrixSetValues(
            SetValueFlag flag, int n, LisScalar[] values, LisMatrix A)
        {
            int ret = 0;

            unsafe
            {
                fixed(LisScalar *valuesP = &values[0])
                {
                    ret = IvyFEM.Lis.ImportedFunctions.lis_matrix_set_values(
                        flag, n, valuesP, A.Native);
                }
            }
            return(ret);
        }
コード例 #11
0
ファイル: Lis.Functions.cs プロジェクト: lulzzz/IvyFEM
        public static int MatrixGetSize(LisMatrix A, out int localN, out int globalN)
        {
            int ret = 0;

            localN  = 0;
            globalN = 0;
            unsafe
            {
                fixed(int *localNP = &localN)
                fixed(int *globalNP = &globalN)
                {
                    ret = IvyFEM.Lis.ImportedFunctions.lis_matrix_get_size(A.Native, localNP, globalNP);
                }
            }
            return(ret);
        }
コード例 #12
0
ファイル: Lis.Functions.cs プロジェクト: lulzzz/IvyFEM
        public static int MatrixGetRange(LisMatrix A, out int @is, out int ie)
        {
            int ret = 0;

            @is = 0;
            ie  = 0;
            unsafe
            {
                fixed(int *isP = & @is)
                fixed(int *ieP = &ie)
                {
                    ret = IvyFEM.Lis.ImportedFunctions.lis_matrix_get_range(A.Native, isP, ieP);
                }
            }
            return(ret);
        }
コード例 #13
0
 public static int Matvec(LisMatrix A, LisVector x, LisVector y)
 {
     return(IvyFEM.Lis.Functions.Matvec(A, x, y));
 }
コード例 #14
0
ファイル: Lis.LisSolver.cs プロジェクト: lulzzz/IvyFEM
 public int Solve(LisMatrix A, LisVector b, LisVector x)
 {
     return(IvyFEM.Lis.Functions.Solve(A, b, x, this));
 }