MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / getDivergence

Method getDivergence

tools/Assembler/ref/Assembler.cpp:120–139  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

118}
119
120VectorF Assembler::getDivergence(double* vector_field, int num_vector_field) {
121 size_t num_node = m_mesh->getNbrNodes();
122 size_t num_elem = m_mesh->getNbrElements();
123 size_t dim = m_mesh->getDim();
124
125 assert(num_vector_field == dim*num_node);
126
127 VectorF div(num_elem);
128 for (size_t i=0; i<num_elem; i++) {
129 div[i] = 0;
130 VectorI elem = m_mesh->getElement(i);
131 const Eigen::MatrixXd& DN = m_DN[i];
132 for (size_t j=0; j<elem.size(); j++) {
133 for (size_t k=0; k<dim; k++) {
134 div[i] += DN(j,k) * vector_field[elem[j]*dim+k];
135 }
136 }
137 }
138 return div;
139}
140
141VectorF Assembler::getCurlNorm(double* vector_field, int num_vector_field) {
142 size_t num_node = m_mesh->getNbrNodes();

Callers

nothing calls this directly

Calls 5

getNbrNodesMethod · 0.45
getNbrElementsMethod · 0.45
getDimMethod · 0.45
getElementMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected