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 35b4bf52 Remove redundant state flag member from var_description classes 35b4bf52 is described below commit 35b4bf52c75a3c977d5575793bb180d25b37a1ac Author: Konstantinos Poulios <logar...@gmail.com> AuthorDate: Mon Oct 16 09:01:55 2023 +0200 Remove redundant state flag member from var_description classes --- src/getfem/getfem_generic_assembly.h | 3 +-- src/getfem/getfem_models.h | 6 ++--- src/getfem_generic_assembly_workspace.cc | 6 ++--- src/getfem_models.cc | 43 ++++++++++++++++---------------- 4 files changed, 27 insertions(+), 31 deletions(-) diff --git a/src/getfem/getfem_generic_assembly.h b/src/getfem/getfem_generic_assembly.h index 43d269de..1eb582eb 100644 --- a/src/getfem/getfem_generic_assembly.h +++ b/src/getfem/getfem_generic_assembly.h @@ -272,7 +272,6 @@ namespace getfem { struct var_description { const bool is_variable; - const bool is_fem_dofs; const mesh_fem *mf; const im_data *imd; gmm::sub_interval I; @@ -291,7 +290,7 @@ namespace getfem { var_description(bool is_var, const mesh_fem *mf_, const im_data *imd_, gmm::sub_interval I_, const model_real_plain_vector *V_, size_type Q, bool is_intern_=false) - : is_variable(is_var), is_fem_dofs(mf_ != 0), mf(mf_), imd(imd_), + : is_variable(is_var), mf(mf_), imd(imd_), I(I_), V(V_), qdims(1), is_internal(is_intern_) { GMM_ASSERT1(Q > 0, "Bad dimension"); diff --git a/src/getfem/getfem_models.h b/src/getfem/getfem_models.h index 1c06b424..9bee4ce9 100644 --- a/src/getfem/getfem_models.h +++ b/src/getfem/getfem_models.h @@ -158,7 +158,6 @@ namespace getfem { // to another variable. bool is_internal; // An internal variable defined on integration // points, condensed out of the global system. - bool is_fem_dofs; // The variable is the dofs of a fem size_type n_iter; // Number of versions of the variable stored. size_type n_temp_iter; // Number of additional temporary versions size_type default_iter; // default iteration number. @@ -206,7 +205,6 @@ namespace getfem { mesh_im const *filter_mim_ = 0) : is_variable(is_var), is_disabled(false), is_complex(is_compl), is_affine_dependent(false), is_internal(false), - is_fem_dofs(mf_ != 0), n_iter(std::max(size_type(1), n_it)), n_temp_iter(0), default_iter(0), ptsc(0), filter(filter_), filter_region(filter_reg), filter_var(filter_var_), @@ -230,12 +228,12 @@ namespace getfem { void clear_temporaries(); const mesh_fem &associated_mf() const { - GMM_ASSERT1(is_fem_dofs, "This variable is not linked to a fem"); + GMM_ASSERT1(mf, "This variable is not linked to a fem"); return (filter == VDESCRFILTER_NO) ? *mf : *partial_mf; } const mesh_fem *passociated_mf() const { - if (is_fem_dofs) + if (mf) return (filter == VDESCRFILTER_NO || partial_mf.get() == 0) ? mf : partial_mf.get(); return 0; diff --git a/src/getfem_generic_assembly_workspace.cc b/src/getfem_generic_assembly_workspace.cc index fd3d6c75..9f652a9e 100644 --- a/src/getfem_generic_assembly_workspace.cc +++ b/src/getfem_generic_assembly_workspace.cc @@ -241,7 +241,7 @@ namespace getfem { ga_workspace::associated_mf(const std::string &name) const { VAR_SET::const_iterator it = variables.find(name); if (it != variables.end()) - return it->second.is_fem_dofs ? it->second.mf : 0; + return it->second.mf; if (md && md->variable_exists(name)) return md->pmesh_fem_of_variable(name); if (parent_workspace && parent_workspace->variable_exists(name)) @@ -266,7 +266,7 @@ namespace getfem { size_type ga_workspace::qdim(const std::string &name) const { VAR_SET::const_iterator it = variables.find(name); if (it != variables.end()) { - const mesh_fem *mf = it->second.is_fem_dofs ? it->second.mf : 0; + const mesh_fem *mf = it->second.mf; const im_data *imd = it->second.imd; size_type n = it->second.qdim(); if (mf) { @@ -289,7 +289,7 @@ namespace getfem { ga_workspace::qdims(const std::string &name) const { VAR_SET::const_iterator it = variables.find(name); if (it != variables.end()) { - const mesh_fem *mf = it->second.is_fem_dofs ? it->second.mf : 0; + const mesh_fem *mf = it->second.mf; const im_data *imd = it->second.imd; size_type n = it->second.qdim(); if (mf) { diff --git a/src/getfem_models.cc b/src/getfem_models.cc index 3ae1927d..c56b02e7 100644 --- a/src/getfem_models.cc +++ b/src/getfem_models.cc @@ -73,10 +73,10 @@ namespace getfem { clear_temporaries(); v_num_var_iter.resize(n_iter); v_num_iter.resize(n_iter); - size_type s = is_fem_dofs ? passociated_mf()->nb_dof() - : (imd ? imd->nb_filtered_index() - * imd->nb_tensor_elem() - : 1); + size_type s = mf ? passociated_mf()->nb_dof() + : (imd ? imd->nb_filtered_index() + *imd->nb_tensor_elem() + : 1); s *= qdim(); for (size_type i = 0; i < n_iter; ++i) if (is_complex) @@ -385,14 +385,14 @@ namespace getfem { for (auto &&v : variables) { const std::string &vname = v.first; var_description &vdescr = v.second; - if (vdescr.is_fem_dofs && !vdescr.is_affine_dependent) { + if (vdescr.mf && !vdescr.is_affine_dependent) { if ((vdescr.filter & VDESCRFILTER_CTERM) || (vdescr.filter & VDESCRFILTER_INFSUP)) { VAR_SET::iterator vfilt = variables.find(vdescr.filter_var); GMM_ASSERT1(vfilt != variables.end(), "The primal variable of the" " multiplier does not exist : " << vdescr.filter_var); - GMM_ASSERT1(vfilt->second.is_fem_dofs, "The primal variable of " - "the multiplier is not a fem variable"); + GMM_ASSERT1(vfilt->second.mf, "The primal variable of the " + "multiplier should be a fem variable"); multipliers[vdescr.filter_var].push_back(vname); if (vdescr.v_num < vdescr.mf->version_number() || vdescr.v_num < vfilt->second.mf->version_number()) { @@ -428,7 +428,7 @@ namespace getfem { for (auto &&v : variables) { var_description &vdescr = v.second; - if (vdescr.is_fem_dofs && !(vdescr.is_affine_dependent) && + if (vdescr.mf && !(vdescr.is_affine_dependent) && ((vdescr.filter & VDESCRFILTER_CTERM) || (vdescr.filter & VDESCRFILTER_INFSUP))) { if (tobedone.count(vdescr.filter_var)) { @@ -677,7 +677,7 @@ namespace getfem { ost << std::setw(30) << std::left << v.first; ost << std::setw(2) << std::right << vdescr.n_iter; ost << ((vdescr.n_iter == 1) ? " copy " : " copies "); - ost << (vdescr.is_fem_dofs ? "fem dependant " : "constant size "); + ost << (vdescr.mf ? "fem dependant " : "constant size "); ost << std::setw(8) << std::right << vdescr.size(); if (is_complex()) ost << " complex"; ost << ((vdescr.size() > 1) ? " doubles." : " double."); @@ -751,10 +751,10 @@ namespace getfem { void model::resize_fixed_size_variable(const std::string &name, const bgeot::multi_index &sizes) { - GMM_ASSERT1(!(variables[name].is_fem_dofs), + GMM_ASSERT1(variables[name].mf == 0, "Cannot explicitly resize a fem variable or data"); GMM_ASSERT1(variables[name].imd == 0, - "Cannot explicitly resize an im data"); + "Cannot explicitly resize an im variable or data"); variables[name].qdims = sizes; variables[name].set_size(); } @@ -969,8 +969,7 @@ namespace getfem { if (bricks[ibb].mims[j] == mim) found = true; } for (const auto &v : variables) { - if (v.second.is_fem_dofs && - (v.second.filter & VDESCRFILTER_INFSUP) && + if (v.second.mf && (v.second.filter & VDESCRFILTER_INFSUP) && mim == v.second.filter_mim) found = true; } if (!found) sup_dependency(*mim); @@ -997,12 +996,12 @@ namespace getfem { VAR_SET::const_iterator it = find_variable(varname); - if (it->second.is_fem_dofs) { + if (it->second.mf) { const mesh_fem *mf = it->second.mf; bool found = false; for(VAR_SET::iterator it2 = variables.begin(); it2 != variables.end(); ++it2) { - if (it != it2 && it2->second.is_fem_dofs && mf == it2->second.mf) + if (it != it2 && it2->second.mf && mf == it2->second.mf) found = true; } if (!found) sup_dependency(*mf); @@ -1016,7 +1015,7 @@ namespace getfem { } for (VAR_SET::iterator it2 = variables.begin(); it2 != variables.end(); ++it2) { - if (it != it2 && it2->second.is_fem_dofs && + if (it != it2 && it2->second.mf && (it2->second.filter & VDESCRFILTER_INFSUP) && mim == it2->second.filter_mim) found = true; } @@ -2963,7 +2962,7 @@ namespace getfem { context_check(); auto it = variables.find(name); GMM_ASSERT1(it != variables.end(), "Undefined variable " << name); - if (act_size_to_be_done && it->second.is_fem_dofs) { + if (act_size_to_be_done && it->second.mf) { if (it->second.filter != VDESCRFILTER_NO) actualize_sizes(); else @@ -2989,7 +2988,7 @@ namespace getfem { context_check(); auto it = variables.find(name); GMM_ASSERT1(it!=variables.end(), "Undefined variable " << name); - if (act_size_to_be_done && it->second.is_fem_dofs) { + if (act_size_to_be_done && it->second.mf) { if (it->second.filter != VDESCRFILTER_NO) actualize_sizes(); else @@ -3017,7 +3016,7 @@ namespace getfem { context_check(); auto it = variables.find(name); GMM_ASSERT1(it!=variables.end(), "Undefined variable " << name); - if (act_size_to_be_done && it->second.is_fem_dofs) { + if (act_size_to_be_done && it->second.mf) { if (it->second.filter != VDESCRFILTER_NO) actualize_sizes(); else @@ -3045,7 +3044,7 @@ namespace getfem { context_check(); auto it = variables.find(name); GMM_ASSERT1(it!=variables.end(), "Undefined variable " << name); - if (act_size_to_be_done && it->second.is_fem_dofs) { + if (act_size_to_be_done && it->second.mf) { if (it->second.filter != VDESCRFILTER_NO) actualize_sizes(); else @@ -3067,7 +3066,7 @@ namespace getfem { GMM_ASSERT1(it != variables.end(), "Undefined variable " << name); GMM_ASSERT1(it->second.is_affine_dependent, "Only for affine dependent variables"); - if (act_size_to_be_done && it->second.is_fem_dofs) { + if (act_size_to_be_done && it->second.mf) { if (it->second.filter != VDESCRFILTER_NO) actualize_sizes(); else @@ -3083,7 +3082,7 @@ namespace getfem { context_check(); VAR_SET::iterator it = variables.find(name); GMM_ASSERT1(it!=variables.end(), "Undefined variable " << name); - if (act_size_to_be_done && it->second.is_fem_dofs) { + if (act_size_to_be_done && it->second.mf) { if (it->second.filter != VDESCRFILTER_NO) actualize_sizes(); else