15 #if !defined(KRATOS_CONSTRUCT_SYSTEM_MATRIX_ELEMENTAL_PROCESS_H_INCLUDED )
16 #define KRATOS_CONSTRUCT_SYSTEM_MATRIX_ELEMENTAL_PROCESS_H_INCLUDED
59 template<
class TSystemSpaceType,
class TDirichletSpaceType = TSystemSpaceType>
101 std::vector<std::vector<std::size_t> > indices(equation_size);
109 i_element->EquationIdVector(ids, process_info);
110 for(std::size_t
i = 0 ;
i < 3 ;
i++)
111 if(ids[
i] < equation_size)
112 for(std::size_t
j = 0 ;
j < 3 ;
j++)
113 if(ids[
j] < equation_size)
114 indices[ids[
i]].push_back(ids[
j]);
116 dirichlet_indices[ids[
i]].push_back(ids[
j]- equation_size);
119 for(std::size_t
i = 0 ;
i < indices.size() ;
i++)
121 std::vector<std::size_t>& row_indices = indices[
i];
122 std::vector<std::size_t>& dirichlet_row_indices = dirichlet_indices[
i];
123 std::sort(row_indices.begin(), row_indices.end());
124 std::unique(row_indices.begin(), row_indices.end());
125 std::sort(dirichlet_row_indices.begin(), dirichlet_row_indices.end());
126 std::unique(dirichlet_row_indices.begin(), dirichlet_row_indices.end());
127 for(std::size_t
j = 0 ;
j < row_indices.size() ;
j++)
129 for(std::size_t
j = 0 ;
j < dirichlet_row_indices.size() ;
j++)
132 for(std::size_t
i = 0 ;
i < indices.size() ;
i++)
152 virtual std::string
Info()
const
154 return "ConstructSystemMatrixElementalProcess";
160 rOStream <<
"ConstructSystemMatrixElementalProcess";
166 rOStream <<
" System matrix non zeros : " <<
mSystemMatrix().non_zeros() << std::endl;
167 rOStream <<
" Dirichlet matrix non zeros : " <<
mDirichletMatrix().non_zeros() << std::endl;
276 template<
class TSystemSpaceType,
class TDirichletSpaceType>
281 template<
class TSystemSpaceType,
class TDirichletSpaceType>
286 rOStream << std::endl;
Short class definition.
Definition: construct_system_matrix_elemental_process.h:61
ConstructSystemMatrixElementalProcess(ElementsContainerType &rElements, SystemMatrixType &rSystemMatrix, DirichletMatrixType &rDirichletMatrix)
Constructor.
Definition: construct_system_matrix_elemental_process.h:82
virtual ~ConstructSystemMatrixElementalProcess()
Destructor.
Definition: construct_system_matrix_elemental_process.h:86
virtual std::string Info() const
Turn back information as a string.
Definition: construct_system_matrix_elemental_process.h:152
DirichletMatrixType & mDirichletMatrix
Definition: construct_system_matrix_elemental_process.h:189
PointerVectorSet< ElementType, IndexedObject > ElementsContainerType
Definition: construct_system_matrix_elemental_process.h:75
Element ElementType
Definition: construct_system_matrix_elemental_process.h:73
virtual void Execute()
Execute method is used to execute the Process algorithms.
Definition: construct_system_matrix_elemental_process.h:98
TSystemSpaceType::MatrixType SystemMatrixType
Definition: construct_system_matrix_elemental_process.h:69
KRATOS_CLASS_POINTER_DEFINITION(ConstructSystemMatrixElementalProcess)
Pointer definition of ConstructSystemMatrixElementalProcess.
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: construct_system_matrix_elemental_process.h:164
virtual void PrintInfo(std::ostream &rOStream) const
Print information about this object.
Definition: construct_system_matrix_elemental_process.h:158
SystemMatrixType & mSystemMatrix
Definition: construct_system_matrix_elemental_process.h:188
ElementsContainerType & mElements
Definition: construct_system_matrix_elemental_process.h:187
TDirichletSpaceType::MatrixType DirichletMatrixType
Definition: construct_system_matrix_elemental_process.h:71
Base class for all Elements.
Definition: element.h:60
std::vector< std::size_t > EquationIdVectorType
Definition: element.h:98
A sorted associative container similar to an STL set, but uses a vector to store pointers to its data...
Definition: pointer_vector_set.h:72
boost::indirect_iterator< typename TContainerType::iterator > iterator
Definition: pointer_vector_set.h:95
iterator begin()
Returns an iterator pointing to the beginning of the container.
Definition: pointer_vector_set.h:278
iterator end()
Returns an iterator pointing to the end of the container.
Definition: pointer_vector_set.h:314
The base class for all processes in Kratos.
Definition: process.h:49
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
TSpaceType::IndexType Size1(TSpaceType &dummy, typename TSpaceType::MatrixType const &rM)
Definition: add_strategies_to_python.cpp:117
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
int j
Definition: quadrature.py:648
integer i
Definition: TensorModule.f:17