G+Smo  23.12.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gismo Namespace Reference

The G+Smo namespace, containing all definitions for the library. More...

Namespaces

 bspline
 This namespace contains implementation of B-spline related algorithms.
 
 expr
 This namespace contains expressions used for FE computations.
 
 internal
 This namespace contains functionalities that are internal to the library.
 
 math
 This namespace contains common mathematical functions.
 
 memory
 This namespace contains functions related to memory management.
 
 trilinos
 This namespace contains wrappers for the Trilinos library.
 
 util
 the gsFuncData is a cache of pre-computed function sets values.
 

Classes

struct  ale_method
 Specifies method used for mesh deformation in fluid-structure interaction. More...
 
struct  boundary
 Struct that defines the boundary sides and corners and types of a geometric object. More...
 
struct  boundary_condition
 Class that defines a boundary condition for a side of a patch for some unknown variable of a PDE. More...
 
struct  boundaryInterface
 Struct which represents an interface between two patches. More...
 
struct  boxComponent
 Struct which represents a certain component (interior, face, egde, corner). More...
 
struct  boxCorner
 Struct which represents a certain corner of a hyper-cube. More...
 
class  boxSide
 Struct which represents a certain side of a box. More...
 
struct  condition_type
 Specifies the type of boundary condition. More...
 
struct  corner_value
 Class prescribing a value related to a corner of a patch. More...
 
struct  coupled_boundary
 Class prescribing a value related to a corner of a patch. More...
 
struct  decodeMat_id
 Decodes the material model and implementation. More...
 
struct  encodeMat_id
 Encodes the material model and implementation. More...
 
struct  gsAABB
 Struct of for an Axis-aligned bounding box. More...
 
class  gsAbsError
 Generates a field with value the absolute difference (error) between and isogeometric function and a function defined on the physical domain. More...
 
class  gsAdaptiveMeshing
 Provides adaptive meshing routines. More...
 
class  gsAdditiveOp
 Generic preconditioner which applies an arbitrary linear operator to the residual. More...
 
class  gsAffineFunction
 Representation of an affine function. More...
 
class  gsALMBase
 Performs the arc length method to solve a nonlinear system of equations. More...
 
class  gsALMConsistentCrisfield
 Performs the Consistent Crisfield arc length method to solve a nonlinear equation system. More...
 
class  gsALMCrisfield
 Performs the Crisfield arc length method to solve a nonlinear equation system. More...
 
class  gsALMLoadControl
 Performs the load-controlled arc length method to solve a nonlinear equation system. More...
 
class  gsAlmostC1
 Constructs the D-Patch, from which the transformation matrix can be called. More...
 
class  gsALMRiks
 Performs the Riks arc length method to solve a nonlinear equation system. More...
 
class  gsApproxC1Spline
 Class describing the approximate \(C^1\) spline. More...
 
class  gsAsConstMatrix
 Creates a mapped object or data pointer to a const matrix without copying data. More...
 
class  gsAsConstVector
 Creates a mapped object or data pointer to a const vector without copying data. More...
 
class  gsAsMatrix
 Creates a mapped object or data pointer to a matrix without copying data. More...
 
class  gsAssembler
 The assembler class provides generic routines for volume and boundary integrals that are used for for matrix and right-hand side generation. More...
 
struct  gsAssemblerOptions
 
class  gsAsVector
 Creates a mapped object or data pointer to a vector without copying data. More...
 
class  gsBarrierCore
 gsBarrierCore More...
 
class  gsBarrierPatch
 Computes a patch parametrization given a set of boundary geometries. Parametrization is not guaranteed to be non-singular. Works for planar surfaces and volumes. More...
 
class  gsBaseAssembler
 Extends the gsAssembler class by adding functionality necessary for a general nonlinear solver. Potentially, can be merged back into gsAssembler. More...
 
class  gsBasis
 A basis represents a family of scalar basis functions defined over a common parameter domain. More...
 
class  gsBasisFun
 Represents an individual function in a function set, or a certain component of a vector-valued function. More...
 
class  gsBasisRefs
 Simple class to hold a list of gsBasis which discretize a PDE system on a given patch. More...
 
class  gsBiCgStab
 Biconjugate gradient stabilized solver. More...
 
class  gsBiharmonicAssembler
 Implementation of a homogeneous Biharmonic Assembler. More...
 
class  gsBiharmonicPde
 A Biharmonic PDE. More...
 
class  gsBlockOp
 Simple class create a block operator structure. More...
 
class  gsBoundaryConditions
 Class containing a set of boundary conditions. More...
 
class  gsBoundedPriorityQueue
 An implementation of the bounded priority queue abstraction. More...
 
class  gsBoxTopology
 Defines a topological arrangement of a collection of "boxes" (e.g., parameter domains that map to physical-domain patches). More...
 
class  gsBSpline
 A B-spline function of one argument, with arbitrary target dimension. More...
 
class  gsBSplineBasis
 A univariate B-spline basis. More...
 
class  gsBSplineSolver
 
struct  gsBSplineTraits
 Traits for BSplineBasis in more dimensions. More...
 
class  gsBucklingSolver
 Performs linear buckling analysis given a matrix or functions of a matrix. More...
 
class  gsBulk
 Abstract base class representing a 4D bulk. More...
 
class  gsCauchyStressFunction
 Compute Cauchy stresses for a previously computed/defined displacement field. Can be pushed into gsPiecewiseFunction to construct gsField for visualization in Paraview. More...
 
class  gsCDRAssembler
 Implementation of an (multiple righ-hand side) Poisson solver. More...
 
class  gsCmdLine
 Class for command-line argument parsing. More...
 
class  gsCompositePrecOp
 This class represents the composition of preconditioners of type gsPreconditionerOp. More...
 
class  gsConjugateGradient
 The conjugate gradient method. More...
 
class  gsConstantBasis
 Class defining a dummy basis of constant functions. This is used for compatibility reasons. More...
 
class  gsConstantFunction
 Class defining a globally constant function. More...
 
class  gsContinuationBase
 Base class for simple continuation schemes. More...
 
class  gsControlDisplacement
 Simple class for displacement control given a static solver. More...
 
class  gsConvDiffRePde
 A convection-diffusion-reaction PDE, including source term on the right-hand side. More...
 
class  gsCoonsPatch
 Computes a Coons' patch parametrization given a set of boundary geometries. Parametrization is not guaranteed to be non-singular. Works for surface, volumes, or any dimension. More...
 
class  gsCPPInterface
 Provides a mapping between the corresponding sides of two patches sharing an interface, by means of a closest point projection. More...
 
class  gsCrossApPatch
 Computes a parametrization based on low rank cross approximation, given a set of boundary geometries. More...
 
class  gsCurvatureSmoothing
 Class for computing a closed B-spline curve with a smaller number of curvature extrema compared to a given closed B-spline curve. More...
 
class  gsCurve
 Abstract base class representing a curve. More...
 
class  gsCurveFitting
 Class for performing a least squares fit to get a open/closed B-Spline curve for some given data. More...
 
class  gsCurveLoop
 A closed loop given by a collection of curves. More...
 
class  gsDetFunction
 Compute jacobian determinant of the geometry mapping. Can be pushed into gsPiecewiseFunction to construct gsField for visualization in Paraview. More...
 
class  gsDofMapper
 Maintains a mapping from patch-local dofs to global dof indices and allows the elimination of individual dofs. More...
 
