BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
belfem::fem::maxwell Namespace Reference

Namespaces

namespace  config_tag

Classes

class  FieldList
 the dof list is a struct that contains the dof lists for blocks, sidesets and interfaces More...
class  TMatrix

Enumerations

enum class  Formulation {
  HPhi , L2PhiH , L2PhiB , L2EdgeH ,
  UNDEFINED
}

Functions

const Matrix< real > & side_connector_edge_function (Calculator *aCalc, const real xi, const real eta, const real zeta)
uint64_t mesh_config_hash (const string &aText)
 The mesh CONFIGURATION tag: a fingerprint of the settings that decide how a .msh is turned into an enriched mesh – cuts, thin-shell layers, edge-coating walls, periodicity.
string mesh_config_text (const InputFile &aInputFile)
 The canonical text behind the tag.
uint64_t mesh_config_tag (const InputFile &aInputFile)
 Convenience: the tag of an input file.
const Matrix< real > & l2N (Calculator *aCalc, const uint aIndex)
void background_phi (Calculator *aCalc, TimestepMatrices *aMatrices)
void h_picard (Calculator *aCalc, TimestepMatrices *aMatrices)
 Collapsed h-kernels: all per-point material math is delegated to aCalc->maxwell(), whose constructor-time dispatch covers the bulk/thin-shell, metal/alloy/HTS, defect, and piecewise axes.
void h_newton_mu0 (Calculator *aCalc, TimestepMatrices *aMatrices)
void h_newton_mu (Calculator *aCalc, TimestepMatrices *aMatrices)
void h_side_connector (Calculator *aCalc, TimestepMatrices *aMatrices)
void h_side_connector_newton (Calculator *aCalc, TimestepMatrices *aMatrices)
void h_ghost (Calculator *aCalc, TimestepMatrices *aMatrices)
 facet-based thin-shell interface / stabilization kernel
void save_resistivity (Calculator *aCalc, const real aRhoM)
void save_dotQ (Calculator *aCalc, const real aDotQ)
real get_resistivity (Calculator *aCalc, const index_t aIndex=BELFEM_UINT_MAX)
void l2_b2d (Calculator *aCalc, Matrix< real > &aK, Vector< real > &aF)
void l2_h (Calculator *aCalc, Matrix< real > &aK, Vector< real > &aF)
void l2_ah_2d (Calculator *aCalc, Matrix< real > &aK, Vector< real > &aF)
void l2_phi (Calculator *aCalc, Matrix< real > &aK, Vector< real > &aF)
void l2_phi_ferro (Calculator *aCalc, Matrix< real > &aK, Vector< real > &aF)
void phi (Calculator *aCalc, TimestepMatrices *aMatrices)
void phi_ferro_picard (Calculator *aCalc, TimestepMatrices *aMatrices)
void phi_ferro_newton (Calculator *aCalc, TimestepMatrices *aMatrices)
void phi_tri3 (Calculator *aCalc, TimestepMatrices *aMatrices)
void phi_tet4 (Calculator *aCalc, TimestepMatrices *aMatrices)
void phi_tri6_tet10 (Calculator *aCalc, TimestepMatrices *aMatrices)
void symmetry_phi_2d (Calculator *aCalc, TimestepMatrices *aMatrices)
void symmetry_phi_3d (Calculator *aCalc, TimestepMatrices *aMatrices)
void h_symmetry_2d (Calculator *aCalc, TimestepMatrices *aMatrices)
void h_symmetry_3d (Calculator *aCalc, TimestepMatrices *aMatrices)

Enumeration Type Documentation

◆ Formulation

Enumerator
HPhi 
L2PhiH 
L2PhiB 
L2EdgeH 
UNDEFINED 

Function Documentation

◆ background_phi()

void belfem::fem::maxwell::background_phi ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ get_resistivity()

real belfem::fem::maxwell::get_resistivity ( Calculator * aCalc,
const index_t aIndex = BELFEM_UINT_MAX )
inline

◆ h_ghost()

void belfem::fem::maxwell::h_ghost ( Calculator * aCalc,
TimestepMatrices * aMatrices )

facet-based thin-shell interface / stabilization kernel

number of dimensions

◆ h_newton_mu()

void belfem::fem::maxwell::h_newton_mu ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ h_newton_mu0()

void belfem::fem::maxwell::h_newton_mu0 ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ h_picard()

void belfem::fem::maxwell::h_picard ( Calculator * aCalc,
TimestepMatrices * aMatrices )

Collapsed h-kernels: all per-point material math is delegated to aCalc->maxwell(), whose constructor-time dispatch covers the bulk/thin-shell, metal/alloy/HTS, defect, and piecewise axes.

Dispatch in IWG_Maxwell::link_to_group() is by solver algorithm and mu constancy only:

Picard -> h_picard Newton, mu constant -> h_newton_mu0 Newton, mu field-dependent -> h_newton_mu

◆ h_side_connector()

void belfem::fem::maxwell::h_side_connector ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ h_side_connector_newton()

void belfem::fem::maxwell::h_side_connector_newton ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ h_symmetry_2d()

void belfem::fem::maxwell::h_symmetry_2d ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ h_symmetry_3d()

void belfem::fem::maxwell::h_symmetry_3d ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ l2_ah_2d()

void belfem::fem::maxwell::l2_ah_2d ( Calculator * aCalc,
Matrix< real > & aK,
Vector< real > & aF )

◆ l2_b2d()

void belfem::fem::maxwell::l2_b2d ( Calculator * aCalc,
Matrix< real > & aK,
Vector< real > & aF )

◆ l2_h()

void belfem::fem::maxwell::l2_h ( Calculator * aCalc,
Matrix< real > & aK,
Vector< real > & aF )

◆ l2_phi()

void belfem::fem::maxwell::l2_phi ( Calculator * aCalc,
Matrix< real > & aK,
Vector< real > & aF )

◆ l2_phi_ferro()

void belfem::fem::maxwell::l2_phi_ferro ( Calculator * aCalc,
Matrix< real > & aK,
Vector< real > & aF )

◆ l2N()

const Matrix< real > & belfem::fem::maxwell::l2N ( Calculator * aCalc,
const uint aIndex )
inline

◆ mesh_config_hash()

uint64_t belfem::fem::maxwell::mesh_config_hash ( const string & aText)
inline

The mesh CONFIGURATION tag: a fingerprint of the settings that decide how a .msh is turned into an enriched mesh – cuts, thin-shell layers, edge-coating walls, periodicity.

It exists because the .bfm reuse test compares only Mesh::checksum(), which is the identity of the BASE mesh ( node coordinates and element connectivity ). The two answer different questions and both are needed: the checksum catches a changed .msh under an unchanged deck, this tag catches a changed deck under an unchanged .msh.

Deliberately NOT covered, so the user can retune a run against a cached mesh: solver, timestepping, tolerances, output, and boundary-condition amplitudes. Terminal ids ARE covered, because they feed cut construction, and so is the thin-shell ghost switch ( nonlinear magnetic { nitsche ghost penalty { eta } } ), because it decides whether the layer interfaces carry duplicate dofs – a discretization, not a tuning.

Known gap, accepted: a change INSIDE a material definition ( one that adds or removes rho ) can alter thin-shell node duplication while every layer label stays the same. Material labels are covered, definitions are not.

The tag must be reproducible on another machine, because a .bfm travels with its deck and mesh. Hence FNV-1a over fixed-precision TEXT rather than std::hash over raw values: std::hash is unspecified across standard libraries, and raw IEEE bytes would carry endianness plus last-ulp noise ( 100 um and 0.1 mm must give the same tag ). FNV-1a, 64 bit. A defined byte algorithm: identical text yields an identical value on every compiler, library and platform.

◆ mesh_config_tag()

uint64_t belfem::fem::maxwell::mesh_config_tag ( const InputFile & aInputFile)
inline

Convenience: the tag of an input file.

◆ mesh_config_text()

string belfem::fem::maxwell::mesh_config_text ( const InputFile & aInputFile)
inline

The canonical text behind the tag.

Stored in the .bfm next to the tag so a mismatch can show WHICH setting changed instead of only reporting that two numbers differ.

Lines are sorted, so neither the order of sections in the deck nor the iteration order of any container can change the result.

◆ phi()

void belfem::fem::maxwell::phi ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ phi_ferro_newton()

void belfem::fem::maxwell::phi_ferro_newton ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ phi_ferro_picard()

void belfem::fem::maxwell::phi_ferro_picard ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ phi_tet4()

void belfem::fem::maxwell::phi_tet4 ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ phi_tri3()

void belfem::fem::maxwell::phi_tri3 ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ phi_tri6_tet10()

void belfem::fem::maxwell::phi_tri6_tet10 ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ save_dotQ()

void belfem::fem::maxwell::save_dotQ ( Calculator * aCalc,
const real aDotQ )
inline

◆ save_resistivity()

void belfem::fem::maxwell::save_resistivity ( Calculator * aCalc,
const real aRhoM )
inline

◆ side_connector_edge_function()

const Matrix< real > & belfem::fem::maxwell::side_connector_edge_function ( Calculator * aCalc,
const real xi,
const real eta,
const real zeta )

◆ symmetry_phi_2d()

void belfem::fem::maxwell::symmetry_phi_2d ( Calculator * aCalc,
TimestepMatrices * aMatrices )

◆ symmetry_phi_3d()

void belfem::fem::maxwell::symmetry_phi_3d ( Calculator * aCalc,
TimestepMatrices * aMatrices )