[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] r5384 - /trunk/getfem/src/getfem_generic_assembly.cc
From: |
logari81 |
Subject: |
[Getfem-commits] r5384 - /trunk/getfem/src/getfem_generic_assembly.cc |
Date: |
Wed, 05 Oct 2016 11:22:48 -0000 |
Author: logari81
Date: Wed Oct 5 13:22:47 2016
New Revision: 5384
URL: http://svn.gna.org/viewcvs/getfem?rev=5384&view=rev
Log:
fix crash in hessian calculations
Modified:
trunk/getfem/src/getfem_generic_assembly.cc
Modified: trunk/getfem/src/getfem_generic_assembly.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_generic_assembly.cc?rev=5384&r1=5383&r2=5384&view=diff
==============================================================================
--- trunk/getfem/src/getfem_generic_assembly.cc (original)
+++ trunk/getfem/src/getfem_generic_assembly.cc Wed Oct 5 13:22:47 2016
@@ -3184,12 +3184,13 @@
};
struct ga_instruction_hess : public ga_instruction_val {
- // Z(ndof,target_dim,N*N), coeff(Qmult,ndof) --> t(target_dim*Qmult,N,N)
+ // Z(ndof,target_dim,N,N), coeff(Qmult,ndof) --> t(target_dim*Qmult,N,N)
virtual int exec() {
GA_DEBUG_INFO("Instruction: Hessian");
size_type ndof = Z.sizes()[0];
size_type target_dim = Z.sizes()[1];
- size_type N = size_type(round(sqrt(scalar_type(Z.sizes()[2]))));
+ size_type N = Z.sizes()[2];
+ GA_DEBUG_ASSERT(N == Z.sizes()[3], "Internal error");
size_type Qmult = qdim / target_dim;
GA_DEBUG_ASSERT((qdim == 1 && N == 1 && t.sizes()[0] == 1) ||
(qdim == 1 && t.sizes()[0] == N && t.sizes()[1] == N) ||
@@ -3333,7 +3334,7 @@
};
struct ga_instruction_copy_hess_base : public ga_instruction_copy_val_base {
- // Z(ndof,target_dim,N*N) --> t(Qmult*ndof,Qmult*target_dim,N,N)
+ // Z(ndof,target_dim,N,N) --> t(Qmult*ndof,Qmult*target_dim,N,N)
virtual int exec() {
GA_DEBUG_INFO("Instruction: Hessian of test functions");
size_type ndof = Z.sizes()[0];
@@ -3486,7 +3487,7 @@
struct ga_instruction_elementary_transformation_hess
: public ga_instruction_hess, ga_instruction_elementary_transformation {
- // Z(ndof,target_dim,N*N), coeff_in(Qmult,ndof) --> coeff_out -->
t(target_dim*Qmult,N,N)
+ // Z(ndof,target_dim,N,N), coeff_in(Qmult,ndof) --> coeff_out -->
t(target_dim*Qmult,N,N)
virtual int exec() {
GA_DEBUG_INFO("Instruction: Hessian with elementary transformation");
do_transformation();
@@ -3780,7 +3781,7 @@
struct ga_instruction_interpolate_hess_base
: public ga_instruction_copy_hess_base, ga_instruction_interpolate_base {
- // ctx --> Z(ndof,target_dim,N*N) --> t(Qmult*ndof,Qmult*target_dim,N,N)
+ // ctx --> Z(ndof,target_dim,N,N) --> t(Qmult*ndof,Qmult*target_dim,N,N)
virtual int exec() {
GA_DEBUG_INFO("Instruction: interpolated base hessian");
ga_instruction_interpolate_base::exec();
@@ -3897,7 +3898,7 @@
struct ga_instruction_elementary_transformation_hess_base
: public ga_instruction_copy_hess_base,
ga_instruction_elementary_transformation_base {
- // Z(ndof,target_dim,N*N) --> t_in -->
t_out(Qmult*ndof,Qmult*target_dim,N,N)
+ // Z(ndof,target_dim,N,N) --> t_in -->
t_out(Qmult*ndof,Qmult*target_dim,N,N)
virtual int exec() {
GA_DEBUG_INFO("Instruction: Hessian of test functions with elementary "
"transformation");
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r5384 - /trunk/getfem/src/getfem_generic_assembly.cc,
logari81 <=