class  gsDomain
 Class representing a domain. i.e. a collection of elements (triangles, rectangles, cubes, simplices. More...
 
class  gsDomainIterator
 Class which enables iteration over all elements of a parameter domain. More...
 
class  gsDPatch
 Constructs the D-Patch, from which the transformation matrix can be called. More...
 
class  gsDPatchBase
 Constructs the D-Patch, from which the transformation matrix can be called. More...
 
class  gsDynamicBase
 Performs the arc length method to solve a nonlinear system of equations. More...
 
class  gsDynamicBathe
 Performs the arc length method to solve a nonlinear system of equations. More...
 
class  gsDynamicExplicitEuler
 Performs the arc length method to solve a nonlinear system of equations. More...
 
class  gsDynamicImplicitEuler
 Performs the arc length method to solve a nonlinear system of equations. More...
 
struct  gsDynamicLibrary
 Class defining a dynamic library. More...
 
class  gsDynamicNewmark
 Performs the arc length method to solve a nonlinear system of equations. More...
 
class  gsDynamicRK4
 Performs the arc length method to solve a nonlinear system of equations. More...
 
class  gsDynamicWilson
 Performs the arc length method to solve a nonlinear system of equations. More...
 
class  gsDynamicXBraid
 Performs the arc length method to solve a nonlinear system of equations. More...
 
struct  gsEigenAdaptor
 Adaptor for Eigen types. More...
 
class  gsEigenProblemBase
 Base class for buckling and modal analyses. More...
 
class  gsElasticityAssembler
 Assembles the stiffness matrix and the right-hand side vector for linear and nonlinear elasticity for 2D plain stress and 3D continua. The matrix and vector have a block structure associated with components of the displacement vector, each block corresponding to one component. Supports mixed displacement-pressure formulation. More...
 
class  gsElementErrorPlotter
 This class provides a function that returns a constant error on each element. More...
 
class  gsElTimeIntegrator
 Time integation for equations of dynamic elasticity with implicit schemes. More...
 
class  gsEulerBernoulliBeamPde
 The differential equation describing the linear Euler-Bernoulli beam. More...
 
class  gsExprAssembler
 
class  gsExprEvaluator
 Generic evaluator of isogeometric expressions. More...
 
class  gsExprHelper
 
struct  gsFeSpaceData
 Struct containing information for matrix assembly. More...
 
class  gsField
 A scalar of vector field defined on a m_parametric geometry. More...
 
struct  gsFieldCreator
 Class that creates standard fields on a given parametric (multipatch) geometry. More...
 
class  gsFileData
 This class represents an XML data tree which can be read from or written to a (file) stream. More...
 
class  gsFileManager
 File-system related functionality. More...
 
class  gsFitting
 Class for performing a least squares fit of a parametrized point cloud with a gsGeometry. More...
 
class  gsFsiLoad
 Loading function to transfer fluid action to the solid. Used in Fluid-Structure Interaction simulation. Different parametrizations can be used for the geometry+ALE and velocity+pressure. More...
 
class  gsFuncCoordinate
 Represents a certain component of a vector-valued function. More...
 
class  gsFunction
 A function \(f:\mathbb{R}^n\rightarrow\mathbb{R}^m\) from a n-dimensional domain to an m-dimensional image. More...
 
class  gsFunctionAdaptor
 Adaptor to see a given gsFunction as (the objective of) an unconstrained optimization problem. More...
 
class  gsFunctionExpr
 Class defining a multivariate (real or vector) function given by a string mathematical expression. More...
 
class  gsFunctionSet
 Interface for the set of functions defined on a domain (the total number of functions in the set equals to \(S\) ) More...
 
class  gsGaussRule
 Class that represents the (tensor) Gauss-Legendre quadrature rule. More...
 
class  gsGaussSeidelOp
 Gauss-Seidel preconditioner. More...
 
class  gsGenericAssembler
 Assembles mass and stiffness matrices and right-hand sides on a given domain. More...
 
class  gsGenericStopwatch
 A Stopwatch object can be used to measure execution time of code, algorithms, etc. More...
 
class  gsGenericTensorBasis
 Class for a quasi-tensor B-spline basis. More...
 
class  gsGeometry
 Abstract base class representing a geometry map. More...
 
class  gsGeometrySlice
 gsGeometrySlice is a class representing an iso parametric slice of a geometry object. It stores a pointer to the geometry object, which is only valid as long as this object is alive. Methods for printing to paraview are available in gsWriteToParaview.h More...
 
class  gsGeometryTransform
 Representation of a transformed geometry. More...
 
class  gsGMRes
 The generalized minimal residual (GMRES) method. More...
 
class  gsGradientDescent
 This class describes the gradient descent method. More...
 
class  gsGradientField
 Generates a field with value being the gradient of an isogeometric function. More...
 
class  gsGradientMethod
 The gradient method. More...
 
class  gsGridHierarchy
 Grid Hierarchy. More...
 
class  gsGridIterator< T, CWISE, d, false >
 Iterator over a Cartesian product of points, which is given by coordinate-wise point sets. More...
 
class  gsGridIterator< T, mode, d, false >
 Iterator over a Cartesian product of uniformly distributed numeric points inside a (hyper-)cube. More...
 
class  gsGridIterator< Z, mode, d, true >
 Iterator over the Cartesian product of integer points in a tensor-product grid. More...
 
class  gsHalfEdgeMesh
 gsHalfEdgeMesh is a gsMesh implementation that handles Halfedges More...
 
class  gsHBox
 This class provides a Hierarchical Box (gsHBox) More...
 
class  gsHBoxCheck
 Base class for performing checks on gsHBox objects. More...
 
class  gsHBoxContainer
 The Hierarchical Box Container provides a container for gsHBox objects. More...
 
struct  gsHBoxUtils
 The gsHBoxUtils provide basic utilities to modify HBoxes. More...
 
class  gsHBSpline
 A hierarchical B-Spline function, in d dimensions. More...
 
class  gsHBSplineBasis
 A hierarchical B-spline basis of parametric dimension d. More...
 
class  gsHDomain
 Class with a hierarchical domain structure represented by a box k-d-tree. More...
 
class  gsHDomainBoundaryIterator
 Re-implements gsDomainIterator for iteration over all boundary elements of a hierarchical parameter domain. More...
 
class  gsHDomainIterator
 Re-implements gsDomainIterator for iteration over all boundary elements of a hierarchical parameter domain. More...
 
class  gsHDomainLeafIter
 Iterates over the leaves of an gsHDomain (tree). More...
 
class  gsHDomainSliceIter
 Iterates over the leaves of an gsHDomain (tree) that intersect with a slice position. More...
 
class  gsHeatEquation
 Constructs the assembler for the discretized isogeometric heat equation. More...
 
class  gsHFitting
 This class applies hierarchical fitting of parametrized point clouds. More...
 
class  gsHTensorBasis
 Class representing a (scalar) hierarchical tensor basis of functions \( \mathbb R^d \to \mathbb R \). More...
 
class  gsIdentityOp
 Identity operator. More...
 
class  gsIetiMapper
 Ieti Mapper. More...
 
class  gsIetiSystem
 This class represents a IETI system. More...
 
class  gsIncompleteLUOp
 Incomplete LU with thresholding preconditioner. More...
 
class  gsIpOpt
 Class defining an optimization problem. More...
 
class  gsIterative
 A general iterative solver for nonlinear problems. An equation to solve is specified by an assembler class which provides the following interfaces: More...
 
class  gsIterativeSolver
 Abstract class for iterative solvers. More...
 
class  gsIterativeSolverOp
 This wrapper class allows gsIterativeSolver to be used as gsLinearOperator. More...
 
class  gsJacDetField
 Generates a field with value the Jacobian determinant of a geometry. More...
 
class  gsJacobiOp
 Jacobi preconditioner. More...
 
class  gsJITCompiler
 Class defining a just-in-time compiler. More...
 
struct  gsJITCompilerConfig
 Struct definig a compiler configuration. More...
 
struct  gsJITLang
 Supported languages. More...
 
struct  gsKdNode
 Struct representing a kd-tree node. More...
 
class  gsKDTree
 An interface representing a kd-tree in some number of dimensions. More...
 
class  gsKnotVector
 Class for representing a knot vector. More...
 
class  gsKroneckerOp
 Class for representing a Kronecker product of operators of type gsLinearOperator. More...
 
struct  gsL2Projection
 Class that performs an L2 projection. More...
 
class  gsLagrangeBasis
 A univariate Lagrange basis. More...
 
class  gsLagrangePoly
 The geometry class of a Lagrange Polyomial curve. More...
 
class  gsLanczosMatrix
 Class for representing a Lanczos matrix and calculating its eigenvalues. More...
 
class  gsLaplacePde
 The Laplace equation. More...
 
class  gsLargerErrCompare
 Checks if the error of a gsHBox is larger than a threshold. More...
 
class  gsLegendreBasis
 A univariate Legendre basis. More...
 
class  gsLinearLambdaOp
 Wrapper that allows to use lambdas as a gsLinearOperator. More...
 
class  gsLinearOperator
 Simple abstract class for discrete operators. More...
 
class  gsLineSegment
 Represents a line segment in d dimensions. More...
 
class  gsLobattoRule
 Class that represents the (tensor) Gauss-Lobatto quadrature rule. More...
 
class  gsMapData
 the gsMapData is a cache of pre-computed function (map) values. More...
 
class  gsMappedSingleBasis
 Class gsMappedSingleBasis represents an indivisual .....of a. More...
 
class  gsMappedSingleSpline
 Class gsMappedSingleSpline represents an individual .....of a. More...
 
class  gsMassAssembler
 Assembles the mass matrix and right-hand side vector for linear and nonlinear elasticity for 2D plain stress and 3D continua. The matrix has a block structure associated with components of the displacement vector, each block corresponding to one component. Supports mixed displacement-pressure formulation. More...
 
class  gsMaterialMatrixBase
 This class defines the base class for material matrices. More...
 
class  gsMaterialMatrixBaseDim
 This class defines the base class for material matrices. More...
 
class  gsMaterialMatrixComposite
 This class defines a linear material laminate. More...
 
class  gsMaterialMatrixContainer
 This class serves as the evaluator of material matrices, based on gsMaterialMatrixBase. More...
 
class  gsMaterialMatrixEvalSingle
 This class serves as the evaluator of material matrices, based on gsMaterialMatrixBase. More...
 
class  gsMaterialMatrixIntegrateSingle
 This class serves as the integrator of material matrices, based on gsMaterialMatrixBase. More...
 
class  gsMaterialMatrixLinear
 This class defines a linear material. More...
 
class  gsMaterialMatrixNonlinear
 This class defines hyperelastic material matrices. More...
 
class  gsMaterialMatrixTFT
 This class defines a linear material. More...
 
class  gsMatrix
 A matrix with arbitrary coefficient type and fixed or dynamic size. More...
 
class  gsMatrixBlockView
 Represents a block-view of the given matrix. More...
 
class  gsMatrixOp
 Simple adapter class to use a matrix (or matrix-like object) as a linear operator. Needed for the iterative method classes. More...
 
class  gsMaxLvlCompare
 Checks if the level of a gsHBox is smaller than a maximum level. More...
 
class  gsMesh
 Class Representing a triangle mesh with 3D vertices. More...
 
class  gsMinimalResidual
 The minimal residual (MinRes) method. More...
 
class  gsMinLvlCompare
 Checks if the level of a gsHBox is bigger than a minimum level. More...
 
class  gsMinResQLP
 The minimal residual (MinRes-QLP) method. More...
 
class  gsModalSolver
 Performs linear modal analysis given a matrix or functions of a matrix. More...
 
class  gsMonomialBasis
 An univariate monomial polynomial basis. If the degree is p the basis is given by: [ 1, x, x^2, ..., x^p ] The basis functions are numbered, starting from zero, as stated above. More...
 
class  gsMPBESBasis
 Purely abstract class gsMappedBasis, which gives means of combining basis functions to new, global ones. More...
 
class  gsMPBESBSplineBasis
 A univariate Lagrange basis. More...
 
class  gsMPBESHSplineBasis
 A univariate Lagrange basis. More...
 
class  gsMPBESMapB2D
 A univariate Lagrange basis. More...
 
class  gsMPBESMapHB2D
 A univariate Lagrange basis. More...
 
class  gsMPBESMapTensor
 A univariate Lagrange basis. More...
 
class  gsMultiBasis
 Holds a set of patch-wise bases and their topology information. More...
 
class  gsMultiGridOp
 Multigrid preconditioner. More...
 
class  gsMultiPatch
 Container class for a set of geometry patches and their topology, that is, the interface connections and outer boundary faces. More...
 
class  gsMuscleAssembler
 Assembler for incompressible nonlinear elasticity problem with a muscle material model. The material model is based on the paper by M.H.Gfrerer and B.Simeon "Fiber-based modeling and simulation of skeletal muscles". More...
 
class  gsMvLegendreBasis
 A multivariate Legendre basis. More...
 
class  gsNewtonCotesRule
 Class that represents the (tensor) Newton-Cotes quadrature rule. More...
 
class  gsNewtonIterator
 Performs Newton iterations to solve a nonlinear system of PDEs. More...
 
class  gsNormalField
 Generates the normal field of a geometry. More...
 
class  gsNsAssembler
 TODO: write. More...
 
class  gsNsTimeIntegrator
 Time integation for incompressible Navier-Stokes equations. More...
 
class  gsNurbs
 A NURBS function of one argument, with arbitrary target dimension. More...
 
class  gsNurbsBasis
 A univariate NURBS basis. More...
 
struct  gsNurbsCreator
 Class gsNurbsCreator provides some simple examples of Nurbs Geometries. More...
 
class  gsOptimizer
 Class defining an optimizer. More...
 
class  gsOptionList
 Class which holds a list of parameters/options, and provides easy access to them. More...
 
class  gsOptProblem
 Class defining an optimization problem. More...
 
class  gsOptProblemStatic
 [OptProblemExample Class] More...
 
class  gsOverIntegrateRule
 Class that defines a mixed quadrature rule with different rules for the interior and the boundaries. More...
 
class  gsOverlapCompare
 Checks if the coarsening neighborhood of a box is empty and if it overlaps with a refinement mask. More...
 
struct  gsPanelCreator
 Class gsPanelCreator provides some simple examples of Nurbs Geometries. More...
 
class  gsParametrization
 Class that maintains parametrization This class Parametrization stores the mesh information and the two-dimensional parameter points. The parameter points are stored in a vector, where the i-th vector element is the parameter point for the vertex with index i. This means that the first n elements in the vector are the inner parameter points, the rest of them are the boundary parameter points. More...
 
class  gsParamField
 Generates a field that attaches the parameter values on each physical point. More...
 
class  gsParaviewCollection
 This class is used to create a Paraview .pvd (collection) file. More...
 
class  gsParaviewDataSet
 This class represents a group of vtk (Paraview) files that refer to one multiPatch, for one timestep. More...
 
class  gsPatchGenerator
 Abstract class that accepts a set of input boundaries and computes a new geometry. More...
 
class  gsPatchIdField
 Generates a field that indicates the boundary sides on the geometry. More...
 
class  gsPatchPreconditionersCreator
 Provides robust preconditioners for single patch geometries. More...
 
class  gsPatchRule
 Class that represents the (tensor) patch quadrature rule. More...
 
class  gsPatchwiseFunction
 A function depending on an index i, typically referring to a patch/sub-domain. More...
 
class  gsPde
 Abstract class representing a PDE (partial differential equation). More...
 
class  gsPeriodicOverlap
 
class  gsPeriodicStitch
 
class  gsPiecewiseFunction
 A function depending on an index i, typically referring to a patch/sub-domain. On each patch a different gsFunction object is used. More...
 
class  gsPlanarDomain
 Class representing a Planar domain with an outer boundary and a number of holes. More...
 
class  gsPoint
 A Point in T^d, with an index number. More...
 
class  gsPointLoads
 Class containing a set of points on a multi-patch isogeometric domain, together with boundary conditions. More...
 
class  gsPoissonAssembler
 Implementation of an (multiple right-hand side) Poisson assembler. More...
 
class  gsPoissonPde
 A Poisson PDE. More...
 
class  gsPreCICEFunction
 Class defining a gsFunction that reads from the precice::SolverInterface. More...
 
class  gsPreconditionerFromOp
 Simple class allowing to construct a preconditioner from a linear operator. More...
 
class  gsPreconditionerOp
 Simple abstract class for perconditioners. More...
 
class  gsPrimalSystem
 This class represents the primal system for a IETI-DP algorithm. More...
 
class  gsProductOp
 Class for representing the product of objects of type gsLinearOperator as gsLinearOperator. More...
 
class  gsProgressBar
 Simple progress bar class. More...
 
struct  gsQuadrature
 Helper class for obtaining a quadrature rule. More...
 
class  gsQuadRule
 Class representing a reference quadrature rule. More...
 
struct  gsQuasiInterpolate
 Quasi-interpolation operators. More...
 
class  gsRationalBasis
 Class that creates a rational counterpart for a given basis. More...
 
class  gsReadFile
 Reads an object from a data file, if such the requested object exists in the file. More...
 
class  gsRemapInterface
 Provides a mapping between the corresponding sides of two patches sharing an interface. More...
 
class  gsRichardsonOp
 Richardson preconditioner. More...
 
class  gsScaledDirichletPrec
 This class represents the scaled Dirichlet preconditioner for a IETI problem. More...
 
class  gsScaledOp
 Allows an operator to be multiplied with a scalar. More...
 
class  gsSerialComm
 A serial communication class. More...
 
class  gsSerialGroup
 A sequential communicator group class. More...
 
class  gsSerialRequest
 A sequential communicator request class. More...
 
class  gsSerialStatus
 A sequential communicator status class. More...
 
class  gsShellStressFunction
 Compute Cauchy stresses for a previously computed/defined displacement field. Can be pushed into gsPiecewiseFunction to construct gsField for visualization in Paraview. More...
 
class  gsSmallerErrCompare
 Checks if the error of a gsHBox is smaller than a threshold. More...
 
class  gsSmoothInterfaces
 Constructs the D-Patch, from which the transformation matrix can be called. More...
 
class  gsSolid
 Class for representing a solid made up of vertices, edges, faces, and volumes. More...
 
class  gsSolverOp
 Simple adapter class to use an Eigen solver (having a compute() and a solve() method) as a linear operator. More...
 
class  gsSolverUtils
 Utility class for PDE's solver related utils. More...
 
class  gsSortedVector
 This class is derived from std::vector, and adds sort tracking. More...
 
class  gsSparseEntries
 Class that provides a container for triplets (i,j,value) to be filled in a sparse matrix. More...
 
class  gsSparseMatrix
 Sparse matrix class, based on gsEigen::SparseMatrix. More...
 
class  gsSparseMatrixIter
 Iterator over the non-zero entries of a sparse matrix. More...
 
class  gsSparseRows
 A specialized sparse matrix class which stores each row as a separate sparse vector. More...
 
class  gsSparseSolver
 Abstract class for solvers. The solver interface is base on 3 methods: -compute set the system matrix (possibly compute the factorization or preconditioners) -solve solves for a given right hand side -succeed returns true if solving succeded according to solver dependent criteria (usually tolerance based) So in order to solve \( A x = b \) with a solver s two functions must be called: s.compute(A) and s.solve(b). The calls can be chained as in s.compute(A).solve(b). More...
 
class  gsSparseSystem
 A sparse linear system indexed by sets of degrees of freedom. More...
 
class  gsSparseVector
 Sparse vector class, based on gsEigen::SparseVector. More...
 
class  gsSpectraGenSymShiftSolver
 
class  gsSpectraGenSymSolver
 
class  gsSpectraSolver
 Eigenvalue solver for general real matrices. More...
 
class  gsSpectraSymShiftSolver
 Shifted Eigenvalue solver for real symmetric matrices. More...
 
class  gsSpectraSymSolver
 Eigenvalue solver for real symmetric matrices. More...
 
class  gsSpringPatch
 Computes a parametrization based on the spring patch technique, given a set of boundary geometries. More...
 
class  gsSquaredDistance
 Squared distance function from a fixed point to a gsGeometry. More...
 
class  gsStaticBase
 Base class for static solvers. More...
 
class  gsStaticComposite
 Static solver using a newton method. More...
 
class  gsStaticDR
 Static solver using the Dynamic Relaxation method. More...
 
class  gsStaticNewton
 Static solver using a newton method. More...
 
class  gsStaticOpt
 Static solver using the Dynamic Relaxation method. More...
 
class  gsStdVectorRef
 Simple wrapper class for a vector of objects. More...
 
class  gsStokesPde
 A stationary Stokes PDE. More...
 
struct  gsStructuralAnalysisOps
 Operators for the gsStructuralAnalysis module. More...
 
class  gsSumOp
 Class for representing the sum of objects of type gsLinearOperator as gsLinearOperator. More...
 
class  gsSurface
 Abstract base class representing a surface. More...
 
class  gsSurfMesh
 A halfedge data structure for polygonal meshes. More...
 
class  gsTemplate
 Class gsTemplate object. More...
 
class  gsTensorBasis
 Abstract base class for tensor product bases. More...
 
class  gsTensorBSpline
 A tensor product of d B-spline functions, with arbitrary target dimension. More...
 
class  gsTensorBSplineBasis
 A tensor product B-spline basis. More...
 
class  gsTensorBSplineBasis< 1, T >
 A univariate B-spline basis. More...
 
class  gsTensorDomainBoundaryIterator
 Re-implements gsDomainIterator for iteration over all elements of the boundary of a tensor product parameter domain.
See gsDomainIterator for more detailed documentation and an example of the typical use!!! More...
 
class  gsTensorDomainIterator
 Re-implements gsDomainIterator for iteration over all elements of a tensor product parameter domain.
See gsDomainIterator for more detailed documentation and an example of the typical use!!! More...
 
class  gsTensorNurbs
 A tensor product Non-Uniform Rational B-spline function (NURBS) of parametric dimension d, with arbitrary target dimension. More...
 
class  gsTensorNurbsBasis
 A tensor product Non-Uniform Rational B-spline (NURBS) basis. More...
 
class  gsTHBSpline
 A truncated hierarchical B-Spline function, in d dimensions. More...
 
class  gsTHBSplineBasis
 Truncated hierarchical B-spline basis. More...
 
class  gsThermoAssembler
 Assembles stiffness and mass matrices and right-hand side vector for linear and nonlinear elasticity for 2D plain stress and 3D continua. Matrices and vector have a block structure associated with components of the displacement vector, each block corresponding to one component. More...
 
class  gsThinShellAssembler
 Assembles the system matrix and vectors for 2D and 3D shell problems, including geometric nonlinearities and loading nonlinearities. The material nonlinearities are handled by the gsMaterialMatrixIntegrate class. More...
 
class  gsThinShellAssemblerBase
 Base class for the gsThinShellAssembler. More...
 
class  gsThinShellAssemblerDWRBase
 Base class for the gsThinShellAssembler. More...
 
class  gsTriMeshToSolid
 Class gsTriMeshToSolid object. More...
 
class  gsTrimSurface
 Class for a trim surface. More...
 
class  gsVector
 A vector with arbitrary coefficient type and fixed or dynamic size. More...
 
class  gsVector3d
 A fixed-size, statically allocated 3D vector. More...
 
class  gsVertex
 gsVertex class that represents a 3D vertex for a gsMesh. More...
 
class  gsVisitorBiharmonic
 Visitor for the biharmonic equation. More...
 
class  gsVisitorCDR
 Visitor for the convection-diffusion-reaction equation. More...
 
class  gsVisitorDg
 Visitor for adding the interface conditions for the interior penalty methods of the Poisson problem. More...
 
class  gsVisitorGradGrad
 The visitor computes element grad-grad integrals. More...
 
class  gsVisitorMass
 The visitor computes element mass integrals. More...
 
class  gsVisitorMoments
 Visitor for the moment vector of a function. More...
 
class  gsVisitorNeumann
 Implementation of a Neumann BC for elliptic assemblers. More...
 
class  gsVisitorNeumannBiharmonic
 Visitor for Neumann boundary condition for the biharmonic equation. More...
 
class  gsVisitorNitsche
 Visitor for adding the terms associated to weak (Nitsche-type) imposition of the Dirichlet boundary conditions. More...
 
class  gsVisitorNitscheBiharmonic
 Visitor for the weak imposition of the first-type dirichlet boundary condition. More...
 
class  gsVisitorPoisson
 Visitor for the Poisson equation. More...
 
class  gsVolume
 Provides declaration of Volume abstract interface. More...
 
class  gsVSegment
 Class for representing a vertical line segment in 2D. Helper for the class gsAAPolyline. More...
 
class  gsXBraid
 Class defining the XBraid wrapper. More...
 
class  gsXBraid< gsMatrix< T > >
 Specializations for gsXBraid<gsMatrix<T>> More...
 
class  gsXBraid< gsVector< T > >
 Specializations for gsXBraid<gsVector<T>> More...
 
class  gsXBraidAccessStatus
 Class defining the XBraid access status wrapper. More...
 
class  gsXBraidBufferStatus
 Class defining the XBraid buffer status wrapper. More...
 
class  gsXBraidCoarsenRefStatus
 Class defining the XBraid coarsen and refinement status wrapper. More...
 
struct  gsXBraidMultigrid
 The p-multigrid class implements a generic p-multigrid solver that can be customized by passing assembler and coarse solver as template arguments. More...
 
struct  gsXBraidMultigridBase
 The p-multigrid base class provides the basic methods (smoothing, prolongation, restriction) for implementing p-multigrid methods. More...
 
class  gsXBraidObjectiveStatus
 Class defining the XBraid step objective wrapper. More...
 
class  gsXBraidStepStatus
 Class defining the XBraid step status wrapper. More...
 
class  gsXBraidSyncStatus
 Class defining the XBraid sync status wrapper. More...
 
struct  iteration_type
 Specifies iteration type for an iterative solver More...
 
struct  linear_solver
 Specifies linear solver to use if it is hidden within some other class (like Newton's method or time integrators) More...
 
struct  material_law
 Specifies the material law to use. More...
 
struct  MPITraits
 A traits class describing the mapping of types onto MPI_Datatypes. More...
 
struct  MPITraits< gsMatrix< T, _Rows, _Cols, _Options > >
 Specialization for fixed-size gsMatrix class. More...
 
struct  MPITraits< gsVector< T, _Rows, _Options > >
 Specialization for fixed-size gsVector class. More...
 
struct  ns_assembly
 Specifies the iteration type used to solve nonlinear systems. More...
 
struct  patchComponent
 Struct which represents a certain component (interior, face, egde, corner) of a particular patch. More...
 
struct  patchCorner
 Struct which represents a certain corner of a patch. More...
 
struct  patchSide
 Struct which represents a certain side of a patch. More...
 
struct  point_load
 Struct defining a point together with a scalar or vector load. More...
 
class  preAAParam
 
struct  shell_coupling
 Defines the coupling type over interfaces. More...
 
struct  solver_verbosity
 Specifies the verbosity of the iterative solver. More...
 
class  SpectraOps
 
class  SpectraOps< MatrixType, Spectra::GEigsMode::RegularInverse >
 
class  SpectraShiftOps
 
class  SpectraShiftOps< MatrixType, Spectra::GEigsMode::Buckling >
 
struct  stabilizerCDR
 Stabililzer for the CDR discretization. More...
 
struct  stress_components
 method was interrupted because the current solution is invalid More...
 
struct  stress_type
 Specifies the type of stresses to compute. More...
 
class  submoduleClass
 I am an example how to use the class in submodules. More...
 
class  submoduleClass2
 I am an example how to use the class in submodules. More...
 
struct  time_integration
 Specifies the time integration scheme, see Wriggers, Nonlinear FEM, p. 205. More...
 

Typedefs

typedef Point Color
 Color type.
 
typedef gsGenericStopwatch
< CPUClock > 
gsCPUStopwatch
 A stop-watch measuring CPU time.
 
typedef
gsEigen::PermutationMatrix
< Dynamic, Dynamic, index_t
gsPermutationMatrix
 reorderMapperTarget permutes the target indices of mapper according to permutation. If permutation does not contain all indices then the order of the remaining indices is preserved and the specified indices are appended to the end. More...
 
typedef gsGenericStopwatch
< WallClock > 
gsStopwatch
 A stop-watch measuring real (wall) time.
 
typedef Point Normal
 Normal type.
 
typedef Point Texture_coordinate
 Texture coordinate type.
 

Enumerations

enum  gsGridIteratorMode {
  CUBE,
  BDR,
  VERTEX,
  CWISE
}
 Specifies aliases describing the modes for gismo::gsGridIterator. More...
 
enum  gsHNeighborhood
 The gsHNeighborhood is a struct that classifies the type of admissible refinement.
 
enum  gsNeedEnum {
  NEED_VALUE,
  NEED_DERIV ,
  NEED_JACOBIAN,
  NEED_MEASURE,
  NEED_GRAD_TRANSFORM,
  NEED_DIV,
  NEED_CURL,
  NEED_DERIV2 ,
  NEED_HESSIAN,
  NEED_LAPLACIAN,
  NEED_ACTIVE,
  NEED_NORMAL,
  NEED_OUTER_NORMAL,
  NEED_2ND_FFORM,
  SAME_ELEMENT
}
 Enumeration flags which define the needs of an evaluation object. More...
 
enum  gsStatus {
  Success,
  NotConverged,
  AssemblyError,
  SolverError,
  NotStarted,
  OtherError
}
 
enum  Implementation : short_t
 This class describes the way material models are implemented. More...
 
enum  Material : short_t
 This class describes a material model.
 
enum  MaterialOutput : short_t
 This class describes the output type. More...
 
enum  MatIntegration : short_t
 This class describes if an object is integrated through-thickness or not. More...
 
enum  solver_status { ,
  interrupted,
  working,
  bad_solution
}
 Specifies the status of the iterative solver. More...
 
enum  ThinShellAssemblerStatus {
  Success,
  AssemblyError,
  DimensionError
}
 

Functions

template<class T >
void addConstraints (gsMatrix< T > const &C1, gsMatrix< T > const &d1, gsMatrix< T > const &C2, gsMatrix< T > const &d2, gsMatrix< T > &C, gsMatrix< T > &d)
 addConstraints
 
template<typename obj >
std::vector< obj * > asVectorPtr (const std::vector< obj > &matv)
 Constructs a vector of pointers from a vector of objects.
 
template<typename Z >
binomial (const Z n, const Z r)
 Computes the binomial expansion coefficient binomial(n,r) More...
 
template<unsigned n, unsigned r>
unsigned binomial ()
 Returns binomial(n,r) as a compile time constant. More...
 
void binomial_into (unsigned n, gsVector< unsigned > &v)
 Returns a vector containing all the binomials (n,r) with n fixed. More...
 
template<typename T >
gsMatrix< T > CalcIntervals (const gsMonomialPoly< T > &poly, T eps, gsMatrix< T > rootIntervals)
 
template<typename Base , typename Derived >
std::vector< Base * > castVectorPtr (std::vector< Derived * > pVec)
 Casts a vector of pointers.
 
template<typename T >
CauchyBound (gsMonomialPoly< T > &poly)
 returns the Cauchy Bound of a Polynomial, which is 1+max(abs(a_i/a_n))
 
template<class T >
index_t checkDisplacement (gsMultiPatch< T > const &domain, gsMultiPatch< T > const &displacement)
 Checks whether the deformed configuration is bijective, i.e. det(Jac(geo+disp)) > 0; returns -1 if yes or the number of the first invalid patch; samples the Jacobian elementwise at the quadrature points and the corners.
 
template<class T >
index_t checkGeometry (gsMultiPatch< T > const &domain)
 Checks whether configuration is bijective, i.e. det(Jac(geo)) > 0; returns -1 if yes or the number of the first invalid patch; samples the Jacobian elementwise at the quadrature points and the corners.
 
template<typename Derived , typename Base >
bool checkVectorPtrCast (std::vector< Base * > pVec)
 Returns true if all instances of Base cast to Derived.
 
template<typename It , typename ItOut >
void cloneAll (It start, It end, ItOut out)
 Clones all pointers in the range [start end) and stores new raw pointers in iterator out.
 
template<typename ContIn , typename ContOut >
void cloneAll (const ContIn &in, ContOut &out)
 Clones all pointers in the container in and stores them as raw pointers in container out.
 
template<class T >
combine (T a, T b, T x)
 compute a convex combintation (1-x)a+xb
 
template<class T >
gsMatrix< T > combine (gsMatrix< T > const &A, gsMatrix< T > const &B, T x, index_t iA=0, index_t iB=0, bool cols=false)
 compute a convex combination of two points given as ROWS of matrices numbered <iA> and <iB>; set <cols> to <true> to give points as COLUMNS
 
template<class T >
gsWeightMapper< T > * combineMappers (const std::vector< gsWeightMapper< T > * > &mappers, std::vector< index_t > &shifts, bool needShifting=true)
 combineMappers Given a set of mappers it creates a new mapper that combines all. It can be used to construct a global mapper for the cartesian product of spaces or to map both unknown and test space. More...
 
template<class T >
conditionedAngle (gsVector3d< T > vec1, gsVector3d< T > vec2)
 Angle between two vector: 0 <= angle <= pi.
 
template<class T >
conditionedAngle (gsVector3d< T > vec1, gsVector3d< T > vec2, gsVector3d< T > normal)
 
template<short_t d, class T >
void constructCoefsForSlice (index_t dir_fixed, const index_t index, const gsMatrix< T > &fullCoefs, const gsVector< index_t, d > &sizes, gsMatrix< T > &result)
 
template<class T >
gsMatrix< T > convert2Zero (gsMatrix< T > const &mat)
 convert a with abs(a) < eps=2.220446049250313e-16 into 0
 
template<typename T = real_t>
void convertFreeVectorToMultiPatch (const gsVector< T > &gsFreeVec, const gsDofMapper &mapper, gsMultiPatch< T > &mp)
 Convert free control points from a vector into a multi-patch.
 
template<typename T = real_t>
gsVector< T > convertMultiPatchToFreeVector (const gsMultiPatch< T > &mp, const gsDofMapper &mapper)
 Computes a patch parametrization given a set of boundary geometries. Parametrization is not guaranteed to be non-singular. Works for planar surfaces and volumes. More...
 
template<class T , class U >
void copy_n (T begin, const size_t n, U *result)
 Small wrapper for std::copy mimicking memcpy (or std::copy_n) for a raw pointer destination, copies n positions starting from begin into result. The latter is expected to have been allocated in advance.
 
template<class T >
gsVector< T > criticalPointOfQuadratic (gsMatrix< T > &A, gsMatrix< T > &C, gsVector< T > &d)
 
template<class T >
gsMatrix< T > criticalPointOfQuadratic (gsMatrix< T > const &A, gsMatrix< T > const &b, gsMatrix< T > const &C, gsMatrix< T > const &d)
 
template<class T >
gsMatrix< T > criticalPointOfQuadratic (gsMatrix< T > const &A, gsMatrix< T > const &C, gsMatrix< T > const &d)
 
template<class T >
gsMatrix< T > crossNorm2Mat (gsMatrix< T > const &mat1, gsMatrix< T > const &mat2)
 
template<typename Z , int d>
void cubeIsometry (const gsVector< bool, d > &flip, const gsVector< index_t, d > &perm, gsVector< Z > &result)
 Computes the isometry of the unit d-cube implied by a permutation perm of the cube directions plus a relocation flip of the cube vertices. More...
 
template<int d>
void cubeIsometryMatrix (const gsVector< bool, d > &flip, const gsVector< index_t, d > &perm, gsMatrix< int, d, d > &result)
 Computes the rotation matrix implied by a permutation perm of the cube directions plus a relocation flip. More...
 
template<class T >
curveDistance (gsGeometry< T > const &curveA, gsGeometry< T > const &curveB, index_t numSamples=1000)
 returns a distance in L2 sense between two curves parametrized from 0 to 1
 
template<class T >
curveLength (const gsGeometry< T > &geo)
 compute curve length
 
template<class Vec >
index_t dimCubeElement (const Vec &cur)
 Returns the dimension of an element (face) of the d-cube [0,1]^d. The element is expected to contain 0,1 (corresponding to cube extrema) and the special value 2 at the position of "free" coordinates.
 
GISMO_DEPRECATED index_t direction (index_t s)
 Returns the parametric direction that corresponds to side s. More...
 
template<class T >
displacementJacRatio (gsMultiPatch< T > const &domain, gsMultiPatch< T > const &displacement)
 Returns min(Jacobian determinant) divided by max(Jacobian determinant) for geo+disp samples the Jacobian elementwise at the quadrature points and the corners.
 
template<class T >
distance (gsMatrix< T > const &A, gsMatrix< T > const &B, index_t i=0, index_t j=0, bool cols=false)
 compute a distance between the point number in the set and the point number <j> in the set ; by default, points are given as ROWS of matrices; set <cols> to <true> to give points as COLUMNS
 
template<class T >
gsVector< unsigned > distributePoints (const gsGeometry< T > &geo, unsigned numPoints)
 distributes sampling points according to the length of the patch in each parametric direction
 
unsigned factorial (unsigned n)
 Returns the factorial of n i.e. n! Remember that factorial grow too fast and only n! with n<=13 can be stored in a 32bit that is an unsigned.
 
template<typename T >
unsigned findHyperPlaneIntersections (const gsBSpline< T > &curve, const gsVector< T > &normal, T reference, T tolerance, std::vector< Root< T > > &roots)
 find intersections of a BSpline curve with an hyperplane More...
 
template<typename T >
gsMatrix< T > FindRootIntervals (gsMonomialPoly< T > &poly, T eps)
 
template<class Vec >
void firstCombination (const unsigned n, const unsigned r, Vec &res)
 Computes the first r-combination of {0,..,n-1}.
 
template<class Vec >
void firstComposition (typename Vec::Scalar sum, index_t dim, Vec &res)
 Construct first composition of sum into dim integers.
 
template<class Vec >
void firstCubeElement (Vec &cur, const index_t k=0)
 Updates cur to contain the lexicographically first element (face) of the cube [0,1]^d of dimension k. For k==d the face (2..2) is returned, corresponding to the cube itself.
 
template<class Vec , class Mat >
void firstMultiComposition (const Vec &a, index_t k, Mat &res)
 Constructs first multi-composition of a = (a_1,..,a_d) into k integers.
 
template<class Vec >
void firstPermutation (Vec &current)
 changes current to the first permutation of 0 ... size(current)-1 note that you must resize the vector to specify the number of elements
 
template<class T >
gsGeometry< T >::uPtr fittingDirichlet (gsMatrix< T > const &params, gsMatrix< T > const &points, gsBasis< T > const &basis)
 fits a given parametrized point cloud with a curve using a given basis; the resulting curve interpolates the first and the last points
 
template<class T >
gsMatrix< T > flipLR (const gsMatrix< T > &mat)
 Flip columes from left to right and vice versa.
 
template<typename T , int d>
void flipTensorVector (const int dir, const gsVector< index_t, d > &sz, gsMatrix< T > &coefs)
 Flips tensor directions in place.
 
template<typename It >
void freeAll (It begin, It end)
 Frees all pointers in the range [begin end)
 
template<typename Cont >
void freeAll (Cont &cont)
 Frees all pointers in the container Cont.
 
template<int d>
int fromTensorIndex (const gsVector< unsigned, d > &idx, const gsVector< unsigned, d > &sz)
 Helper function to compute a lexicographically numbered index from tensor indices.
 
template<class T >
gsGeometry< T >::uPtr genCircle (index_t deg, index_t num, T radius=1., T x0=0., T y0=0., T angle0=0., T arcAngle=2 *EIGEN_PI)
 
template<class T >
gsGeometry< T >::uPtr genCircle (gsBasis< T > &basis, T radius=1., T x0=0., T y0=0., T angle0=0., T arcAngle=2 *EIGEN_PI)
 
template<class T >
gsGeometry< T >::uPtr genCylinder (gsGeometry< T > const &base, index_t deg, index_t num, T height)
 generates a 3D tensor product B-spline cylindrical patch
 
template<class T >
gsGeometry< T >::uPtr genLine (index_t deg, index_t num, gsMatrix< T > const &A, gsMatrix< T > const &B, index_t iA=0, index_t iB=0)
 
template<class T >
void genMuscleMP (gsGeometry< T > const &muscleSurface, gsMultiPatch< T > &result)
 This is more of a script than a function. I use it to generate a multi-parametrization for the biceps model given its surface.
 
template<class T >
gsGeometry< T >::uPtr genPatchInterpolation (gsGeometry< T > const &A, gsGeometry< T > const &B, index_t deg, index_t num, bool xiDir=false)
 
template<class T >
gsGeometry< T >::uPtr genPatchScaling (gsGeometry< T > const &boundary, index_t deg, index_t num, T scaling, gsVector< T > const &center)
 generates a tensor product B-spline bdry south | front patch by scaling a given geometry object \ / | | | towards a given center point; (x,y) north | back oppositely lying bdry is generated by scaling the original boundary with <scaling> coeff
 
template<class T >
gsGeometry< T >::uPtr genQuad (index_t xiDeg, index_t xiNum, index_t etaDeg, index_t etaNum, gsMatrix< T > const &A, gsMatrix< T > const &B, gsMatrix< T > const &C, gsMatrix< T > const &D, index_t iA=0, index_t iB=0, index_t iC=0, index_t iD=0)
 generates a quad patch given by its four C—D corners with the following orientation; | | the points are given as ROWS of matrices A—B
 
template<class T >
void genSamplingPoints (const gsVector< T > &lower, const gsVector< T > &upper, const gsQuadRule< T > &quRule, gsMatrix< T > &points)
 Generates a matrix of sampling points for a given parametric element; includes quadrature points for the element as well as the corner points.
 
template<class T >
gsGeometry< T >::uPtr genScrew (gsGeometry< T > const &base, index_t deg, index_t num, T height, T pitch, T x0=0., T y0=0.)
 generates a 3D tensor product B-spline screw-like patch
 
template<class T >
gsGeometry< T >::uPtr genSphere (index_t xiDeg, index_t xiNum, index_t etaDeg, index_t etaNum, T xi0=0., T xi1=2 *EIGEN_PI, T eta0=-EIGEN_PI/2, T eta1=EIGEN_PI/2)
 generates a tensor product B-spline spherical patch with radius 1 and center at 0 given the degrees and number of control points in two parametric dimensions
 
template<class T >
gsGeometry< T >::uPtr genSphere (gsKnotVector< T > &xiKnots, gsKnotVector< T > &etaKnots, T xi0=0., T xi1=2 *EIGEN_PI, T eta0=-EIGEN_PI/2, T eta1=EIGEN_PI/2)
 generates a tensor product B-spline spherical patch with radius 1 and center at 0 given knot vectors for two parametric dimensions
 
template<class T >
gsGeometry< T >::uPtr genSpring (gsGeometry< T > const &crossSection, T springRadius=6.0, T springPitch=2.60258, index_t numQuarterSegments=12, bool nurbs=false)
 generates a 3D NURBS spring using provided geometry as a cross-section
 
template<class T >
geometryJacRatio (gsMultiPatch< T > const &domain)
 Returns min(Jacobian determinant) divided by max(Jacobian determinant); samples the Jacobian elementwise at the quadrature points and the corners.
 
template<typename T >
gsMatrix< T > getFace (const boxSide side, const gsMatrix< T > &box)
 get the matrix containing the lower and upper corner of the specified side of the given box
 
template<short_t d, class T >
gsMaterialMatrixBase< T > * getMaterialMatrix (const gsMultiPatch< T > &mp, const gsFunctionSet< T > &thickness, const std::vector< gsFunctionSet< T > * > &parameters, const gsFunctionSet< T > &rho, const gsOptionList &options)
 Gets a material matrix based on options. More...
 
template<short_t d, class T >
gsMaterialMatrixBase< T > * getMaterialMatrix (const gsMultiPatch< T > &mp, const gsFunctionSet< T > &thickness, const std::vector< gsFunctionSet< T > * > &parameters, const gsOptionList &options)
 Gets a material matrix based on options. More...
 
template<typename S >
give (S &x)
 
template<typename matrix_t1 , typename matrix_t2 >
bool gsAllCloseAbsolute (const matrix_t1 &a, const matrix_t2 &b, const typename matrix_t1::Scalar &tol)
 tests if the difference between two matrices is bounded by tol in \( L^\infty \) norm More...
 
template<typename matrix_t1 , typename matrix_t2 >
bool gsAllCloseRelAndAbsWithRef (const matrix_t1 &a, const matrix_t2 &b, const typename matrix_t1::Scalar &tol, const typename matrix_t1::Scalar &ref)
 Tests whether the difference between two matrices is bounded by tol in \( L^\infty \) norm. More...
 
template<typename matrix_t1 , typename matrix_t2 >
bool gsAllCloseRelativeToMax (const matrix_t1 &a, const matrix_t2 &b, const typename matrix_t1::Scalar &tol)
 tests if the difference between two matrices is bounded by tol in \( L^\infty \) norm More...
 
template<class T , class KnotVectorType , class Mat >
void gsBoehm (KnotVectorType &knots, Mat &coefs, T val, int r=1, bool update_knots=true)
 Performs insertion of multiple knot on "knots" and coefficients "coefs".
 
template<class KnotVectorType , class Mat , class ValIt >
void gsBoehmRefine (KnotVectorType &knots, Mat &coefs, int p, ValIt valBegin, ValIt valEnd, bool update_knots=true)
 
template<class T , class KnotVectorType , class Mat >
void gsBoehmSingle (KnotVectorType &knots, Mat &coefs, T val, bool update_knots=true)
 Performs knot insertion once on "knots" and coefficients "coefs".
 
template<class T , class iter , class Mat >
void gsBoehmSingle (iter knot, Mat &coefs, int p, T val)
 
template<typename T >
bool gsClose (const T &a, const T &b, const T &tol)
 tests if the difference between two numbers is below tolerance
 
template<class T , class KnotVectorType >
void gsDeboor (const gsMatrix< T > &u, const KnotVectorType &knots, int deg, const gsMatrix< T > &coefs, gsMatrix< T > &result)
 
template<class T , class KnotVectorType >
void gsDeboorDeriv (const gsMatrix< T > &u, const KnotVectorType &knots, int deg, const gsMatrix< T > &coefs, gsMatrix< T > &result)
 
template<class T >
gsBSpline< T > gsInterpolate (gsKnotVector< T > &kv, const gsMatrix< T > &preImage, const gsMatrix< T > &image, const gsMatrix< T > &preNormal, const gsMatrix< T > &normal, const gsMatrix< T > &preImageApp, const gsMatrix< T > &imageApp, T const &w_reg, T const &w_app, gsMatrix< T > &outPointResiduals, gsMatrix< T > &outNormalResiduals)
 
template<class T >
gsTensorBSpline< 2, T >::Ptr gsInterpolateSurface (const gsMatrix< T > &exactPoints, const gsMatrix< T > &exactValues, const gsMatrix< T > &appxPointsEdges, const gsMatrix< T > &appxValuesEdges, const gsMatrix< T > &appxPointsInt, const gsMatrix< T > &appxValuesInt, const gsMatrix< T > &appxNormalPoints, const gsMatrix< T > &appxNormals, T wEdge, T wInt, T wNormal, T wReg, const gsKnotVector< T > &kv1, const gsKnotVector< T > &kv2, bool force_normal)
 
template<typename T >
bool gsIsfinite (T a)
 
template<typename T >
bool gsIsnumber (T a)
 
template<class T >
void gsMarkElementsForRef (const std::vector< T > &elError, int refCriterion, T refParameter, std::vector< bool > &elMarked)
 Marks elements/cells for refinement. More...
 
 gsMpi (const int &argc, char **argv)
 calls MPI_Init with argc and argv as parameters
 
gsMpi & gsMpiSingleton (const int &argc, char **argv)
 Singleton function returning the gsMpi helper object.
 
template<class T >
gsMatrix< T > gsPointGrid (gsVector< T > const &a, gsVector< T > const &b, gsVector< unsigned > const &np)
 Construct a Cartesian grid of uniform points in a hypercube, using np[i] points in direction i. More...
 
template<class T >
gsMatrix< T > gsPointGrid (gsMatrix< T > const &ab, int numPoints)
 
template<class T , class CwiseContainer >
void gsPointGrid (CwiseContainer const &cwise, gsMatrix< T > &res)
 
template<class T , class CwiseContainer >
gsMatrix< T > gsPointGrid (CwiseContainer const &cwise)
 Construct a grid of points by coordinate vectors in the container cwise.
 
template<class T >
void gsRefineMarkedElements (gsMultiBasis< T > &basis, const std::vector< bool > &elMarked, index_t refExtension=0)
 Refine a gsMultiBasis, based on a vector of element-markings. More...
 
template<typename T , typename KnotVectorType , typename Mat >
void gsTensorBoehm (KnotVectorType &knots, Mat &coefs, T val, int direction, gsVector< unsigned > str, int r=1, bool update_knots=true)
 
template<typename KnotVectorType , typename Mat , typename ValIt >
void gsTensorBoehmRefine (KnotVectorType &knots, Mat &coefs, int direction, gsVector< unsigned > str, ValIt valBegin, ValIt valEnd, bool update_knots=true)
 
template<short_t d, typename KnotVectorType , typename Mat , typename ValIt >
void gsTensorBoehmRefineLocal (KnotVectorType &knots, const unsigned index, Mat &coefs, gsVector< index_t, d > &nmb_of_coefs, const gsVector< index_t, d > &act_size_of_coefs, const gsVector< index_t, d > &size_of_coefs, const unsigned direction, ValIt valBegin, ValIt valEnd, const bool update_knots)
 Local refinement algorithm. More...
 
template<short_t d, typename T , typename KnotVectorType , typename Mat >
void gsTensorInsertKnotDegreeTimes (const KnotVectorType &knots, Mat &coefs, const gsVector< index_t, d > &size_of_coefs, T val, const unsigned direction, gsVector< index_t, d > &start, gsVector< index_t, d > &end)
 Inserts knot val such that multiplicity of a val in knot vector is equal degree. More...
 
template<class T >
void gsTraceCurvePart (std::pair< gsFunction< T > *, gsFunction< T > * > &map, gsMatrix< T > const &x, gsBSpline< T > *bs, T t0, T t1, gsMatrix< T > &result, const int n_points=50, const T tolerance=0.0001)
 
template<class T >
void gsTraceLine (std::pair< gsFunction< T > *, gsFunction< T > * > &map, gsMatrix< T > const &x, gsMatrix< T > const &p, gsMatrix< T > &result)
 
template<class T >
void gsUnrefineMarkedElements (gsMultiBasis< T > &basis, const std::vector< bool > &elMarked, index_t refExtension=0)
 Unrefine a gsMultiBasis, based on a vector of element-markings. More...
 
template<typename Object >
void gsWrite (const Object &obj, const std::string &fname)
 Write an arbitrary Gismo object to an XML file with the given filename.
 
template<typename T >
void gsWriteGoTools (const gsGeometry< T > &geom, const std::string &fileName)
 
template<typename T >
void gsWriteGoTools (const gsGeometry< T > &geom, std::ofstream &out)
 
template<typename T >
void gsWriteGoTools (const gsMultiPatch< T > &multiPatch, const std::string &fileName)
 
template<short_t d, typename T >
void gsWriteGoToolsBodySpline (const gsTensorBSpline< d, T > &bspl, std::ofstream &out)
 Writes body part of GoTools (.g2) format to a file. More...
 
template<short_t d, typename T >
void gsWriteGoToolsSpline (const gsTensorBSpline< d, T > &bspl, std::ofstream &out)
 
template<class T >
void gsWriteParaview (const gsGeometry< T > &Geo, std::string const &fn, unsigned npts=NS, bool mesh=false, bool ctrlNet=false)
 Export a gsGeometry (without scalar information) to paraview file. More...
 
template<class T >
void gsWriteParaview (gsMappedSpline< 2, T > const &mspline, std::string const &fn, unsigned npts=NS)
 Writes a gsMappedSpline geometry. More...
 
template<class T >
void gsWriteParaview (gsMultiPatch< T > const &mp, gsMultiBasis< T > const &mb, std::string const &fn, unsigned npts=NS)
 Plot the basis functions of a multi-basis. More...
 
template<class T >
void gsWriteParaview (gsFunctionSet< T > const &geom, gsMappedBasis< 2, T > const &mbasis, std::string const &fn, unsigned npts=NS, const bool fullsupport=false, const std::vector< index_t > indices=std::vector< index_t >())
 Writes a gsMappedBasis over a gsMappedSpline geometry. More...
 
template<class T >
void gsWriteParaview (gsMesh< T > const &sl, std::string const &fn, const gsMatrix< T > &params)
 Export a mesh to paraview file. More...
 
template<typename T >
void gsWriteParaview (const std::vector< gsMesh< T > > &meshes, std::string const &fn)
 Export a vector of meshes, each mesh in its own file. More...
 
template<class T >
void gsWriteParaview (const gsField< T > &field, std::string const &fn, unsigned npts=NS, bool mesh=false, const std::string pDelim="")
 Write a file containing a solution field (as color on its geometry) to paraview file. More...
 
template<class T >
void gsWriteParaview (gsFunctionSet< T > const &geo, gsFunctionSet< T > const &func, std::string const &fn, unsigned npts=NS, const std::string pDelim="")
 Write a file containing a solution func (as color on its geometry geo), defined using functionsets, to paraview file. More...
 
template<class T >
void gsWriteParaview (const gsMultiPatch< T > &Geo, std::string const &fn, unsigned npts=NS, bool mesh=false, bool ctrlNet=false, const std::string pDelim="_")
 Export a multipatch Geometry (without scalar information) to paraview file. More...
 
template<class T >
void gsWriteParaview (std::vector< gsGeometry< T > * > const &Geo, std::string const &fn, unsigned npts=NS, bool mesh=false, bool ctrlNet=false, const std::string pDelim="_")
 Export a multipatch Geometry (without scalar information) to paraview file. More...
 
template<class T >
void gsWriteParaview (const gsMultiBasis< T > &mb, const gsMultiPatch< T > &domain, std::string const &fn, unsigned npts)
 Export a computational mesh to paraview file.
 
template<class T >
void gsWriteParaview (const gsGeometrySlice< T > &Geo, std::string const &fn, unsigned npts=NS)
 Export a Geometry slice to paraview file. More...
 
template<class T >
void gsWriteParaview (gsFunctionSet< T > const &func, std::string const &fn, unsigned npts=NS)
 Export a functionSet plot to paraview file. More...
 
template<class T >
void gsWriteParaview (gsFunction< T > const &func, gsMatrix< T > const &supp, std::string const &fn, unsigned npts=NS, bool graph=true)
 Export a function plot to paraview file. More...
 
template<class T >
void gsWriteParaview (gsBasis< T > const &basis, std::string const &fn, unsigned npts=NS, bool mesh=false)
 Export Basis functions to paraview files. More...
 
template<class T >
void gsWriteParaview (gsHBox< 2, T > &box, std::string const &fn)
 Export gsHBox to paraview files. More...
 
template<class T >
void gsWriteParaview (gsHBoxContainer< 2, T > &box, std::string const &fn)
 Export gsHBox to paraview files. More...
 
template<class T >
void gsWriteParaview (gsSolid< T > const &sl, std::string const &fn, unsigned numPoints_for_eachCurve=50, int vol_Num=0, T edgeThick=0.01, gsVector3d< T > const &translate=gsVector3d< T >(0, 0, 0), int color_convex=0, int color_nonconvex=20, int color_eloop=10, std::vector< unsigned > const &eloop=std::vector< unsigned >())
 Export tensor-structured point set with field data to Paraview file. More...
 
template<class T >
void gsWriteParaview (gsCurveLoop< T > const &cloop, std::string const &fn, unsigned npts)
 Visualizing a gsCurveLoop. More...
 
template<class T >
void gsWriteParaview (gsPlanarDomain< T > const &pdomain, std::string const &fn, unsigned npts=NS)
 Visualizing a gsPlanarDomain. More...
 
template<class T >
void gsWriteParaview (const gsTrimSurface< T > &ts, std::string const &fn, unsigned npts=NS, bool trimCurves=false)
 Visualizing a gsTrimSurface.
 
template<typename T >
void gsWriteParaview (const gsVolumeBlock< T > &volBlock, std::string const &fn, unsigned npts=NS)
 Export a volumeBlock. More...
 
template<class T >
void gsWriteParaview (gsMultiPatch< T > const &patches, typename gsBoundaryConditions< T >::bcContainer const &bcs, std::string const &fn, unsigned npts=NS, bool ctrlNet=false)
 Visualizing boundary conditions. More...
 
template<class T >
void gsWriteParaview (gsMesh< T > const &sl, std::string const &fn, bool pvd)
 Visualizing a mesh. More...
 
template<class T >
void gsWriteParaview_basisFnct (int i, gsBasis< T > const &basis, std::string const &fn, unsigned npts=NS)
 Export i-th Basis function to paraview file. More...
 
template<class T >
void gsWriteParaviewBdr (gsMultiPatch< T > const &patches, std::string const &fn, unsigned npts, bool ctrlNet)
 Writes the boundaries of a multipatch to paraview. More...
 
template<class T >
void gsWriteParaviewIfc (gsMultiPatch< T > const &patches, std::string const &fn, unsigned npts, bool ctrlNet)
 Writes the interfaces of a multipatch to paraview. More...
 
template<class T >
void gsWriteParaviewMultiPhysics (std::map< std::string, const gsField< T > * > fields, std::string const &fn, unsigned npts=NS, bool mesh=false, bool ctrlNet=false)
 Write a file containing several fields defined on the same geometry to ONE paraview file. More...
 
template<class T >
void gsWriteParaviewMultiPhysicsSinglePatch (std::map< std::string, const gsField< T > * > fields, const unsigned patchNum, std::string const &fn, unsigned npts)
 Extract and evaluate geometry and the fields for a single patch. More...
 
template<class T >
void gsWriteParaviewMultiPhysicsTimeStep (std::map< std::string, const gsField< T > * > fields, std::string const &fn, gsParaviewCollection &collection, int time, unsigned npts=NS)
 Write a file containing several fields defined on the same geometry to ONE paraview file and adds it as a timestep to a Paraview collection. More...
 
template<class T >
void gsWriteParaviewMultiTPgrid (gsMatrix< T > const &points, std::map< std::string, gsMatrix< T > > &data, const gsVector< index_t > &np, std::string const &fn)
 Utility function to actually write prepaired matrices with data into Paraview file. More...
 
template<class T >
void gsWriteParaviewPoints (gsMatrix< T > const &X, gsMatrix< T > const &Y, std::string const &fn)
 Export 2D Point set to Paraview file. More...
 
template<class T >
void gsWriteParaviewPoints (gsMatrix< T > const &X, gsMatrix< T > const &Y, gsMatrix< T > const &Z, std::string const &fn)
 Export 3D Point set to Paraview file. More...
 
template<class T >
void gsWriteParaviewPoints (gsMatrix< T > const &points, std::string const &fn)
 Export Point set to Paraview file. More...
 
template<class T >
void gsWriteParaviewSolid (gsSolid< T > const &sl, std::string const &fn, unsigned numSamples=NS)
 Export a gsSolid to Paraview file.
 
template<typename T >
void gsWriteParaviewTrimmedCurve (const gsTrimSurface< T > &surf, const unsigned idLoop, const unsigned idCurve, const std::string fn, unsigned npts=NS)
 Export a boundary/hole curve in trimmed surface. More...
 
template<typename T >
gsVector< T > HornerEval (gsMatrix< T > &mat, T num)
 
template<typename T >
HornerEvalPoly (const gsVector< T > &vec, T num)
 evaluates a gsVector (which represents the coefficients of a polynomial) at value num
 
template<typename Derived >
bool isfinite (const gsEigen::MatrixBase< Derived > &x)
 Check if all the entires if the matrix x are not INF (infinite) More...
 
template<typename Derived >
bool() isnumber (const gsEigen::MatrixBase< Derived > &x)
 Check if all the entires if the matrix x are not NAN (not a number) More...
 
void makeCollection (std::string const &fn, std::string const &ext, int n=0)
 
template<typename T >
bool makeHierarchicalMesh (const gsBasis< T > &basis, std::vector< gsMesh< T > > &meshes, int n=0)
 
template<class T , class iterator >
gsMatrix< T > makeMatrix (iterator it, index_t n, index_t m)
 Utility to make a matrix out of an iterator to values.
 
template<class T >
void makeMesh (const gsBasis< T > &basis, gsMesh< T > &mesh, int n=0)
 Returns the computational mesh of basis. More...
 
template<class Vec >
bool nextCombination (Vec &v, const unsigned n)
 Computes the next r-combination of {0,..,n-1}, where r = v.size(). The input v is expected to be a valid combination.
 
template<class Vec >
bool nextComposition (Vec &v)
 Returns (inplace) the next composition in lexicographic order.
 
template<class Vec >
bool nextCubeBoundary (Vec &cur, const Vec &start, const Vec &end)
 Iterates in lex-order through the boundary points of the cube [start,end]. Updates cur with the current point and returns true if another point is available. Cube may be degenerate.
 
template<class Vec >
bool nextCubeBoundaryOffset (Vec &cur, const Vec &start, const Vec &end, Vec &offset)
 Iterates in lex-order through the boundary points of the cube [start,end], with an \ offset to the interior. Updates cur with the current point and returns true if another point is available. Cube may be degenerate.
 
template<class Vec >
bool nextCubeBoundaryOffset (Vec &cur, const Vec &start, const Vec &end, Vec &loffset, Vec &uoffset)
 Iterates in lex-order through the boundary points of the cube [start,end], with offset loffset from \ start and roffset .from the end. Updates cur with the current point and returns true if another point is available. Cube may be degenerate.
 
template<class Vec >
bool nextCubeElement (Vec &cur, const index_t k)
 Iterates in lexicographic order through the elements (faces) of dimension k of the cube [0,1]^d. Updates cur with the current element (face) and returns true if another element (face) of dimension k is available. Coordinates with value 2 indicate free/not-fixed dimensions.
 
template<class Vec >
bool nextCubePoint (Vec &cur, const Vec &end)
 Iterate in lexigographic order through the points of the integer lattice contained in the cube [0,end]. Updates cur with the current point and returns true if another point is available. Cube may be degenerate.
 
template<class Vec >
bool nextCubePoint (Vec &cur, const Vec &start, const Vec &end)
 Iterates in lexigographic order through the points of the integer lattice contained in the cube [start,end]. Updates cur with the current point and returns true if another point is available. Cube may be degenerate.
 
template<class Vec >
bool nextCubeVertex (Vec &cur, const Vec &start, const Vec &end)
 Iterate in lexicographic order through the vertices of the cube [start,end]. Updates cur with the current vertex and returns true if another vertex is available. Cube may be degenerate.
 
template<class Vec >
bool nextCubeVertex (Vec &cur, const Vec &end)
 Iterate in lexicographic order through the vertices of the cube [0,end]. Updates cur with the current vertex and returns true if another vertex is available. Cube may be degenerate.
 
template<class Vec >
bool nextCubeVertex (Vec &cur)
 Iterate in lexigographic order through the vertices of the unit cube. Updates cur with the lexicographically next vertex and returns true if another point is available. This is equivalent to iterating over all possible binary sequences of length cur.size(). The input cur is expected to contain only zeros and ones (or true/false).
 
template<class Vec >
bool nextLexicographic (Vec &cur, const Vec &size)
 Iterates through a tensor lattice with the given size. Updates cur and returns true if another entry was available End values (size) are not included in the enumerated points, as with iterators.
 
template<class Vec >
bool nextLexicographic (Vec &cur, const Vec &start, const Vec &end)
 Iterate through a tensor lattice with the given start and end points. end coordinates are not included in the enumerated points, as with iterators. Updates cur and returns true if another entry was available.
 
template<class Mat >
bool nextMultiComposition (Mat &m)
 Returns (inplace) the next multi-composition in lexicographic order. More...
 
template<class Vec >
bool nextPermutation (Vec &current)
 Changes current to the next lexicographically ordered permutation. More...
 
template<class T >
normL2 (gsMultiPatch< T > const &domain, gsMultiPatch< T > const &solution)
 @ Compute norm of the isogeometric solution
 
unsigned numCompositions (int sum, short_t dim)
 Number of compositions of sum into dim integers.
 
index_t numCubeElements (const index_t k, const index_t d)
 Returns the number of elements (faces) of dimension k of a d-cube.
 
template<class Vec >
unsigned numMultiCompositions (const Vec &a, index_t k)
 Number of multi-composition of a = (a_1,..,a_d) into k integers.
 
template<class T >
bool operator!= (gsVertex< T > const &lhs, gsVertex< T > const &rhs)
 
bool operator< (const gsOptionList::OptionListEntry &a, const gsOptionList::OptionListEntry &b)
 Objects of class gsOptionList::OptionListEntry can be ordered by label.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsDomain< T > &b)
 Print (as string) operator to be used by all derived classes.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsSolidHalfEdge< T > &me)
 Print (as string) operator to be used by all mesh elements.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsPointLoads< T > &pls)
 Print (as string)
 
