[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] [getfem-commits] branch master updated: Fix and simplif
From: |
Konstantinos Poulios |
Subject: |
[Getfem-commits] [getfem-commits] branch master updated: Fix and simplify ga_local_projection for models with internal variables |
Date: |
Sat, 18 Apr 2020 09:58:46 -0400 |
This is an automated email from the git hooks/post-receive script.
logari81 pushed a commit to branch master
in repository getfem.
The following commit(s) were added to refs/heads/master by this push:
new 6ff98d3 Fix and simplify ga_local_projection for models with internal
variables
6ff98d3 is described below
commit 6ff98d372828f5d48558f6610095e4d122edfa0f
Author: Konstantinos Poulios <address@hidden>
AuthorDate: Sat Apr 18 15:58:40 2020 +0200
Fix and simplify ga_local_projection for models with internal variables
---
src/getfem_generic_assembly_interpolation.cc | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/getfem_generic_assembly_interpolation.cc
b/src/getfem_generic_assembly_interpolation.cc
index d36f22e..2f45470 100644
--- a/src/getfem_generic_assembly_interpolation.cc
+++ b/src/getfem_generic_assembly_interpolation.cc
@@ -443,23 +443,22 @@ namespace getfem {
// Could be improved by not performing the assembly of the global mass
matrix
// working locally. This means a specific assembly.
- model_real_sparse_matrix M(mf.nb_dof(), mf.nb_dof());
+ size_type nbdof = mf.nb_dof();
+ model_real_sparse_matrix M(nbdof, nbdof);
asm_mass_matrix(M, mim, mf, region);
+ // FIXME: M should be cached for performance
- ga_workspace workspace(md);
- size_type nbdof = md.nb_dof();
- gmm::sub_interval I(nbdof, mf.nb_dof());
+ ga_workspace workspace(md, ga_workspace::inherit::NONE);
+ gmm::sub_interval I(0,nbdof);
workspace.add_fem_variable("c__dummy_var_95_", mf, I, base_vector(nbdof));
if (mf.get_qdims().size() > 1)
workspace.add_expression("("+expr+"):Test_c__dummy_var_95_",mim,region,2);
else
workspace.add_expression("("+expr+").Test_c__dummy_var_95_",mim,region,2);
- base_vector residual(nbdof+mf.nb_dof());
- workspace.set_assembled_vector(residual);
+ getfem::base_vector F(nbdof);
+ workspace.set_assembled_vector(F);
workspace.assembly(1);
- getfem::base_vector F(mf.nb_dof());
- gmm::resize(result, mf.nb_dof());
- gmm::copy(gmm::sub_vector(residual, I), F);
+ gmm::resize(result, nbdof);
getfem::base_matrix loc_M;
getfem::base_vector loc_U;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] [getfem-commits] branch master updated: Fix and simplify ga_local_projection for models with internal variables,
Konstantinos Poulios <=