sfepy.discrete.fem.fea module

class sfepy.discrete.fem.fea.Approximation(name, interp, region, ig, is_surface=False)[source]
clear_qp_base()

Remove cached quadrature points and base functions.

create_bqp(region_name, integral)
describe_geometry(field, gtype, region, integral, return_mapping=False)

Compute jacobians, element volumes and base function derivatives for Volume-type geometries (volume mappings), and jacobians, normals and base function derivatives for Surface-type geometries (surface mappings).

Notes

  • volume mappings can be defined on a part of an element group, although the field has to be defined always on the whole group.
  • surface mappings are defined on the surface region
  • surface mappings require field order to be > 0
eval_extra_coor(coors, mesh_coors)

Compute coordinates of extra nodes.

get_base(key, derivative, integral, iels=None, from_geometry=False, base_only=True)
get_connectivity(region, integration, is_trace=False)

Return the DOF connectivity for the given geometry type.

Parameters:

region : Region instance

The region, used to index surface and volume connectivities.

integration : one of (‘volume’, ‘plate’, ‘surface’, ‘surface_extra’)

The term integration type.

get_poly_space(key, from_geometry=False)

Get the polynomial space.

Parameters:

key : ‘v’ or ‘s?’

The key denoting volume or surface.

from_geometry : bool

If True, return the polynomial space for affine geometrical interpolation.

Returns:

ps : PolySpace instance

The polynomial space.

get_qp(key, integral)

Get quadrature points and weights corresponding to the given key and integral. The key is ‘v’ or ‘s#’, where # is the number of face vertices.

setup_point_data(field, region)
setup_surface_data(region)

nodes[leconn] == econn

class sfepy.discrete.fem.fea.DiscontinuousApproximation(name, interp, region, ig, is_surface=False)[source]
eval_extra_coor(coors, mesh_coors)

Compute coordinates of extra nodes. For discontinuous approximations, all nodes are treated as extra.

class sfepy.discrete.fem.fea.Interpolant(name, gel, space='H1', base='lagrange', approx_order=1, force_bubble=False)[source]

A simple wrapper around PolySpace.

describe_nodes()[source]
get_geom_poly_space(key)[source]
get_n_nodes()[source]
class sfepy.discrete.fem.fea.SurfaceApproximation(name, interp, region, ig)[source]
get_qp(key, integral)

Get quadrature points and weights corresponding to the given key and integral. The key is ‘s#’, where # is the number of face vertices.

class sfepy.discrete.fem.fea.SurfaceInterpolant(name, gel, space='H1', base='lagrange', approx_order=1, force_bubble=False)[source]

Like Interpolant, but for use with SurfaceField and SurfaceApproximation.

get_geom_poly_space(key)[source]
sfepy.discrete.fem.fea.eval_nodal_coors(coors, mesh_coors, region, poly_space, geom_poly_space, econn, ig, only_extra=True)[source]

Compute coordinates of nodes corresponding to poly_space, given mesh coordinates and geom_poly_space.

sfepy.discrete.fem.fea.set_mesh_coors(domain, fields, coors, update_fields=False, actual=False, clear_all=True)[source]