# CSXCAD

### From openEMS

## Contents |

# CSXCAD - Continuous Structure XML

A C++ library to describe geometrical objects and their physical or non-physical properties.

## Features

- Extensive and simple file I/O (xml-based)
- Flexible and mesh independent geometry definitions
- Rectilinear grid support and discretized property access
- Extensive Matlab interface
- Open source license (LGPLv3)

## CSProperties

Properties contain the physical (e.g. material properties) and non-physical (e.g. dump-boxes) properties. Each Property can contain one or more geometrical primitives (e.g. a cube or cylinder).

Currently there are several different properties that can be used by openEMS:

*physical properties:*

- CSPropMaterial: Material definition (Matlab: AddMaterial)
- CSPropDiscMaterial: Discretized material definition (e.g. a virtual family model)
- CSPropMetal: Define PEC metal (Matlab: AddMetal)
- CSPropLorentzMaterial: Drude/Lorentz dispersive Material (have a look at examples/other/Metamaterial_PlaneWave_Drude.m)
- CSPropLumpedElement: Lumped elements such as resistors and capacitors

*non-physical properties:*

- CSPropElectrode: Define the excitation (Matlab: AddExcitation)
- CSPropProbeBox: Voltage/Currents probe definitions
- CSPropDumpBox: field dump boxes

## CSPrimitives

Each primitive has to be assign to an existing property.

Currently there are several primitives defined:

- CSPrimPoint: A point defined by its coordinates (Matlab: AddPoint)
- CSPrimBox: A rectangular cube, plane, line or point defined by its lower-left-bottom and upper-right-top edge (Matlab: AddBox)
- CSPrimCylinder: A cylinder is defined by its axis and radius (Matlab: AddCylinder)
- CSPrimCylindricalShell: A cylinder with a given shell width (Matlab: AddCylindricalShell)
- CSPrimSphere: A sphere is defined by its center and radius (Matlab: AddSphere)
- CSPrimSphericalShell: A sphere with a given shell width (Matlab: AddSphericalShell)
- CSPrimCurve: A 1D curved line (Matlab: AddCurve)
- CSPrimWire: A curve with a finite radius (Matlab: AddWire)
- CSPrimPoly: A 2D polygon (Matlab: AddPolygon)
- CSPrimLinPoly: An extruded 2D polygon (Matlab: AddLinPoly)