固有の化合物の加算は間違った結果をもたらします

ヒシャム

プログラムで2つのEigen :: RowVectorXd変数を次のように宣言しました。複合加算ステートメントで間違った結果が得られsdf_grad+=gradvalます。最初の2つの要素のみが追加され、sdf_gradベクトル内の残りの要素は1e19になります。なぜそれが起こっているのか私には分かりません。助けてください。

Eigen::RowVectorXd sdf_grad(24);
Eigen::VectorXd stress_dof = get_stress_dof();
Eigen::VectorXd strain_dof = get_strain_dof();


for(unsigned int i=0;i!=qn.size(); i++)
{
    for(unsigned int j=0; j!=qn.size();j++)
    {
        double sval = qn[i];
        double tval = qn[j];
        if(!m_shape->m_set_coordinate)
               m_shape->add_coordinates(this->get_xcoords(),this->get_ycoords());
        m_shape->update_shapefn(sval,tval);
        Eigen::MatrixXd Bs = get_bsmat_local(i,j);
        Eigen::Vector3d stress = Bs*stress_dof;
        Eigen::MatrixXd Bd = get_bmat(sval,tval);
        Eigen::Vector3d strain = Bd* strain_dof;


        Eigen::Vector3d cnfn = m_material->get_constitutive_function(stress,strain);
        auto WxJ  = qw[i] * qw[j] * m_shape->get_detJ();
        double delval=cnfn.norm();
        objval+=delval*WxJ;

        //SETTING GRADIENT OF STRESS DOF

        Eigen::MatrixXd CxBs = m_material->get_cmat()*Bs;
        Eigen::MatrixXd Bstrans = CxBs.transpose();
        Eigen::RowVectorXd gradval= (-WxJ/delval)*Bstrans*cnfn;
        sdf_grad+= gradval ; // Wrong Result.

    }
}
chtz

ベクトルをゼロ初期化しませんでした。最初の行の代わりにこれを書いてください:

Eigen::RowVectorXd sdf_grad = Eigen::RowVectorXd::Zero(24);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Apache Commons Math:三重対角行列の固有分解は間違った結果をもたらします

分類Dev

OpenMPの崩壊は間違った結果をもたらします

分類Dev

Timedeltaとの時差は間違った結果をもたらします

分類Dev

Pythonのreplace関数は間違った結果をもたらします

分類Dev

GROUP BYMONTHは間違った結果をもたらします

分類Dev

Timedelta操作は間違った結果をもたらします

分類Dev

パンダを使ったアイテムの再割り当ては間違った結果をもたらします

分類Dev

削減のためのOpenMP並列は間違った結果をもたらします

分類Dev

Eigenでのスパース行列の乗算は、間違った結果をもたらしますか?

分類Dev

私のクイックソートの実装は間違った結果をもたらします

分類Dev

scipyスパース行列のsklearntrain_test_splitは間違った結果をもたらします

分類Dev

Pythonの「decimal」パッケージは間違った結果をもたらします

分類Dev

Pythonの条件が間違った結果をもたらす

分類Dev

モジュラスは間違った結果をもたらしますか?

分類Dev

正規表現は間違った結果をもたらします

分類Dev

iter_swapは間違った結果をもたらします

分類Dev

Google SheetsVALUE関数は間違った結果をもたらします

分類Dev

AES復号化は間違った結果をもたらします

分類Dev

Round(0.005)は間違った結果をもたらしますか?

分類Dev

ソート配列は間違った結果をもたらします

分類Dev

ヌンバの策略は間違った結果をもたらす

分類Dev

DATEのOracleSQL比較は間違った結果を返します

分類Dev

両方のシングルと化合物用語の検索フィルタを作成するための最も効果的な方法は何ですか?

分類Dev

ロンボク島の化合物または集約建物を行う方法

分類Dev

週と平日で定義された2つのモーメントのMoment.js差分は、間違った結果をもたらします

分類Dev

SQL結合テーブルは間違った結果をもたらします

分類Dev

単純な計算の値がJavaで間違った結果をもたらすのはなぜですか?オーバーフローしますか?

分類Dev

numpyのある線へのベクトルの2D正射影は、間違った結果をもたらします

分類Dev

scipy.integrateのOdeint関数が間違った結果をもたらす

Related 関連記事

  1. 1

    Apache Commons Math:三重対角行列の固有分解は間違った結果をもたらします

  2. 2

    OpenMPの崩壊は間違った結果をもたらします

  3. 3

    Timedeltaとの時差は間違った結果をもたらします

  4. 4

    Pythonのreplace関数は間違った結果をもたらします

  5. 5

    GROUP BYMONTHは間違った結果をもたらします

  6. 6

    Timedelta操作は間違った結果をもたらします

  7. 7

    パンダを使ったアイテムの再割り当ては間違った結果をもたらします

  8. 8

    削減のためのOpenMP並列は間違った結果をもたらします

  9. 9

    Eigenでのスパース行列の乗算は、間違った結果をもたらしますか?

  10. 10

    私のクイックソートの実装は間違った結果をもたらします

  11. 11

    scipyスパース行列のsklearntrain_test_splitは間違った結果をもたらします

  12. 12

    Pythonの「decimal」パッケージは間違った結果をもたらします

  13. 13

    Pythonの条件が間違った結果をもたらす

  14. 14

    モジュラスは間違った結果をもたらしますか?

  15. 15

    正規表現は間違った結果をもたらします

  16. 16

    iter_swapは間違った結果をもたらします

  17. 17

    Google SheetsVALUE関数は間違った結果をもたらします

  18. 18

    AES復号化は間違った結果をもたらします

  19. 19

    Round(0.005)は間違った結果をもたらしますか?

  20. 20

    ソート配列は間違った結果をもたらします

  21. 21

    ヌンバの策略は間違った結果をもたらす

  22. 22

    DATEのOracleSQL比較は間違った結果を返します

  23. 23

    両方のシングルと化合物用語の検索フィルタを作成するための最も効果的な方法は何ですか?

  24. 24

    ロンボク島の化合物または集約建物を行う方法

  25. 25

    週と平日で定義された2つのモーメントのMoment.js差分は、間違った結果をもたらします

  26. 26

    SQL結合テーブルは間違った結果をもたらします

  27. 27

    単純な計算の値がJavaで間違った結果をもたらすのはなぜですか?オーバーフローしますか?

  28. 28

    numpyのある線へのベクトルの2D正射影は、間違った結果をもたらします

  29. 29

    scipy.integrateのOdeint関数が間違った結果をもたらす

ホットタグ

アーカイブ