<commit_before>//
//  Mesh.hpp
//  cylinderFlow
//
//  Created by <NAME> on 3/30/17.
//  Copyright © 2017 <NAME>. All rights reserved.
//
#include "Includes.hpp"
#include "VectOps.hpp"
#include "Matrix.hpp"

#ifndef Mesh_h
#define Mesh_h

//! Class that tracks number of instatiated objects of type T during program execution
/*!
This templated class uses a global variable to track the number of instantiations of type **T** through incrementing/decrementing the counter variable in the constructor/destructor, respectively. To track number of instances of a class of type **T**, ensure that the class **T** inherits from classInstanceCounter<T>.
*/
template<class T>
class classInstanceCounter{
public:
	//! The constructor increments the global variable ciCounter<T>
    classInstanceCounter(){
        ciCounter++;
    }
	//! The destructor decrements the global variable ciCounter<T>
	~classInstanceCounter() {
		ciCounter--;
	}
protected:
	//!< Data member that tracks the number of instances of type **T**
	/*!
	Note that for any implementation of this class with type **T**, this value should have a final state of **0** on program exit, otherwise a memory leak has ocurred somewhere.
	*/
    static int ciCounter;
};

template<class T>
int classInstanceCounter<T>::ciCounter = 0;

//Forward declaration of Node class -- Needed for use in Mesh class
class Node;

// Forward declaration of Facet class -- Needed for use in Mesh class
class Facet;

//! Mesh class generates and stores a 2D mesh from an input grid points file
/*!
  This class generates and stores a 2D mesh from an input grid points file. A divide-and-conquer Delaunay Triangulation algorithm is implemented and requires as input a 2D grid point file. The class generates the list of nodes/adjacencies with the facet objects that are used in the finite element solver classes.
*/
class Mesh{
public:
	//! Public Constructor
	/*!<commit_msg>Added some more dox to Mesh.hpp<commit_after>//
//  Mesh.hpp
//  cylinderFlow
//
//  Created by <NAME> on 3/30/17.
//  Copyright © 2017 <NAME>. All rights reserved.
//
#include "Includes.hpp"
#include "VectOps.hpp"
#include "Matrix.hpp"

#ifndef Mesh_h
#define Mesh_h

//! Class that tracks number of instatiated objects of type T during program execution
/*!
This templated class uses a global variable to track the number of instantiations of type **T** through incrementing/decrementing the counter variable in the constructor/destructor, respectively. To track number of instances of a class of type **T**, ensure that the class **T** inherits from classInstanceCounter<T>.
*/
template<class T>
class classInstanceCounter{
public:
	//! The constructor increments the global variable ciCounter<T>
    classInstanceCounter(){
        ciCounter++;
    }
	//! The destructor decrements the global variable ciCounter<T>
	~classInstanceCounter() {
		ciCounter--;
	}
protected:
	//!< Data member that tracks the number of instances of type **T**
	/*!
	Note that for any implementation of this class with type **T**, this value should have a final state of **0** on program exit, otherwise a memory leak has ocurred somewhere.
	*/
    static int ciCounter;
};

template<class T>
int classInstanceCounter<T>::ciCounter = 0;

//Forward declaration of Node class -- Needed for use in Mesh class
class Node;

// Forward declaration of Facet class -- Needed for use in Mesh class
class Facet;

//! Mesh class generates and stores a 2D mesh from an input grid points file
/*!
  This class generates and stores a 2D mesh from an input grid points file. A divide-and-conquer <B><A HREF="https://en.wikipedia.org/wiki/Delaunay_triangulation">Delaunay Triangulation</A></B> algorithm is implemented and requires as input a 2D grid point file. The class generates the list of nodes/adjacencies with the facet objects that are used in the finite element solver classes.
  \todo Allow for constrained DT
*/
class Mesh{
public:
	//! Public Constructor
	/*!
{'fraction_non_alphanumeric': 0.09010377119716527, 'fraction_numerical': 0.007086813464945584, 'mean_word_length': 4.00253164556962, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 23, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5635714', 'n_tokens_mistral': 1125, 'n_tokens_neox': 1074, 'n_words': 511}