std::ostream & operator<< (std::ostream &os, const gsSerialGroup &obj)
 Prints the group object as a string.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsSparseSolver< T > &b)
 Print (as string) operator for sparse solvers.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsPde< T > &pde)
 Print (as string) operator to be used by all derived classes.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsVSegment< T > a)
 Print (as string) operator.
 
std::ostream & operator<< (std::ostream &os, const boxSide &o)
 Print (as string) a box side.
 
std::ostream & operator<< (std::ostream &os, const gsSerialStatus &obj)
 Prints the status object as a string.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsCurveLoop< T > &b)
 Print (as string) operator to be used by all derived classes.
 
std::ostream & operator<< (std::ostream &os, patchSide const &i)
 Print (as string) a patch side.
 
std::ostream & operator<< (std::ostream &os, const gsSerialRequest &obj)
 Prints the request object as a string.
 
std::ostream & operator<< (std::ostream &os, const gsOptionList &b)
 Objects of class gsOptionList can be printed using the standard io-streams.
 
std::ostream & operator<< (std::ostream &os, const gsOptionList::OptionListEntry &b)
 Objects of class gsOptionList::OptionListEntry can be printed using the standard io-streams.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsField< T > &b)
 Print (as string) operator to be used by all derived classes.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsFunction< T > &b)
 Print (as string) operator to be used by all derived classes.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsMultiPatch< T > &b)
 Print (as string) a multipatch structure.
 
