bandedforce.cpp

来自「有限元计算程序用于计算平面板结构单元的应力和位移。」· C++ 代码 · 共 56 行

CPP
56
字号
#include <iostream>
using namespace std;
#include "Plate.h"

//---------------------------------------------------------------------------

double* TPlate::Banded_Force(){

//      Solver = 0 ---> Conjugate Gradient Solver
//      Solver = 1 ---> Gauss Elimination Solver

        if (Solver == 0){

                R = Allocate_1D_Matrix(R, NEQ);
                U = Allocate_1D_Matrix(U, NEQ);

                R = SetZero_1D_Matrix(R, NEQ);
                U = SetZero_1D_Matrix(U, NEQ);

                R = Cal_R();
                U = R;

        }else if (Solver == 1){

                R = Allocate_1D_Matrix(R, (NEQ + 1));
                U = Allocate_1D_Matrix(U, (NEQ + 1));

                R = SetZero_1D_Matrix(R, (NEQ + 1));
                U = SetZero_1D_Matrix(U, (NEQ + 1));

                R = Cal_R();
                U = R;
     }
        return U;
}

//---------------------------------------------------------------------------

double* TPlate::Cal_R(){

        int temp_Solver = Solver;

        for (int i = 0; i < Nodes; i++){
            for (int j = 0; j < DOF; j++){
                if (ID[j][i] > 0){
                   R[temp_Solver] = Force[i][j];
                   temp_Solver = temp_Solver + 1;
                }
            }
        }

        return R;
}

//---------------------------------------------------------------------------
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?