./install doc
in your TNL directory, it will create the documentation localy on your system. You may find it in Documentation/html folder then.
MeshBuilder
class): https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/blob/develop/src/Tools/tnl-refine-mesh.cppgetRefinedMesh
function and the EntityRefiner
class: https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/blob/develop/src/TNL/Meshes/Geometry/getRefinedMesh.h https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/blob/develop/src/TNL/Meshes/Geometry/EntityRefiner.hMesh
class itself is static, so the modifications need to go through the mesh initialization process, which will be the bottleneck. It can be optimized by using a minimal mesh config to avoid unnecessary data and initialization steps, though.
MatrixView
a s a Matrix
to the linear solver? For example using Solver = GMRES< SparseMatrixView< .. >>
. The MatrixPointer
would be std::shared_pointer< SparseMatrixView >
.
setMatrix
function manually whenever views to the matrix get invalidated. This happens upon reallocation, especially when matrix size or row capacities change. The approach suggested by Tomáš should work, but of course you need to ensure that the view wrapped by the shared pointer is always valid when the solver is used.