std::ostream & operator<< (std::ostream &os, const gsJITCompilerConfig &c)
 Print (as string) operator to be used by all derived classes.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsFunctionSet< T > &b)
 Print (as string) operator to be used by all derived classes.
 
std::ostream & operator<< (std::ostream &os, const gsDofMapper &b)
 Print (as string) a dofmapper structure.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsGeometry< T > &b)
 Print (as string) operator to be used by all derived classes.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsTemplate< T > &b)
 Print (as string) a template.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsMultiBasis< T > &b)
 Print (as string) a multibasis structure.
 
std::ostream & operator<< (std::ostream &os, const gsJITCompiler &c)
 Print (as string) operator to be used by all derived classes.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const gsBoundaryConditions< T > &bvp)
 Print (as string)
 
std::ostream & operator<< (std::ostream &os, const boundaryInterface &i)
 Print (as string) an interface. More...
 
template<class T >
bool operator== (gsVertex< T > const &lhs, gsVertex< T > const &rhs)
 
template<class T >
bool operator> (gsVertex< T > const &lhs, gsVertex< T > const &rhs)
 
template<class T >
gsMatrix< T > optQuadratic (gsMatrix< T > const &A, gsMatrix< T > const &b, gsMatrix< T > const &C, gsMatrix< T > const &d)
 Find X which solves: min (AX-b)^T (AX-b), s.t. CX=d.
 
