# pdaCosineBend

Define a cosine bend; length, width and offset are in micron.## Structure

This element does not have elements. The attributes are shown below, in a*sorted per type*fashion.

<pdaCosineBend align="..." length="..." offset="..." portref="..." width="..." pdaPointXY:a="..." pdaPointXY:x="..." pdaPointXY:y="..." ... > ... </pdaCosineBend>

### XSD

The schema file can be downloaded or viewed at xPDK_Base.## Details

#### Type pdaPointXY

Define X and Y (micron); an expression is ok.### align

*Type pdaShapeAlign documentation:*The alignment allows to move the shape relative to the portref. Using "bic" is good for input ports on symetric devices. Using "boc" is good for the outputs.

For DC/RF pads the "bcc" is a likely candidate.

Allowing shapes to relate to ports saves a lot of equations being re-used and thus makes the file more readable. An example is the polar bend, where the end point is [R*cos(a),R*sin(a)] so if you need to define a small rectangle on the "inside" of the bend, you need lots of equations.

The alignment values are shown below and refer to a rectangle that will fit just around the shape you work on; so for a circle the

*bil*will not be on the

*bic*location but at [-R,R] compared to the center of such a circle.

-------------------- |bil bcl bol| | | |bic bcc boc| | | |bir bcr bor| --------------------

### length

*Type pdaExpression documentation:*Define an expression.

Expression need to be commonly evaluated by many software, so having a restricted set of math / types and so on is key. In PDAFlow lib2/expr there is a yacc/lex parser available with some unit support as well as double / complex expressions. An alternative is tinyexpr, but this is more restrictive, so may be very unhandy for things like waveguide model expressions.

### offset

*Type pdaExpression documentation:*Define an expression.

Expression need to be commonly evaluated by many software, so having a restricted set of math / types and so on is key. In PDAFlow lib2/expr there is a yacc/lex parser available with some unit support as well as double / complex expressions. An alternative is tinyexpr, but this is more restrictive, so may be very unhandy for things like waveguide model expressions.

### portref

*Type pdaPortReference documentation:*Reference on the cell/port combination.

### width

*Type pdaExpression documentation:*Define an expression.

Expression need to be commonly evaluated by many software, so having a restricted set of math / types and so on is key. In PDAFlow lib2/expr there is a yacc/lex parser available with some unit support as well as double / complex expressions. An alternative is tinyexpr, but this is more restrictive, so may be very unhandy for things like waveguide model expressions.

### a

*Type pdaExpression documentation:*Define an expression.

Expression need to be commonly evaluated by many software, so having a restricted set of math / types and so on is key. In PDAFlow lib2/expr there is a yacc/lex parser available with some unit support as well as double / complex expressions. An alternative is tinyexpr, but this is more restrictive, so may be very unhandy for things like waveguide model expressions.

### x

*Type pdaExpression documentation:*Define an expression.

Expression need to be commonly evaluated by many software, so having a restricted set of math / types and so on is key. In PDAFlow lib2/expr there is a yacc/lex parser available with some unit support as well as double / complex expressions. An alternative is tinyexpr, but this is more restrictive, so may be very unhandy for things like waveguide model expressions.

### y

*Type pdaExpression documentation:*