# sfepy.discrete.iga.fields module

Fields for isogeometric analysis.

class sfepy.discrete.iga.fields.IGField(name, dtype, shape, region, approx_order=None, **kwargs)

  Bezier extraction based NURBS approximation for isogeometric analysis.

  Notes

  The field has to cover the whole IGA domain. The field’s NURBS basis can have higher degree than the domain NURBS basis.

  create_basis_context()

    Create the context required for evaluating the field basis.

  create_eval_mesh()

    Create a mesh with the original NURBS connectivity for evaluating the field. The mesh coordinates are the NURBS control points.

  create_mapping(region, integral, integration)

    Create a new reference mapping.

  create_mesh(extra_nodes=True)

    Create a mesh corresponding to the field region. For IGA fields, this is directly the topological mesh. The extra_nodes argument is ignored.

  create_output(dofs, var_name, dof_names=None, key=None, **kwargs)

    Convert the DOFs corresponding to the field to a dictionary of output data usable by Mesh.write().

    Parameters:
      dofs array, shape (n_nod, n_component)

        The array of DOFs reshaped so that each column corresponds to one component.

      var_name str

        The variable name corresponding to dofs.

      dof_names tuple of str

        The names of DOF components.

      key str, optional

        The key to be used in the output dictionary instead of the variable name.

    Returns:
      out dict

        The output dictionary.

  family_name = 'volume_H1_iga'
  get_data_shape(integral, integration='cell', region_name=None)

    Get element data dimensions.

    Parameters:
      integral Integral instance

        The integral describing used numerical quadrature.

      integration‘cell’

        The term integration type. Only ‘cell’ type is implemented.

      region_name str

        The name of the region of the integral.

    Returns:
      data_shape 4 ints

        The (n_el, n_qp, dim, n_en) for volume shape kind.

    Notes

    - n_el = number of elements

    - n_qp = number of quadrature points per element/facet

    - dim = spatial dimension

    - n_en = number of element nodes

  get_dofs_in_region(region, merge=True)

    Return indices of DOFs that belong to the given region and group.

    Notes

    merge is not used.

  get_econn(conn_type, region, trace_region=None, local=False)

    Get DOF connectivity of the given type in the given region.

  get_surface_basis(region)
  get_true_order()
  is_higher_order()

    Return True, if the field’s approximation order is greater than one.

  setup_extra_data(info)

sfepy.discrete.iga.fields.parse_approx_order(approx_order)