template<class T >
gsMatrix< T > optQuadratic (gsMatrix< T > const &A1, gsMatrix< T > const &b1, T const &w1, gsMatrix< T > const &A2, gsMatrix< T > const &b2, T const &w2, gsMatrix< T > const &C, gsMatrix< T > const &d)
 Find X which solves: min w_1 (A_1 X-b_1)^T (A_1 X-b_1) + w_2 (A_2 X-b_2)^T (A_2 X-b_2), s.t. CX=d.
 
template<class T >
gsMatrix< T > optQuadratic (gsMatrix< T > const &A1, gsMatrix< T > const &b1, T const &w1, gsMatrix< T > const &A2, gsMatrix< T > const &b2, T const &w2, gsMatrix< T > const &C, gsMatrix< T > const &d, T const &w3, gsMatrix< T > const &Q)
 
GISMO_DEPRECATED bool parameter (int s)
 Returns the parameter value (false=0=start, true=1=end) that corresponds to side s. More...
 
template<class T >
patchLength (const gsGeometry< T > &geo, short_t dir=0)
 compute length of a patch in a given parametric direction as a mean of all boundary edges corresponding to this direction
 
template<typename T , int d>
void permuteTensorVector (const gsVector< index_t, d > &perm, gsVector< index_t, d > &sz, gsMatrix< T > &coefs)
 
