assembler.py

Define functions for assembly of sparse linear systems in Edge Finite Element Method (EFEM) of lowest order in tetrahedral meshes.

petgem.solver.assembler.computeElementalContributionsMPI_FirstOrder(modelling, coordEle, nodesEle, sigmaEle)[source]

Compute the first order elemental contributions of matrix A (LHS) and right hand side (RHS) in a parallel-vectorized manner for CSEM surveys by EFEM. Here, all necessary arrays are populated (Distributed-memory approach).

Parameters:
  • modelling (dictionary) – CSEM modelling with physical parameters.
  • coordEle (ndarray) – array with nodal coordinates of element.
  • nodesEle (ndarray) – array with nodal indexes of element.
  • sigmaEle (float) – element conductiviy.
Returns:

Ae, be.

Return type:

complex.

petgem.solver.assembler.computeElementalContributionsMPI_HighOrder(modelling, coordEle, nodesEle, sigmaEle, nedelec_order)[source]

Compute the second or third order elemental contributions of matrix A (LHS) and right hand side (RHS) in a parallel-vectorized manner for CSEM surveys by EFEM. Here, all necessary arrays are populated (Distributed-memory approach).

Parameters:
  • modelling (dictionary) – CSEM modelling with physical parameters.
  • coordEle (ndarray) – array with nodal coordinates of element.
  • nodesEle (ndarray) – array with nodal indexes of element.
  • sigmaEle (float) – element conductiviy.
  • nedelec_order (int) – nedelec element order.
Returns:

Ae, be.

Return type:

complex.

petgem.solver.assembler.unitary_test()[source]

Unitary test for assembler.py script.