Skip to content

Module IsogeometricModel

Georg Muntingh edited this page Aug 29, 2017 · 6 revisions

A block-structured model contains information about each block and the relation between adjacent blocks. This can be modelled using a SurfaceModel or a VolumeModel, depending on the spatial dimension. In an isogeometric context, these concepts have, however, two drawbacks:

  • An isogeometric model is a collection of isogometric blocks where each block consists of a NURBS surface or volume. A surface or volume model, as described in the modules CompositeModel and TrivariateModel, is a collection of surfaces or volumes. Currently the volume is a NURBS volume, but the possible volume types will be extended in the future. The surface can be an elementary surface or a NURBS surface. It can be trimmed or not. Moreover, there is no restriction on these models with respect to the object configuration. A corner-to-corner configuration may be represented, but more general configurations may also be represented. The SurfaceModel and VolumeModel concepts are, in fact, too flexible for being ideal for an isogeometric block-structured model.
  • Isogeometric analysis is concerned with a partial differential equation solved by finite element analysis, a physical domain represented by a geometric model and a solution to the equation. Following the isoparametric approach, both the domain and the solution field are represented using the same function space, namely the spline space. Moreover, the spline spaces of the geometry entity and one or more solutions related to that entity are the same up to a possible varying degree of refinement. Thus, a data structure that is able to combine a geometry entity and one or more corresponding solutions including boundary conditions, seems preferable.

The SurfaceModel and VolumeModel classes are not obsolete. They are valuable during the building of the model where an extended flexibility with regard to geometry types and topological configuration is needed. A more tailor-made data structure is feasible for the analysis phase.

The isogeometric_model module is designed to host a data structure for isogeometric block-structured surface- and volume models. The physical domain is modelled using the functionality related to SurfaceModel and VolumeModel, and the domain is represented using these classes. At the finishing stage of the modelling phase it is ensured that all geometric entities are described as NURBS entities and that the corner-to-corner configuration condition is satisfied. Then the model is ready for translation into an isogeometric model.

The data structure of the isogeometric model

The above figure illustrates the data structure of the isogeometric model. A model can be of either surface or volume type, i.e., an IsogeometricSfModel entity or an IsogeometricVolModel entity. A model entity points to at least one block represented by the classes IsogeometricSfBlock and IsogeometricVolBloc. The module takes a SurfaceModel or a VolumeModel entity as input, respectively, and distributes the content to a number of IsogeometricSfBlock or IsogeometricVolBlock entities. The blocks knows about their neighbours, at most 4 for surfaces and at most 6 for volumes. A block contains information about a number of solution entities related to the part of the physical domain represented in the block. Normally, there is one solution associated with a block, but there may be more. A solution has knowledge about boundary conditions and pointwise boundary conditions. These conditions are assigned to the models, and they are further distributed to the appropriate block and solution.

The various classes belonging to the isogeometric_model module provide an interface to the spline objects that is convenient when used in the setting of isogeometric analysis. It is for instance possible to:

  • Refine a solution space or perform degree elevation
  • Fetch information about neighbouring blocks given one block
  • Ensure that all adjacent solution spaces share the same spline space, to get correspondence of coefficients at the boundary
  • Fetch information about coefficient correspondence at block boundaries, using the local enumeration of coefficients within a block
  • Fetch information about coefficients belonging to the model boundaries, again using local enumeration
  • Store boundary conditions along with the corresponding geometry model for easy access to the condition
  • Assign Dirichlet boundary conditions to the model boundary representing the boundary condition in the spline space of the corresponding blocks
  • Perform pre evaluation, store the result and return the information as appropriate in order to utilize the tensor product structure of spline surfaces and volumes
  • Update the description of the physical domain when appropriate in for instance fluid structure interaction

Further some support functions may be beneficial; we need to build a global system of equations. We need to iterate over the model to enable this. We need to be able to map local variables to global variables in the algebraic system of equations. Numerical quadrature is at the core of this assembly process. The isogometric model keeps track of correspondence of local variables, i.e., spline coefficients, but does not perform any global enumeration. Numerical quadrature is supported by pre evaluation.

The IsogeometricModel structure is relatively static. Limited geometric updates can be performed from the application. No topological changes are allowed. The solutions fields are refined whenever the geometry entities are refined, but the geometry entities are refined with respect to the solution entities only when this is issued from the application.

Clone this wiki locally