template<class T >
void plotDeformation (const gsMultiPatch< T > &initDomain, const std::vector< gsMultiPatch< T > > &displacements, std::string fileName, index_t numSamplingPoints=10000)
 
template<class T >
void plotDeformation (const gsMultiPatch< T > &initDomain, const gsMultiPatch< T > &displacement, std::string const &fileName, gsParaviewCollection &collection, index_t step)
 plot a deformed isogeometric mesh and add it to a Paraview collection
 
template<class T >
void plotGeometry (gsMultiPatch< T > const &domain, std::string fileName, index_t numSamples)
 Plots the mesh and the jacobian (if <numSamples> > 0) to Paraview.
 
template<class T >
void plotGeometry (const gsMultiPatch< T > &domain, std::string const &fileName, gsParaviewCollection &collection, index_t step)
 plot an isogeometric mesh and add to collection
 
template<typename T >
gsMonomialPoly< T > PolyDerivWithSameDegree (const gsMonomialPoly< T > &poly)
 
template<typename T >
gsMonomialPoly< T > PolyDivision (const gsMonomialPoly< T > &dividendPoly, const gsMonomialPoly< T > &divisorPoly, int num)
 
template<class T >
void removeCol (gsMatrix< T > &mat, int const &removeEnds, int const &nPoints)
 remove columes 0, nPoints, 2*nPoints,.. of a given matrix
 
template<typename T >
void RootIsolation (T leftBound, T rightBound, T eps, gsMatrix< T > &sturmSeq, gsMatrix< T > &rootIntervals)
 Algorithm for the isolation of the roots.
 
template<typename T >
gsVector< T > ShiftRight (const gsVector< T > &vec, int num)
 
int sideOrientation (short_t s)
 
template<class T >
gsGeometry< T >::uPtr simplifyCurve (gsGeometry< T > const &curve, index_t additionalPoints=0, index_t degree=0, index_t numSamples=1000)
 generates a simplified curve by fitting with the coarsest basis of the same degree; then reparametrizes it using the basis of the original curve; <additionalPoints> increases the number of degrees of freedom; <numSamples> is a number of sampling points for reparametrization
 
template<typename T >
gsMatrix< T > SortRoots (gsMatrix< T > &unsort)
 
void stringReplace (std::string &str, const std::string &oldStr, const std::string &newStr)
 An univariate polynomial in monomial basis. More...
 
template<typename T >
gsMatrix< T > SturmSequence (gsMonomialPoly< T > &poly)
 returns the sturm sequence in a gsMatrix
 
template<typename T , int d>
void swapTensorDirection (int k1, int k2, gsVector< index_t, d > &sz, gsMatrix< T > &coefs)
 
template<short_t d, typename T >
void tensorCombineTransferMatrices (gsSparseMatrix< T, RowMajor > B[d], gsSparseMatrix< T, RowMajor > &transfer)
 Combine component-wise transfer matrices into a transfer matrix for the tensor product basis. More...
 
template<typename VectIn , typename VectOut >
void tensorStrides (const VectIn &sz, VectOut &strides)
 Helper to compute the strides of a d-tensor.
 
template<typename T >
gsMatrix< T > uniformPointGrid (const gsVector< T > &lower, const gsVector< T > &upper, int numPoints=1000)
 
template<class T >
gsVector< T > vectorIntersect (gsVector< T > const &tangent1, gsVector< T > const &tangent2, gsMatrix< T > const &Vert1, gsMatrix< T > const &Vert2)
 intersection of two vectors
 
void verboseLog (const std::string &message, const index_t &verbose)
 helper function to set optimizer options More...
 
template<class T >
void writeSingleBasisMesh (const gsBasis< T > &basis, std::string const &fn)
 Export a parametric mesh.
 
template<class T >
void writeSingleCompMesh (const gsBasis< T > &basis, const gsGeometry< T > &Geo, std::string const &fn, unsigned resolution=8)
 Export a computational mesh.
 
template<class T >
void writeSingleControlNet (const gsGeometry< T > &Geo, std::string const &fn)
 Export a control net.
 
template<class T >
void writeSingleCurve (gsFunction< T > const &func, gsMatrix< T > const &supp, std::string const &fn, unsigned npts)
 Export a curve geometry represented by func.
 
template<class T >
void writeSingleGeometry (gsFunction< T > const &func, gsMatrix< T > const &supp, std::string const &fn, unsigned npts)
 Export a geometry represented by func.
 
template<class T >
void writeSingleHBox (gsHBox< 2, T > &box, std::string const &fn)
 Export a gsHBox. More...
 
template<class T >
void writeSinglePatchField (const gsField< T > &field, int patchNr, std::string const &fn, unsigned npts)
 Write a file containing a solution field over a single geometry.
 
 ~gsMpi ()
 calls MPI_Finalize
 

Detailed Description

The G+Smo namespace, containing all definitions for the library.

[Include namespace]

The generic geometry class represents a function defined as coefficients times basis function defined in a basis.

Note
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

This is a generic implementation with minimal functionality. For common geometry types (B-splines, tensor-product B-splines, hierarchical splines) specific classes are implemented, which provide additional functionalities.

Typedef Documentation

typedef gsEigen::PermutationMatrix<Dynamic,Dynamic,index_t> gsPermutationMatrix

reorderMapperTarget permutes the target indices of mapper according to permutation. If permutation does not contain all indices then the order of the remaining indices is preserved and the specified indices are appended to the end.

   If an index is repeated in permutation the behaviour is unspecified
   and can change in the future because of implementation changes.
Parameters
mapper
permutation
permMatrix: if specified, the pointed to matrix is the permutation matrix
Returns
the position of the first specified index

Enumeration Type Documentation

Specifies aliases describing the modes for gismo::gsGridIterator.

Enumerator
CUBE 

Cube mode iterates over all lattice points inside a cube.

BDR 

Boundary mode iterates over boundary lattice points only.

VERTEX 

Vertex mode iterates over cube vertices only.

CWISE 

Coordinate-wise mode iterates over a grid given by coordinate vectors.

enum gsNeedEnum

Enumeration flags which define the needs of an evaluation object.

Enumerator
NEED_VALUE 

Value of the object.

NEED_DERIV 

Gradient of the object.

NEED_JACOBIAN 

Jacobian of the object.

NEED_MEASURE 

The density of the measure pull back.

NEED_GRAD_TRANSFORM 

Gradient transformation matrix.

NEED_DIV 

Div operator.

NEED_CURL 

Curl operator.

NEED_DERIV2 

Second derivatives.

NEED_HESSIAN 

Hessian matrix.

NEED_LAPLACIAN 

Laplacian.

NEED_ACTIVE 

Active function ids.

NEED_NORMAL 

Normal vector of the object.

NEED_OUTER_NORMAL 

Outward normal on the boundary.

NEED_2ND_FFORM 

Second fundamental form.

SAME_ELEMENT 

Enable optimizations based on the assumption that all evaluation points are in the same bezier domain.

enum gsStatus
strong
Enumerator
Success 

Successful.

NotConverged 

Step did not converge.

AssemblyError 

Assembly problem in step.

SolverError 

Assembly problem in step.

NotStarted 

ALM has not started yet.

OtherError 

Other error.

Specifies the status of the iterative solver.

Enumerator
interrupted 

method successfully converged

working 

solver was interrupted after exceeding the limit of iterations

bad_solution 

solver working

Enumerator
Success 

Assembly is successful.

AssemblyError 

Assembly failed due to an error in the expression (e.g. overflow)

DimensionError 

Assembly failed due to a dimension error.

Function Documentation

gsMatrix<T> gismo::CalcIntervals ( const gsMonomialPoly< T > &  poly,
eps,
gsMatrix< T >  rootIntervals 
)

calculates the sturm sequence and the boundaries and calls then the function RootIsolation

gsWeightMapper< T > * combineMappers ( const std::vector< gsWeightMapper< T > * > &  mappers,
std::vector< index_t > &  shifts,
bool  needShifting = true 
)

combineMappers Given a set of mappers it creates a new mapper that combines all. It can be used to construct a global mapper for the cartesian product of spaces or to map both unknown and test space.

Parameters
mappers
shifts,isa vector containing the shift of source indices for each space applied in the use of this mapper.
shift,iftrue the target indices of each spaces are shifted (this is the default). This is the case of representing the cartesian product of spaces. If false the target indices are preserved; this is needed to share the same mapper for both unknown and test spaces.
T gismo::conditionedAngle ( gsVector3d< T >  vec1,
gsVector3d< T >  vec2,
gsVector3d< T >  normal 
)

Angle between two vector when viewing from a given normal vector (the angle can be more than pi)

void constructCoefsForSlice ( index_t  dir_fixed,
const index_t  index,
const gsMatrix< T > &  fullCoefs,
const gsVector< index_t, d > &  sizes,
gsMatrix< T > &  result 
)

Helper function for the slice function selects the row of coefficients from coefficients of geo that are suitable for the isoparametric slice in dir_fixed with par. Note that geo has to have already C^0 continuity at par in direction dir.

gsVector<T> gismo::criticalPointOfQuadratic ( gsMatrix< T > &  A,
gsMatrix< T > &  C,
gsVector< T > &  d 
)

Find a critical point of a quadratic X^T A X subject to a linear constraint C X = d.

gsMatrix<T> gismo::criticalPointOfQuadratic ( gsMatrix< T > const &  A,
gsMatrix< T > const &  b,
gsMatrix< T > const &  C,
gsMatrix< T > const &  d 
)

