38 #include "PatchDataUser.hpp"
39 #include "PatchData.hpp"
40 #include "MeshSet.hpp"
41 #include "MsqTimer.hpp"
43 using namespace Mesquite;
92 for (
size_t i=0;
i<num_elements; ++
i) {
94 if (nve != elems_ref[
i].vertex_count())
107 for (
unsigned c=0; c<nve; ++c) {
112 matrices[c] = Lambda * V * Q * Delta;
The Lambda coefficient is the average on the mesh.
CornerTag< TargetMatrix > targetMatrices
Target matrix data.
Used to hold the error state and return it to the application.
PatchDataParameters & get_all_parameters()
Returns the PatchDataParameters object.
void compute_guide_matrices(enum guide_type type, PatchData &ref_pd, size_t elem_ind, Matrix3D A[], int num, MsqError &err)
Computes the guide corner matrices A for a given element index in the reference patch.
MsqMeshEntity is the Mesquite object that stores information about the elements in the mesh...
Matrix3D compute_V_3D(const Matrix3D &A, MsqError &err)
Each element has a lambda coefficient.
const int MSQ_MAX_NUM_VERT_PER_ENT
Matrix3D compute_Q_3D(const Matrix3D &A, MsqError &err)
static double compute_Lambda(const Matrix3D &A, MsqError &err)
Note that this function is static, i.e. it can be used independently of an object.
size_t num_elements() const
number of elements in the Patch.
msq_stdc::size_t vertex_count() const
Returns the number of vertices in this element, based on its element type.
3*3 Matric class, row-oriented, 0-based [i][j] indexing.
#define MSQ_SETERR(err)
Macro to set error - use err.clear() to clear.
enum guide_type guideLambda
virtual void compute_target_matrices(PatchData &pd, MsqError &err)
double get_average_Lambda_3d(MsqError &err)
Returns average corner determinant over all corners in the patch This information is stored in the pa...
size_t num_vertices() const
number of vertices in the patch.
Matrix3D compute_Delta_3D(const Matrix3D &A, MsqError &err)
enum Lambda_type lambdaBase
Class containing the target corner matrices for the context based smoothing.
object is in an invalid state
#define MSQ_FUNCTION_TIMER(NAME)
const MsqMeshEntity * get_element_array(MsqError &err) const
Returns a pointer to the start of the element array.
#define MSQ_ERRRTN(err)
If passed error is true, return from a void function.
bool get_next_patch(PatchData &pd, PatchDataUser *pd_user, MsqError &err)
Gets the next PatchData.
enum guide_type guideDelta