# Reference page for CircuitBase

## Contents

- Summary
- this = CircuitBase(
*arguments*) Abstract base class for finite-element Circuits. - this.add_conductor(
*arguments*) Add conductor to circuit. - half_of_turn_length Return effective length.
- this.filling_factor(
*arguments*) Conductor filling factor. - this.get_matrices(
*arguments*) Return FE-and circuit matrices. - this.get_ndof(
*arguments*) Number of dofs associated with the circuit, for the given - this.half_of_turn_length(
*arguments*) Return half of turn length. - this.handle_latest_copies(
*arguments*) Object array method. - this.handle_latest_copies1(
*arguments*) Method for handling geometry - this.init(
*arguments*) Init circuit for problem. - this.init_for_simulation(
*arguments*) Init Circuit for simulation. - this.set_load(
*arguments*) Increment load vector of FE problem. - CircuitBase/this.set_parent(
*arguments*) is a function.

## Summary

CircuitBase Abstract base class for finite-element Circuits.

Use one of the subclasses to instantiate an object. Common examples include

Use the `add_conductor` method to add conductors to this. Documentation for CircuitBase doc CircuitBase

# PROPERTIES

- CircuitBase/conductors is a property.

- CircuitBase/data is a property.

- enabled - FIXME persistence / consistence issues

- matrices - struct for containing circuit matrices

- CircuitBase/source is a property.

# METHODS

Class methods are listed below. Inherited methods are not included.

## this = CircuitBase(*arguments*) Abstract base class for finite-element Circuits.

Use one of the subclasses to instantiate an object. Common examples include

Use the `add_conductor` method to add conductors to *this*.

## this.add_conductor(*arguments*) Add conductor to circuit.

*this* = **add_conductor**(*this*, conductor, (type))

Adds the Domain or Conductor object *conductor* to *this* Circuit. If *conductor* is a Domain, a new Conductor object is created.

Type is an optional arguments, either def.solid for a solid conductor (default) or defs.stranded for stranded.

## half_of_turn_length Return effective length.

## this.filling_factor(*arguments*) Conductor filling factor.

## this.get_matrices(*arguments*) Return FE-and circuit matrices.

[S, M, Sac, Mac, Sca, Mca, Scc, Mcc] = **get_matrices**(*this*, problem, type), where

- S : stiffness-like FE matrix

- M : mass-FE matrix

- Sac : stiffness-like coupling from circuit variables to FE variables.

- Mac : damping-like (d/dt) coupling from circuit variables to FE variables.

- Sca : stiffness-like coupling from FE to circuit.

- Mca : damping-like coupling from FE to circuit.

- Scc : stiffness-like circuit-circuit coupling.

- Mcc : damping-like circuit-circuit coupling.

## this.get_ndof(*arguments*) Number of dofs associated with the circuit, for the given

problem and type.

Nui = **get_ndof**(*this*, problem, type, pars), where

- problem = MagneticsProblem or similar

- type = string, usually "static" / "harmonic" / "stepping"

## this.half_of_turn_length(*arguments*) Return half of turn length.

Usually equal to ` this.effective_length`, unless an end-winding is modelled.

## this.handle_latest_copies(*arguments*) Object array method.

When called on an array of Circuit objects, *this* method calls the ` handle_latest_copies` method on each individual Circuit.

## this.handle_latest_copies1(*arguments*) Method for handling geometry

replication.

This method is called any time the elementary geometry is replicated for a new sector/segment. By default, the latest copies of the Domains associated with *this* circuit are added as new Conductors.

This method works for a single Circuit object only, i.e. it cannot be called on an object array. See *this*.handle_latest_copies

## this.init(*arguments*) Init circuit for problem.

c = **init**(*this*, problem)

Returns: c : Circuit-like object *init*ialized for the problem. Typically a handle to *this*.

## this.init_for_simulation(*arguments*) Init Circuit for simulation.

**init_for_simulation**(*this*, problem, type, pars)

## this.set_load(*arguments*) Increment load vector of FE problem.

F = **set_load**(*this*, F, type, varargin)

Add to load-contribution from *this* to F.

## CircuitBase/this.set_parent(*arguments*) is a function.

**set_parent**(*this*, parent)