//##################################################################### // Function Update //##################################################################### template<int d,class T_ARRAY> void FORCE_ELEMENTS:: Update(const ARRAY_BASE<VECTOR<int,d>,T_ARRAY>& base_elements,const ARRAY<bool>& particle_is_simulated) { const T_ARRAY& elements=base_elements.Derived(); indices.Remove_All(); for(int i=1;i<=elements.Size();i++) if(particle_is_simulated.Subset(elements(i)).Contains(true)) indices.Append(i); }
//##################################################################### // Function Mark_Nodes_Referenced //##################################################################### template<int d> template<class T> void SIMPLEX_MESH<d>:: Mark_Nodes_Referenced(ARRAY<T>& marks,const T& mark) const { for(int e=1;e<=elements.m;e++){INDIRECT_ARRAY<ARRAY<T>,VECTOR<int,d+1>&> subset=marks.Subset(elements(e));ARRAYS_COMPUTATIONS::Fill(subset,mark);} }
//##################################################################### // Function Mark_Nodes_Referenced //##################################################################### void HEXAHEDRON_MESH:: Mark_Nodes_Referenced(ARRAY<int>& marks,const int mark) const { for(int e=1;e<=elements.m;e++){INDIRECT_ARRAY<ARRAY<int>,VECTOR<int,8>&> subset=marks.Subset(elements(e));ARRAYS_COMPUTATIONS::Fill(subset,mark);} }