Find a critical point of a quadratic X^T A X + bX + c subject to a linear constraint C X = d.

gsMatrix<T> gismo::criticalPointOfQuadratic ( gsMatrix< T > const &  A,
gsMatrix< T > const &  C,
gsMatrix< T > const &  d 
)

Find a critical point of a quadratic X^T A X subject to a linear constraint C X = d.

gsMatrix<T> gismo::crossNorm2Mat ( gsMatrix< T > const &  mat1,
gsMatrix< T > const &  mat2 
)

cross product of each pair of columes of two matrices and normalize each columes

GISMO_DEPRECATED index_t gismo::direction ( index_t  s)
inline

Returns the parametric direction that corresponds to side s.

Parameters
[in]sinteger corresponding to a boundary side
Returns
Integer which says which parameter has to be fixed in order to get the boundary.

Example:
In 2D, let the parameter domain be defined by \((u,v)\in [0,1]^2\). Since the side with index 3 corresponds to "south", i.e. to \( \{ (u,v):\ v = 0 \} \), calling parameter(3) will return 1, because v (i.e., parameter direction with index 1) is fixed/set to zero.
use boxSide struct instead of enumerated values

gsMatrix<T> gismo::FindRootIntervals ( gsMonomialPoly< T > &  poly,
eps 
)

entry function needs a polynomial and a boundary eps as an input and returns a sorted matrix, where the intervals of the real roots are stored

gsGeometry< T >::uPtr genCircle ( index_t  deg,
index_t  num,
radius = 1.,
x0 = 0.,
y0 = 0.,
angle0 = 0.,
arcAngle = 2*EIGEN_PI 
)

generates a uniformly parametrized circular arc with a B-spline basis; generates a closed circle if <arcAngle> is 2pi

gsGeometry< T >::uPtr genCircle ( gsBasis< T > &  basis,
radius = 1.,
x0 = 0.,
y0 = 0.,
angle0 = 0.,
arcAngle = 2*EIGEN_PI 
)

generates a uniformly parametrized circular arc with a given basis; generates a closed circle if <arcAngle> is 2pi

gsGeometry< T >::uPtr genLine ( index_t  deg,
index_t  num,
gsMatrix< T > const &  A,
gsMatrix< T > const &  B,
index_t  iA = 0,
index_t  iB = 0 
)

generates a uniformly parametrized straight line with a B-spline basis; end points are given as ROWS of matrices

gsGeometry< T >::uPtr genPatchInterpolation ( gsGeometry< T > const &  A,
gsGeometry< T > const &  B,
index_t  deg,
index_t  num,
bool  xiDir = false 
)

generates a tensor product B-spline patch by interpolating between the two given B-spline patches of a dimension one lower; in 2D case, interpolates in eta/south-north direction by default; in 3D case, always interpolates in the third direction/front-back

S gismo::give ( S &  x)
inline

Alias for std::move, to be used instead of std::move for backward c++98 compatibility and MSVC before 2015

Based on swapping and copy elision.

bool gismo::gsAllCloseAbsolute ( const matrix_t1 &  a,
const matrix_t2 &  b,
const typename matrix_t1::Scalar &  tol 
)
inline

tests if the difference between two matrices is bounded by tol in \( L^\infty \) norm

The tolerance is absolute, therefore independent of the matrix entries.

bool gismo::gsAllCloseRelAndAbsWithRef ( const matrix_t1 &  a,
const matrix_t2 &  b,
const typename matrix_t1::Scalar &  tol,
const typename matrix_t1::Scalar &  ref 
)
inline

Tests whether the difference between two matrices is bounded by tol in \( L^\infty \) norm.

The tolerance is absolute below the reference, but relative for bigger numbers.

bool gismo::gsAllCloseRelativeToMax ( const matrix_t1 &  a,
const matrix_t2 &  b,
const typename matrix_t1::Scalar &  tol 
)
inline

tests if the difference between two matrices is bounded by tol in \( L^\infty \) norm

The tolerance is relative to maximum absolute values of the entries of the matrices.

void gsBoehmRefine ( KnotVectorType &  knots,
Mat &  coefs,
int  p,
ValIt  valBegin,
ValIt  valEnd,
bool  update_knots = true 
)

Performs knot refinement on "knots" and coefficients "coefs", by adding new knots vals NURBS book p.165 modified

void gsBoehmSingle ( iter  knot,
Mat &  coefs,
int  p,
val 
)

Performs knot insertion once on "knots" and coefficients "coefs". Iter points to the first affected knot (ie. knot is the result of findspan)

void gismo::gsDeboor ( const gsMatrix< T > &  u,
const KnotVectorType &  knots,
int  deg,
const gsMatrix< T > &  coefs,
gsMatrix< T > &  result 
)
inline

Executes deBoor's algorithm on the absissae (row vector) u, knot vector knots, degree deg and coefficients matrix coefs

void gismo::gsDeboorDeriv ( const gsMatrix< T > &  u,
const KnotVectorType &  knots,
int  deg,
const gsMatrix< T > &  coefs,
gsMatrix< T > &  result 
)
inline

Executes deBoor's algorithm on the absissae (row vector) u, for the derivative of the B-spline defined by knot vector knots, degree deg and coefficients matrix coefs

gsBSpline<T> gismo::gsInterpolate ( gsKnotVector< T > &  kv,
const gsMatrix< T > &  preImage,
const gsMatrix< T > &  image,
const gsMatrix< T > &  preNormal,
const gsMatrix< T > &  normal,
const gsMatrix< T > &  preImageApp,
const gsMatrix< T > &  imageApp,
T const &  w_reg,
T const &  w_app,
gsMatrix< T > &  outPointResiduals,
gsMatrix< T > &  outNormalResiduals 
)

Interpolation with standard smoothing. TODO1: make the output as gsGeometry, gsBSpline for now; also use gsBasis as input TODO2: there should a different weight for approximating normal: w_nor Size of input matrices: each colummn represents a geometry point.

gsTensorBSpline<2,T>::Ptr gismo::gsInterpolateSurface ( const gsMatrix< T > &  exactPoints,
const gsMatrix< T > &  exactValues,
const gsMatrix< T > &  appxPointsEdges,
const gsMatrix< T > &  appxValuesEdges,
const gsMatrix< T > &  appxPointsInt,
const gsMatrix< T > &  appxValuesInt,
const gsMatrix< T > &  appxNormalPoints,
const gsMatrix< T > &  appxNormals,
wEdge,
wInt,
wNormal,
wReg,
const gsKnotVector< T > &  kv1,
const gsKnotVector< T > &  kv2,
bool  force_normal 
)

Create a surface (as a tensor product B-spline) satisfying conditions: The evaluation of the surface at the columns of exactPoints are constrained to equal the columns of exactValues. The evaluation at the columns of appxPointsEdges (resp appxPointsInt) should be approximately equal to the columns of appxValuesEdges (resp appxValuesInt) with weighting wEdge (resp wInt). The normals to the surface, evaluated at the columns of appxNormalPoints, should be approximately equal to the columns of appxNormals with weighting wNormal. Finally you can add a weighting wReg for the regularity of the surface. The parameter force_normal is for a special case; typically it should be set to false.

bool gismo::gsIsfinite ( a)

Check if a flaoting point number is different than INF

See https://en.wikipedia.org/wiki/Floating_point#Special_values

bool gismo::gsIsnumber ( a)

Check if a floating point number is different than NAN (not a number)

See https://en.wikipedia.org/wiki/Floating_point#Special_values and https://en.wikipedia.org/wiki/NaN

gsMatrix<T> gismo::gsPointGrid ( gsMatrix< T > const &  ab,
int  numPoints 
)
inline

Returns an approximately uniformly spaced grid in every direction, with approximately numPoints total points.

Each column of the result correspond to a point.

void gismo::gsPointGrid ( CwiseContainer const &  cwise,
gsMatrix< T > &  res 
)
inline

Construct a grid of points by coordinate vectors in the container cwise, use out argument res

void gismo::gsTraceCurvePart ( std::pair< gsFunction< T > *, gsFunction< T > * > &  map,
gsMatrix< T > const &  x,
gsBSpline< T > *  bs,
t0,
t1,
gsMatrix< T > &  result,
const int  n_points = 50,
const T  tolerance = 0.0001 
)
Parameters
mapis a planar map given by two component functions,
x,:point in the planar domain, should correspond to pre image (via map) to the middle point of bs.
bsis the curve you want to trace
t0and...
t1parametric values, they represent the interval you want to discretize
resultstores resulting points
n_pointsis the number of points you want to trace per curve
tolerance
void gismo::gsWriteGoTools ( const gsGeometry< T > &  geom,
const std::string &  fileName 
)

Writes geometry in GoTools (.g2) format to a file.

Parameters
geomgeometry
fileNameoutput file name
void gismo::gsWriteGoTools ( const gsGeometry< T > &  geom,
std::ofstream &  out 
)

Writes geometry in GoTools (.g2) format to a file.

Parameters
geomgeometry
outfile stream
void gismo::gsWriteGoTools ( const gsMultiPatch< T > &  multiPatch,
const std::string &  fileName 
)

Writes multi patch in GoTools (.g2) format to a file.

Parameters
multiPatchmulti patch
fileNameoutput file name
void gismo::gsWriteGoToolsSpline ( const gsTensorBSpline< d, T > &  bspl,
std::ofstream &  out 
)

Writes bspline in GoTools (.g2) format to a file.

Parameters
bspltensor B-Spline
outfile stream
void gsWriteParaview ( gsMappedSpline< 2, T > const &  mspline,
std::string const &  fn,
unsigned  npts = NS 
)

Writes a gsMappedSpline geometry.

Write a file containing a solution field over a geometry.

Parameters
msplineThe mapped spline
fnThe filename
[in]nptsThe number of sampling points
void gsWriteParaview ( gsMultiPatch< T > const &  mp,
gsMultiBasis< T > const &  mb,
std::string const &  fn,
unsigned  npts = NS 
)

Plot the basis functions of a multi-basis.

Export basis functions.

Parameters
mpA multi-patch geometry to plot the basis on
mbThe multi-basis
fnThe file name
[in]nptsThe number of points
void gsWriteParaview ( gsFunctionSet< T > const &  geom,
gsMappedBasis< 2, T > const &  mbasis,
std::string const &  fn,
unsigned  npts = NS,
const bool  fullsupport = false,
const std::vector< index_t indices = std::vector<index_t>() 
)

Writes a gsMappedBasis over a gsMappedSpline geometry.

Write a file containing a solution field over a geometry.

Parameters
msplineThe mapped spline
mbasisThe mapped basis
fnThe filename
fullsupportPlot the basis over the whole domain
indicesBasis functions to be plotted
[in]nptsThe number of sampling points
void gsWriteParaview ( gsMesh< T > const &  sl,
std::string const &  fn,
const gsMatrix< T > &  params 
)

Export a mesh to paraview file.

Parameters
sla gsMesh object
fnfilename where paraview file is written
pvdif true, a .pvd file is generated (for compatibility) Exports a parametrized mesh.
void gsWriteParaview ( const std::vector< gsMesh< T > > &  meshes,
std::string const &  fn 
)

Export a vector of meshes, each mesh in its own file.

Parameters
meshesvector of gsMesh objects
fnfilename
void gsWriteParaview ( const gsField< T > &  field,
std::string const &  fn,
unsigned  npts = NS,
bool  mesh = false,
const std::string  pDelim = "" 
)

Write a file containing a solution field (as color on its geometry) to paraview file.

Write a file containing a solution field over a geometry.

Parameters
fielda field object
fnfilename where paraview file is written
nptsnumber of points used for sampling each patch
meshif true, the parameter mesh is plotted as well
pDelimis the delimiter that is used to separate fn from the patch index
void gsWriteParaview ( gsFunctionSet< T > const &  geo,
gsFunctionSet< T > const &  func,
std::string const &  fn,
unsigned  npts = NS,
const std::string  pDelim = "" 
)

Write a file containing a solution func (as color on its geometry geo), defined using functionsets, to paraview file.

Write a file containing a solution field over a geometry.

Parameters
funca gsFunctionSet representing the function to be plotted
geoa gsFunctionSet representing the geometry to be plotted
fnfilename where paraview file is written
nptsnumber of points used for sampling each patch
void gismo::gsWriteParaview ( const gsMultiPatch< T > &  Geo,
std::string const &  fn,
unsigned  npts = NS,
bool  mesh = false,
bool  ctrlNet = false,
const std::string  pDelim = "_" 
)

Export a multipatch Geometry (without scalar information) to paraview file.

Parameters
Geoa multipatch object
fnfilename where paraview file is written
nptsnumber of points used for sampling each patch
meshif true, the parameter mesh is plotted as well
ctrlNetif true, the control net is plotted as well
void gsWriteParaview ( std::vector< gsGeometry< T > * > const &  Geo,
std::string const &  fn,
unsigned  npts = NS,
bool  mesh = false,
bool  ctrlNet = false,
const std::string  pDelim = "_" 
)

Export a multipatch Geometry (without scalar information) to paraview file.

Export a multipatch Geometry without scalar information.

Parameters
Geoa vector of the geometries to be plotted
fnfilename where paraview file is written
nptsnumber of points used for sampling each geometry
meshif true, the parameter mesh is plotted as well
ctrlNetif true, the control net is plotted as well
void gsWriteParaview ( const gsGeometrySlice< T > &  Geo,
std::string const &  fn,
unsigned  npts = NS 
)

Export a Geometry slice to paraview file.

Export a Geometry without scalar information.

Parameters
Geoa gsGeometrySlice
fnfilename where paraview file is written
nptsnumber of points used for sampling each curve
void gsWriteParaview ( gsFunctionSet< T > const &  func,
std::string const &  fn,
unsigned  npts = NS 
)

Export a functionSet plot to paraview file.

Parameters
funca functionSet object
fnfilename where paraview file is written
nptsnumber of points used for sampling the domain
void gsWriteParaview ( gsFunction< T > const &  func,
gsMatrix< T > const &  supp,
std::string const &  fn,
unsigned  npts = NS,
bool  graph = true 
)

Export a function plot to paraview file.

Export a function.

Parameters
funca function object
suppa matrix with two columns defining (lower and upper corner of) a box: this is the domain over which we shall evaluate the function, after sampling
fnfilename where paraview file is written
nptsnumber of points used for sampling the domain
void gsWriteParaview ( gsBasis< T > const &  basis,
std::string const &  fn,
unsigned  npts = NS,
bool  mesh = false 
)

