added subdomain support in Mesh class, CalculateLaplaceMult implementation

This commit is contained in:
jakob.schratter 2026-01-22 17:52:23 +01:00
commit 2e887c04bc
13 changed files with 4336 additions and 69057 deletions

View file

@ -45,6 +45,16 @@ public:
*/
explicit Mesh(std::string const &fname);
/**
* Reads mesh data plus subdomain data from a binary file.
*
* File format, see ascii_write_mesh.m
*
* @param[in] filename file name
* @param[in] subdomain_filename subdomain file name
*/
explicit Mesh(std::string const &filename, std::string const &subdomain_filename);
/**
* Reads mesh data from a binary file.
*
@ -63,6 +73,8 @@ public:
return _nelem;
}
/**
* Global number of vertices for each finite element.
* @return number of vertices per element.
@ -422,6 +434,7 @@ public:
*/
void liftToQuadratic();
protected:
//public:
void SetNelem(int nelem)
@ -522,7 +535,19 @@ public:
*/
[[nodiscard]] bool checkObtuseAngles() const;
private:
std::vector<int> ElementSubdomains;
/**
* Reads the global triangle to subdomain mapping.
*
* @param[in] dname file name
*
* @see ascii_write_subdomains.m for the file format
*/
[[nodiscard]] const std::vector<int> ReadElementSubdomains(std::string const &dname) const;
/**
* Calculates the largest inner angle in element @p idx.
*