sfepy.discrete.iga.domain_generators module

IGA domain generators.

sfepy.discrete.iga.domain_generators.create_from_igakit(inurbs, verbose=False)[source]

Create IGDomain data from a given igakit NURBS object.

Parameters:

inurbs : igakit.nurbs.NURBS instance

The igakit NURBS object.

Returns:

nurbs : NurbsPatch instance

The NURBS data. The igakit NURBS object is stored as nurbs attribute.

bmesh : Struct instance

The Bezier mesh data.

regions : dict

The patch surface regions.

sfepy.discrete.iga.domain_generators.gen_patch_block_domain(dims, shape, centre, degrees, continuity=None, cp_mode=’greville’, name=’block’, verbose=True)[source]

Generate a single IGA patch block in 2D or 3D of given degrees and continuity using igakit.

Parameters:

dims : array of D floats

Dimensions of the block.

shape : array of D ints

Numbers of unique knot values along each axis.

centre : array of D floats

Centre of the block.

degrees : array of D floats

NURBS degrees along each axis.

continuity : array of D ints, optional

NURBS continuity along each axis. If None, degrees-1 is used.

cp_mode : ‘greville’ or ‘uniform’

The control points mode. The default ‘greville’ results in a uniform Bezier mesh, while the ‘uniform’ mode results in a uniform grid of control points a finer Bezier mesh inside the block and a coarser Bezier mesh near the block boundary.

name : string

Domain name.

verbose : bool

If True, report progress of the domain generation.

Returns:

nurbs : NurbsPatch instance

The NURBS data. The igakit NURBS object is stored as nurbs attribute.

bmesh : Struct instance

The Bezier mesh data.

regions : dict

The patch surface regions.