Export Basis functions to paraview files.

Export Basis functions.

Parameters
basisa basis object
fnfilename where paraview file is written
nptsnumber of points used for sampling each curve
meshif true, the parameter mesh is plotted as well
void gsWriteParaview ( gsHBox< 2, T > &  box,
std::string const &  fn 
)

Export gsHBox to paraview files.

Writes a single gsHBox box to a file with name fn.

Parameters
basisa basis object
fnfilename where paraview file is written
nptsnumber of points used for sampling each curve
meshif true, the parameter mesh is plotted as well
void gsWriteParaview ( gsHBoxContainer< 2, T > &  box,
std::string const &  fn 
)

Export gsHBox to paraview files.

Writes a container of gsHBox , i.e. a boxes, to a file with name fn.

Parameters
basisa basis object
fnfilename where paraview file is written
nptsnumber of points used for sampling each curve
meshif true, the parameter mesh is plotted as well
void gsWriteParaview ( gsSolid< T > const &  sl,
std::string const &  fn,
unsigned  numPoints_for_eachCurve = 50,
int  vol_Num = 0,
edgeThick = 0.01,
gsVector3d< T > const &  translate = gsVector3d<T>(0,0,0),
int  color_convex = 0,
int  color_nonconvex = 20,
int  color_eloop = 10,
std::vector< unsigned > const &  eloop = std::vector<unsigned>() 
)

Export tensor-structured point set with field data to Paraview file.

Parameters
pointsmatrix that contain 2D or 3D points, points are columns
data
np
fnfilename where paraview file is written Depicting edge graph of each volume of one gsSolid with a segmenting loop
sla gsMesh object
fnfilename where paraview file is written
numPoints_for_eachCurvenumber of points used for sampling each curve
vol_NumID of face(s), that should be written
edgeThickthickness of edges
translate"translate" vector, toward the volume is translated
color_convexColor, if face is convex and not eloop.
color_nonconvexColor, if face is not convex
color_eloopColor, if is in heSet and convex
eloopa vector of ID numbers of vertices, often for representing a segmenting loop
Todo:
please document

Number of vertices and number of faces

Coordinates of vertices

Scalar field attached to each degenerate face on the "edge"

limit: for now, assign all scalars to 0

Which vertices belong to which faces

Space between edges

Number of vertices and number of faces

Coordinates of vertices

Scalar field attached to each degenerate face on the "edge"

limit: for now, assign all scalars to 0

Which vertices belong to which faces

Space between edges

void gismo::gsWriteParaview ( gsCurveLoop< T > const &  cloop,
std::string const &  fn,
unsigned  npts 
)

Visualizing a gsCurveLoop.

Parameters
cloopthe curve loop
fnfilename where paraview file is written
nptsnumber of points used for sampling each curve
void gsWriteParaview ( gsPlanarDomain< T > const &  pdomain,
std::string const &  fn,
unsigned  npts = NS 
)

Visualizing a gsPlanarDomain.

Parameters
pdomainthe planar domain
fnfilename where paraview file is written
nptsnumber of points used for sampling
void gsWriteParaview ( const gsVolumeBlock< T > &  volBlock,
std::string const &  fn,
unsigned  npts = NS 
)

Export a volumeBlock.

Currently: output file shows boundary curves of this block.

Parameters
volBlockpointer to the volume block
fnfilename where paraview file is written
nptsnumber of points used for sampling of a curve
void gsWriteParaview ( gsMultiPatch< T > const &  patches,
typename gsBoundaryConditions< T >::bcContainer const &  bcs,
std::string const &  fn,
unsigned  npts = NS,
bool  ctrlNet = false 
)

Visualizing boundary conditions.

Parameters
pdomainthe planar domain
fnfilename where paraview file is written
nptsnumber of points used for sampling
void gismo::gsWriteParaview ( gsMesh< T > const &  sl,
std::string const &  fn,
bool  pvd 
)

Visualizing a mesh.

Number of vertices and number of faces

Coordinates of vertices

Which vertices belong to which faces

void gsWriteParaview_basisFnct ( int  i,
gsBasis< T > const &  basis,
std::string const &  fn,
unsigned  npts = NS 
)

Export i-th Basis function to paraview file.

Export i-th Basis function.

Parameters
iindex of a basis function
basisa basis object
fnfilename where paraview file is written
nptsnumber of points used for sampling each curve
void gsWriteParaviewBdr ( gsMultiPatch< T > const &  patches,
std::string const &  fn,
unsigned  npts,
bool  ctrlNet 
)

Writes the boundaries of a multipatch to paraview.

Parameters
patchesThe patches
fnThe filename
[in]nptsThe number of sampling points per boundary
[in]ctrlNetPlot the control net
void gsWriteParaviewIfc ( gsMultiPatch< T > const &  patches,
std::string const &  fn,
unsigned  npts,
bool  ctrlNet 
)

Writes the interfaces of a multipatch to paraview.

Parameters
patchesThe patches
fnThe filename
[in]nptsThe number of sampling points per interface
[in]ctrlNetPlot the control net
void gsWriteParaviewMultiPhysics ( std::map< std::string, const gsField< T > * >  fields,
std::string const &  fn,
unsigned  npts = NS,
bool  mesh = false,
bool  ctrlNet = false 
)

Write a file containing several fields defined on the same geometry to ONE paraview file.

Parameters
fieldsa map of field pointers
fnfilename where paraview file is written
nptsnumber of points used for sampling each patch
meshif true, the parameter mesh is plotted as well
void gsWriteParaviewMultiPhysicsSinglePatch ( std::map< std::string, const gsField< T > * >  fields,
const unsigned  patchNum,
std::string const &  fn,
unsigned  npts 
)

Extract and evaluate geometry and the fields for a single patch.

Parameters
fieldsa map of field pointers
patchNuma number of patch
fnfilename where paraview file is written
nptsnumber of points used for sampling each patch
void gsWriteParaviewMultiPhysicsTimeStep ( std::map< std::string, const gsField< T > * >  fields,
std::string const &  fn,
gsParaviewCollection &  collection,
int  time,
unsigned  npts = NS 
)

Write a file containing several fields defined on the same geometry to ONE paraview file and adds it as a timestep to a Paraview collection.

Parameters
fieldsa map of field pointers
fnfilename where paraview file is written
nptsnumber of points used for sampling each patch
meshif true, the parameter mesh is plotted as well
void gsWriteParaviewMultiTPgrid ( gsMatrix< T > const &  points,
std::map< std::string, gsMatrix< T > > &  data,
const gsVector< index_t > &  np,
std::string const &  fn 
)

Utility function to actually write prepaired matrices with data into Paraview file.

Parameters
pointsa matrix with space-points to plot
dataa map of matrices with field evaluations to plotfilename where paraview file is written
npa vector containg the data range info
fnfilename where paraview file is written
void gsWriteParaviewPoints ( gsMatrix< T > const &  X,
gsMatrix< T > const &  Y,
std::string const &  fn 
)

Export 2D Point set to Paraview file.

Export Point set to Paraview.

Parameters
X1 times n matrix of values for x direction
Y1 times n matrix of values for y direction
fnfilename where paraview file is written
void gsWriteParaviewPoints ( gsMatrix< T > const &  X,
gsMatrix< T > const &  Y,
gsMatrix< T > const &  Z,
std::string const &  fn 
)

Export 3D Point set to Paraview file.

Parameters
X1 times n matrix of values for x direction
Y1 times n matrix of values for y direction
Z1 times n matrix of values for z-direction
fnfilename where paraview file is written
void gsWriteParaviewPoints ( gsMatrix< T > const &  points,
std::string const &  fn 
)

Export Point set to Paraview file.

Parameters
pointsmatrix that contain 2D or 3D points, points are columns
fnfilename where paraview file is written
void gsWriteParaviewTrimmedCurve ( const gsTrimSurface< T > &  surf,
const unsigned  idLoop,
const unsigned  idCurve,
const std::string  fn,
unsigned  npts = NS 
)

Export a boundary/hole curve in trimmed surface.

Parameters
surftrimmed surface
idLoopcurve loop number of a curve (0 - boundary, > 0 - hole)
idCurvecurve number in a curve loop
fnfilename (output paraview file)
nptsnumber of points used for sampling a curve
gsVector<T> gismo::HornerEval ( gsMatrix< T > &  mat,
num 
)

in the input gsMatrix the polynomials are stored row by row with their coefficiens HornerEval returns a vector where the matrix is evaluated at position num

bool gismo::isfinite ( const gsEigen::MatrixBase< Derived > &  x)
inline

Check if all the entires if the matrix x are not INF (infinite)

See https://en.wikipedia.org/wiki/Floating_point#Special_values

bool() gismo::isnumber ( const gsEigen::MatrixBase< Derived > &  x)
inline

Check if all the entires if the matrix x are not NAN (not a number)

See https://en.wikipedia.org/wiki/Floating_point#Special_values and https://en.wikipedia.org/wiki/NaN

void gismo::makeCollection ( std::string const &  fn,
std::string const &  ext,
int  n = 0 
)
inline

Fast creation of a collection using base filename fn, extension ext. The collection will contain the files fn_0.ext, fn_1.ext,...,fn_{n-1}.ext In the special case of n=0, the collection is just fn.pvd and contains only the file fn.ext

bool gismo::makeHierarchicalMesh ( const gsBasis< T > &  basis,
std::vector< gsMesh< T > > &  meshes,
int  n = 0 
)

Constructs a series of meshes, each mesh presents on level in hierarchical basis.

Parameters
basishierarchocal tensor basis
mesheswe return meshes via reference to std::vector
nhow many vertices is used in presentation of one element
Returns
success of the function
void gismo::makeMesh ( const gsBasis< T > &  basis,
gsMesh< T > &  mesh,
int  n = 0 
)

Returns the computational mesh of basis.

Parameters
[in]basis
mesh
[in]nnumber of samples per element side
bool gismo::operator!= ( gsVertex< T > const &  lhs,
gsVertex< T > const &  rhs 
)

Compares to gsVertex

Parameters
lhsLHS gsVertex
rhsRHS gsVertex
Returns
true if LHS != RHS, false if LHS == RHS
std::ostream& gismo::operator<< ( std::ostream &  os,
const boundaryInterface &  i 
)
inline

Print (as string) an interface.

TODO: the information could be stored in a single vector of signed integers: the sign gives the orientation the problem is that it is necessary to shift the indices as there is no -0

bool gismo::operator== ( gsVertex< T > const &  lhs,
gsVertex< T > const &  rhs 
)

Compare LHS == RHS

Template Parameters
T
Parameters
lhs
rhs
Returns
bool gismo::operator> ( gsVertex< T > const &  lhs,
gsVertex< T > const &  rhs 
)

Compares LHS.x < RHS.X Compares first x, if equal y, if equal z.

Template Parameters
T
Parameters
lhs
rhs
Returns
true if lhs.x < rhs.x; lhs.x==rhs.x and lhs.y < rhs.y; lhs.x==rhs.x, lhs.y==rhs.y and lhs.z < rhs.z; false if lhs.x >= rhs.x and lhs.y >= rhs.y and lhs.z >= rhs.y
gsMatrix<T> gismo::optQuadratic ( gsMatrix< T > const &  A1,
gsMatrix< T > const &  b1,
T const &  w1,
gsMatrix< T > const &  A2,
gsMatrix< T > const &  b2,
T const &  w2,
gsMatrix< T > const &  C,
gsMatrix< T > const &  d,
T const &  w3,
gsMatrix< T > const &  Q 
)

Find X which solves: min w_1 (A_1 X-b_1)^T (A_1 X-b_1) + w_2 (A_2 X-b_2)^T (A_2 X-b_2) + w3 X'QX, s.t. CX=d

GISMO_DEPRECATED bool gismo::parameter ( int  s)
inline

Returns the parameter value (false=0=start, true=1=end) that corresponds to side s.

Parameters
[in]sinteger corresponding to a boundary side
Returns
false, if side s is defined by setting the corresponding parameter to 0, and
true, if it is defined by setting the corresponding parameter to 1.

Example:
In 2D, let the parameter domain be defined by \((u,v)\in [0,1]^2\). Since the side with index 3 corresponds to "south", i.e. to \( \{ (u,v):\ v = 0 \} \), calling parameter(3) will return 0=false.

use boxSide struct instead of enumerated values

void plotDeformation ( const gsMultiPatch< T > &  initDomain,
const std::vector< gsMultiPatch< T > > &  displacements,
std::string  fileName,
index_t  numSamplingPoints = 10000 
)

use all saved displacement fields to plot the all intermediate deformed configurations of the computational domain; always plots the deformed isoparametric mesh; plots the Jacobian determinant of the deformed configuration if numSamplingPoints > 0

gsMonomialPoly<T> gismo::PolyDerivWithSameDegree ( const gsMonomialPoly< T > &  poly)

Returns the derivation of the input polynomial including a leading 0, s.t. the output polynomial is of the same degree as the input polynomial

gsMonomialPoly<T> gismo::PolyDivision ( const gsMonomialPoly< T > &  dividendPoly,
const gsMonomialPoly< T > &  divisorPoly,
int  num 
)

Polynomial Division the input num dedicates if the quotient or the remainder is returned num = 1 returns the qoutient num = 2 returns the remainder

gsVector<T> gismo::ShiftRight ( const gsVector< T > &  vec,
int  num 
)

returns a gsVector where the elements are shifted "num"-spaces to the right the left side is filled with zeros

int gismo::sideOrientation ( short_t  s)
inline

Computes the orientation of the boundary side s with respect to the interior of the parameter domain. The result is either +1 (counter-clockwise) or -1 (clock-wise).

Parameters
sinteger corresponding to a boundary side
gsMatrix<T> gismo::SortRoots ( gsMatrix< T > &  unsort)

sorts the Matrix, where the roots are stored by their left bound and consolidates equal intervals

gsMatrix< T > uniformPointGrid ( const gsVector< T > &  lower,
const gsVector< T > &  upper,
int  numPoints = 1000 
)

Approximately uniformly spaced grid in every direction, with approximately numPoints total points

void gismo::verboseLog ( const std::string &  message,
const index_t verbose 
)

helper function to set optimizer options

helper function to verbose log

void writeSingleHBox ( gsHBox< 2, T > &  box,
std::string const &  fn 
)

Export a gsHBox.

Writes a single gsHBox box to a file with name fn.