# What's New in ActiveField 5.2

Changes and additions in ActiveField 5.2 reflect new features of QuickField 5.2, i.e.:

- Support of a new problem type AC Conduction was added to the Object Model;

- New Harmonic Analysis add-in made necessary a new method GetValuesArray of the Contour object implementation. It provides the fast access to field values along the contour.

- Adaptive mesh refinement required implementation of the new method RefineMesh and new property MeshNodes for the Problem object, and implementation of the property MeshLimit for the Application object.

## AC Conduction problems

### New constants

New constants were added to support a new type of problem:

1. In the list of the problem types: qfTimeHarmonicElectric
2. In the list of the property document types: qfDataDocEC
3. Local field values (see method GetLocalValues of the Result object):

qfJActive | Magnitude of the conduction (losses) current density vector in the dielectric
qfJActiveX | X-component of the conduction (losses) current density vector in the dielectric
qfJActiveY | Y-component of the conduction (losses) current density vector in the dielectric
qfJActiveN | Normal to the contour component of the conduction current density vector
qfJActiveT | Tangential to the contour component of the conduction current density vector
fJReactive | Magnitude of the displacement current density vector in the dielectric material
qfJReactiveX | X-component of the displacement current density vector in the dielectric
qfJReactiveY | Y-component of the displacement current density vector in the dielectric
qfJReactiveN | Normal to the contour component of the displacement current density vector
qfJReactiveT | Tangential to the contour component of the displacement current density vector
qfJApparent | Magnitude of the total (apparent) current density
qfJApparentX | X-component of the total (apparent) current density
qfJApparentY | Y-component of the total (apparent) current density
qfJApparentN | Normal to the contour component of the total (apparent) current density
qfJApparentT | Tangential to the contour component of the total (apparent) current density
qfPowerDensityActive | Specific power of the active (Ohmic) losses
qfPowerDensityReactive | Specific reactive power
qfPowerDensityApparent | Specific total (apparent) power

4. Integral values (see the method GetIntegral of the Result object):

   qfCurrentActive | Conduction (losses) current through the surface defined by the contour
   qfCurrentReactive | Displacement current through the surface defined by the contour
   qfCurrentApparent | Total (apparent) current through the surface defined by the contour
   qfPowerActive | Power of active (Ohmic) losses in the volume defined by the contour
   qfPowerReactive | Reactive power in the volume defined by the contour
   qfPowerApparent | Total (apparent) power in the volume defined by the contour

### Physical properties

For definition of the material properties, field sources, and boundary conditions in AC Conduction problems, as well as in problems of other types, special objects LabelBlockEC, LabelEdgeEC and LabelVertexEC are used.

LabelBlockEC is the object derived from LabelBlock which contents AC Conduction-specific block label properties. They are:

Kxx, Kyy | Dielectric permeability tensor components which may be defined in the absolute (in physical units) or relative form depending on the parameter relative of boolean type
ConductivityXX, ConductivityYY | Electric conductivity tensor components (S/m)

LabelEdgeEC is the object derived from LabelEdge which contents AC Conduction - specific edge label properties. They are:

DirichletPhaseEx | Phase (in degrees) for the Dirichlet boundary condition
NeumannPhaseEx | Phase (in degrees) for the Newmann boundary condition

Similarly, the LabelVertexEC is derived from LabelVertex and contents specific vertex label properties:

DirichletPhaseEx | Phase (in degrees) for the Dirichlet boundary condition
LoadingPhaseEx | Phase (in degrees) for the current value in the vertex

### Local field values for AC Conduction problem

The FieldPointEC object contents properties, defining field values related to AC Conduction problems in the specified point. They complement general field parameters defined in the base object FieldPoint.

Specific properties include:

Property | Type | Comment
Mode | enum QfQuantityMode | Sets the calculated value variant – momentary, RMS or maximal
U | ComplexValue | Electric potential (V)
E | ComplexVector | Electric field strenght (V/m)
D | ComplexVector | Electric induction (displacement) (C/m2)
Jactive | ComplexVector | Conduction current density (A/m2)
Jreactive | ComplexVector | Displacement current density (A/m2)
Japparent | ComplexVector | Total (apparent) current density (A/m2)
Conductivity | DMatrix | Two component conductivity matrix
LossesActive | double | Specific active power losses (W/m3)
LossesReactive | double | Specific reactive power losses (W/m3)
LossesApparent | double | Specific total (apparent) power losses (W/m3)

## Getting the field values array along the contour

Advanced procedures of the finite-element analysis, such as Harmonic Analysis of the spatial field distribution, require complete set of data retrieval by single query. This is provided by the new method GetValuesArray of the Contour object.

The task solved by the method GetValuesArray is walking along the whole contour and memorizing the field values in all the intersections of the contour with finite elements. Whereas the amount of the field data in any point is relatively large, this method has a call parameter – array conyains the list of coordinates and field values calculated in every point.

Another particularity is the fact that the contour may have discontinuities related to the areas there the field is not calculated. To distinguish break points on every intersection of the contour with the triangular finite element the segment (pairs of starting and ending points) is formed. Therefore, in case the contour crosses the solid array of triangles, almost every point is included twice (as a start an end points).

The method GetValuesArray has input parameter columns, being the array of constants from the enumeration QfQuantity. Quantity and content of the array columns elements correspond to the columns of the table which is returned by the method GetValuesArray after completion. In the capacity of the input array elements it is allowed to use the constants, related to the local field values, supported for specific problem type.

Return value is a three-dimensional array of doubles like Result [i] [j] [k] as Double

Here the first index i means the segment number and varies from 1 to the total number of the triangles crossed by the contour;
Second index j means the serial number of the field value corresponding to the input array columns. It varies from 1 to the number of elements in the array columns;
Third index may be 1 or 2 depending on the relation to the starting (1) or ending (2) point of the section.

## Adaptive Mesh Refinement

The method RefineMesh and property MeshNodes in the class Problem are designed for using an adaptive refinement of the finite element mesh in ActiveField programs.

The method RefineMesh has no parameters. It may be called if the corresponding problem already has an actual (non-expired) solution. This will cause the finite element mesh to be rebuilt, and then the new solution procedure may be started by use of the method SolveProblem. It is provided that new finite elements, generated by the refinement procedure, will be placed in the model areas where the previous calculation could be estimated as inaccurate.

It is possible to use property MeshNodes of the class Problem to estimate the mesh refinement results. Actual number of the mesh nodes will be returned with no regard does the geometry model file loaded into the memory or no. It is supposed to use this pair of methods in the loop, while the acceptable number of mesh nodes will be achieved.

### Obtaining the Application Limit

QuickField can be delivered in different editions including Professional and Student's. These editions may have different upper limits of the total number of the finite element mesh nodes, or no artificial limits at all. You may check the mesh node limit of the installed QuickField version from within the ActiveField applications.

The MeshLimit property of the Application object returns the maximum allowed number of mesh nodes. This property is read-only. The only way to increase the mesh node limitation is purchasing a more advanced edition of QuickField.