pw::BlockExtruded

An extruded block is a step-wise constructed prismatic volume originating from one or more pw::Face objects.  It has a fixed number of prismatic layers in the computational K direction.

Derives From

pw::Object pw::Entity pw::GridEntity pw::Block

Summary
pw::BlockExtrudedAn extruded block is a step-wise constructed prismatic volume originating from one or more pw::Face objects.
Static Actions
createThis action creates a new extruded block object.
createFromPointsThis action, given at least one cell-type array and an extruded path of a list of lists of xyz vector values, creates an extruded block.
Static Defaults
Instance Actions
getPointThis action gets the position of a block grid point.
setPointThis action sets the position of a block interior grid point.
setPointsThis action extrudes the block along the path specified by the extrudePoints list.
isInteriorIndexThis action checks to see if an index corresponds to a point in the interior of the block.
getAdjacentIndicesThis action returns the indices that are directly connected to the specified index.
getCellsUsingIndexThis action returns the indices that are directly connected to the specified index.
getLinearIndexThis converts a block’s ijk index to a linear index.
getPositionThis action gets the position in the defining space of the block at the given index.
getXYZThis action gets the position of the block in model space at the given index.
getCellThis action gets the indices of the given cell.
getFaceThis action gets the face at the given index or computational boundary.
addFaceThis action adds a face to the block.
canReExtrudeThis action returns true if the entity can be re-extruded.
getExtrusionSolverAttributeThis action gets the named extrusion solver attribute.
setExtrusionSolverAttributeThis action sets the named extrusion solver attribute.
getExtrusionBoundaryConditionThis action gets the boundary condition at a given connector region.
setExtrusionBoundaryConditionThis action sets the boundary condition at a given connector region.
Generic Extrusion Solver Attributes
ModeThis gets/sets the extrusion mode of this block.
StopAtHeightThis specifies or disables the height stop condition.
StopAtAspectRatioThis specifies or disables the max aspect ratio stop condition.
StopAtSkewAngleThis specifies or disables the min skew angle stop condition.
StopAtPositiveSkewJacobianThis enables / disables the positive skew Jacobian stop condition.
StopAtZeroJacobianThis enables / disables the zero Jacobian stop condition.
StopAtNegativeSkewJacobianThis enables / disables the negative skew Jacobian stop condition.
StopAtNegativeJacobianThis enables / disables the negative Jacobian stop condition.
DirectionFlippedThis specifies whether the extrusion direction is flipped.
PlaneAngleToleranceThis specifies the angle tolerance for determining when an arbitrary plane BC is considered equal to a Cartesian plane BC.
PlaneDeviationToleranceThis specifies the deviation tolerance for determining when an arbitrary plane BC is considered to be planar.
Translational Extrusion Solver Attributes
TranslateDirectionThis gets/sets the direction vector for translate extrusion.
TranslateDistanceThis gets/sets the distance for translate extrusion.
Path Extrusion Solver Attributes
PathConnectorsThis gets/sets a list of connectors for the path.
PathMaximumStepsThis is the maximum number of steps available as the path extrusion is configured.
PathUseTangentThis gets/sets the flag indicating if the path extrusion should be rotated tangentally to the path connector.
Rotational Extrusion Solver Attributes
RotateAxisStartThis gets/sets the starting point of the rotation axis for rotate extrusion.
RotateAxisEndThis gets/sets the ending point of the rotation axis for rotate extrusion.
RotateAngleThis gets/sets the angle (degrees) for rotational extrusion.
Normal Extrusion Solver Attributes
NormalInitialStepSizeThis gets/sets the size of the first marching step to value.
NormalMaximumStepSizeThis gets/sets the upper limit for the marching step size.
NormalMinimumStepSizeThis gets/sets a upper limit for the marching step size.
NormalCornerFactorThis gets/sets a scale factor for reducing the local marching step in convex regions and increasing the marching step size in concave regions.
NormalDirectionRelaxationThe normals in the marching direction are smoothed locally using a LaPlace filter.
NormalDirectionRelaxationIterationsThe normals in the marching direction are smoothed locally using a Lalace filter.
NormalStepSizeRelaxationThis gets/sets the relaxation smoothing factor.
NormalStepSizeRelaxationIterationsThis gets/sets the number of marching iterations for the LaPlace filter.
NormalFeatureSmoothingThis specifies whether knife edge features are smoothed.
NormalQualitySmoothingThis enables/disables normal smoothing based on a quality metric.
NormalInteriorOnlySmoothingThis enables/disables interior only quality based smoothing.
NormalMaximumIterationsSmoothingThis specifies/retrieves the maximum number of smoothing iterations.
NormalBlendExponentSmoothingThis specifies/retrieves the blend exponent for smoothing.
Spacing Extrusion Solver Attributes
SpacingModeThis gets/sets the spacing configuration for the extrusion.
SpacingGrowthFactorThis specifies how the marching step size will grow from its initial value.
SpacingConnectorsThis gets/sets the collection of connector-object and subconnector-index pairs that specify how the marching step size will grow from its initial value.

Static Actions

create

pw::BlockExtruded create

This action creates a new extruded block object.

Parameters

There are no parameters.

Returns

This action returns a new pw::BlockExtruded object.

See Also

createFromPoints

createFromPoints

pw::BlockExtruded createFromPoints ?-triangles tricellArray? ?-quadrilaterals quadCellArray? ?-splitAngle angle? ?-splitMultiLoop? extrudePoints

This action, given at least one cell-type array and an extruded path of a list of lists of xyz vector values, creates an extruded block.  No extruded block will be created if the cell-type array(s) define more than one face.

Parameters

The following optional cell array parameters (at least one of which is required) are each a list of lists.  The sub-lists represent indices into the points list for each vertex of the particular cell.  For example, there are 3 vertices for each triangle.  Therefore, the ‘triCellArray’ will consist of N sub-lists, where each sub-list has 3 indices representing the three vertices of the triangle.  The indices are 1-based.  These arrays describe the base face layer of the block.

-triangles triCellArrayThis optional parameter is a list of cells, where each cell list is 3 integers (one element for each triangle vertex, each of which refers to that index in the points array).
-quadrilaterals quadCellArrayThis optional parameter is a list of cells, where each cell list is 4 integers (one element for each quadrilateral vertex, each of which refers to that index in the points array).

The next two parameters are additional optional parameters, neither of which is required.  They are used when creating the domain(s) for the base face of the new extruded block.

-splitAngle splitAnglethis optional float parameter specifies an angle at which to split connectors.
-splitMultiloopthis optional flag indicates that domains with more than 1 loop should be split.

This is a required parameter

extrudePointsThis required parameter is a list of a list of xyz vectors to be used to define the base layer (face) and extrude path.  The first sub-list defines the points used by the cell array(s) to create the base face layer.  The subsequent lists describe each subsequent layer of the extrusion, must have the same number of points as the base face layer, and must be mappable to the base face layer points.

Returns

This action returns the newly created pw::BlockExtruded block.

See Also

create

Example

This example shows how a rotated extruded block can be created from a set of points and quadrilateral connectivity.

Code

# Rotate a list of points an angle about an axis
proc rotateVec3 { pts angle axis origin } {
  set matrix [pwu::Transform rotation -anchor $origin $axis $angle]
  set rotPts [list]
  foreach pt $pts {
    set x0 [lindex $pt 0]
    set y0 [lindex $pt 1]
    set z0 [lindex $pt 2]
    set x [expr {$x0 * [lindex $matrix 0] + $y0 * [lindex $matrix 4] \
      + $z0 * [lindex $matrix 8] + [lindex $matrix 12]}]
    set y [expr {$x0 * [lindex $matrix 1] + $y0 * [lindex $matrix 5] \
      + $z0 * [lindex $matrix 9] + [lindex $matrix 13]}]
    set z [expr {$x0 * [lindex $matrix 2] + $y0 * [lindex $matrix 6] \
      + $z0 * [lindex $matrix 10] + [lindex $matrix 14]}]
    set w [expr {$x0 * [lindex $matrix 3] + $y0 * [lindex $matrix 7] \
      + $z0 * [lindex $matrix 11] + [lindex $matrix 15]}]
    set rotPt [pwu::Vector3 divide [pwu::Vector3 set $x $y $z] $w]
    lappend rotPts $rotPt
  }
  return $rotPts
}

proc getPoints {idim jdim} {
  set pts [list]
  for {set j 0} {$j < $jdim} {incr j} {
    for {set i 0} {$i < $idim} {incr i} {
       lappend pts [pwu::Vector3 set 0 $i $j]
    }
  }
  return $pts
}

proc getQuads {idim jdim} {
  set quads [list]
  for {set j 1} {$j < $jdim} {incr j} {
    for {set i 1} {$i < $idim} {incr i} {
       set n1 [expr {$jdim * ($j - 1) + $i}]
       set n0 [expr {$n1 - 1}]
       set n2 [expr {$jdim * $j + $i} ]
       set n3 [expr {$n2 - 1}]
       lappend quads [list $n0 $n1 $n2 $n3]
    }
  }
  return $quads
}

set idim 10
set jdim 10
set origin [list 0 -10 0]
set rotAxis [pwu::Vector3 set 0 0 1]
set totalAngle -90.
set numLayers 21

set pts [getPoints $idim $jdim]
set quads [getQuads $idim $jdim]

set extPts [list]
lappend extPts $pts
for {set i 1} {$i < $numLayers} {incr i} {
  set angle [expr {$totalAngle * (double($i) / double($numLayers - 1))}]
  lappend extPts [rotateVec3 $pts $angle $rotAxis $origin]
}

# Create extruded block
set extBlk [pw::BlockExtruded createFromPoints -quadrilaterals $quads $extPts]

Static Defaults

Instance Actions

getPoint

$block getPoint ?-constrained constrainedVar? < index | ijk_index >

This action gets the position of a block grid point.

Parameters

indexThis optional parameter is the integer linear index of the grid point to get with the range [1, number of points].
ijk_indexThis optional parameter is the ijk index of the grid point to get.
-constrained constrainedVarThis optional parameter is the string name of a variable.  If the grid point is database constrained, this variable is set to true.  If not constrained, it is set to false.

Information

Either index or ijk_index must be specified.

Returns

This action returns a point giving the grid point position (may be in the form “u v dbentity”).

setPoint

$block setPoint < index | ijk_index > point

This action sets the position of a block interior grid point.

Parameters

indexThis optional parameter is the integer linear index of the target grid point to set with the range [1, number of points].  The index must be for an interior grid point.
ijk_indexThis optional parameter is the ijk index of the grid point to set.
pointThis required parameter is the new point value of the grid point.

Information

Either index or ijk_index must be specified.

Returns

This action returns nothing.

Information

Block points are not currently db-constrained, so any database information in the point argument is converted to pure XYZ data before being stored.

setPoints

$block setPoints extrudePoints

This action extrudes the block along the path specified by the extrudePoints list.

Parameters

extrudePointsThis required parameter is a list of a list of xyz vectors that define the extrude path.  These points must be mappable to the points in the block’s face.

Returns

This action returns nothing.

Example

This example shows how a rotated extruded block can be created from a set of points and triangle connectivity.

Code

# Rotate a list of points an angle about an axis
proc rotateVec3 { pts angle axis origin } {
  set matrix [pwu::Transform rotation -anchor $origin $axis $angle]
  set rotPts [list]
  foreach pt $pts {
    set x0 [lindex $pt 0]
    set y0 [lindex $pt 1]
    set z0 [lindex $pt 2]
    set x [expr {$x0 * [lindex $matrix 0] + $y0 * [lindex $matrix 4] \
      + $z0 * [lindex $matrix 8] + [lindex $matrix 12]}]
    set y [expr {$x0 * [lindex $matrix 1] + $y0 * [lindex $matrix 5] \
      + $z0 * [lindex $matrix 9] + [lindex $matrix 13]}]
    set z [expr {$x0 * [lindex $matrix 2] + $y0 * [lindex $matrix 6] \
      + $z0 * [lindex $matrix 10] + [lindex $matrix 14]}]
    set w [expr {$x0 * [lindex $matrix 3] + $y0 * [lindex $matrix 7] \
      + $z0 * [lindex $matrix 11] + [lindex $matrix 15]}]
    set rotPt [pwu::Vector3 divide [pwu::Vector3 set $x $y $z] $w]
    lappend rotPts $rotPt
  }
  return $rotPts
}

proc getPoints {idim jdim} {
  set pts [list]
  for {set j 0} {$j < $jdim} {incr j} {
    for {set i 0} {$i < $idim} {incr i} {
       lappend pts [pwu::Vector3 set 0 $i $j]
    }
  }
  return $pts
}

proc getQuads {idim jdim} {
  set quads [list]
  for {set j 1} {$j < $jdim} {incr j} {
    for {set i 1} {$i < $idim} {incr i} {
       set n1 [expr {$jdim * ($j - 1) + $i}]
       set n0 [expr {$n1 - 1}]
       set n2 [expr {$jdim * $j + $i} ]
       set n3 [expr {$n2 - 1}]
       lappend quads [list $n0 $n1 $n2 $n3]
    }
  }
  return $quads
}

set idim 10
set jdim 10
set origin [list 0 -10 0]
set rotAxis [pwu::Vector3 set 0 0 1]
set totalAngle -90.
set numLayers 21

set pts [getPoints $idim $jdim]
set quads [getQuads $idim $jdim]

set doms [pw::DomainUnstructured createFromPoints -quads $quads $pts]

# Create face
set face [pw::FaceUnstructured createFromDomains $doms]
set facePntCnt [$face getPointCount]

set facePnts [list]
for {set i 1} {$i <= $facePntCnt} {incr i} {
  lappend facePnts [$face getPoint $i]
}

# Create extruded block
set extBlk2 [pw::BlockExtruded create]

# Add face
$extBlk2 addFace $face

set extPts [list]
lappend extPts $facePnts
for {set i 1} {$i < $numLayers} {incr i} {
  set angle [expr {$totalAngle * (double($i) / double($numLayers - 1))}]
  lappend extPts [rotateVec3 $facePnts $angle $rotAxis $origin]
}

# Create extruded block by setPoints
$extBlk setPoints $extPts

isInteriorIndex

$block isInteriorIndex < index | ijk_index >

This action checks to see if an index corresponds to a point in the interior of the block.

Parameters

indexThis optional parameter is the integer linear index of the grid point with the range [1, number of points].
ijk_indexThis optional parameter is the ijk index of the point to get.

Information

Either index or ijk_index must be specified.

Returns

This action returns true if the index is an interior point.

getAdjacentIndices

$block getAdjacentIndices ?-linear? < index | ijk_index >

This action returns the indices that are directly connected to the specified index.

Parameters

-linearIf this optional flag is specified, the results will be a list of integer linear indices regardless of the input form.
indexThis optional parameter is the integer linear index of the grid point with the range [1, number of points].
ijk_indexThis optional parameter is the ijk index of the point to get.

Information

Either index or ijk_index must be specified.

Returns

This action returns a list of indices representing the adjacent coordinates.  The form of each index will be the same as the input form.  If index is used or -linear is specified, the result will be a list of integer linear indices.  If ijk_index is used and -linear is not specified, the result will be a list of ijk indices.

getCellsUsingIndex

$block getCellsUsingIndex ?-linear? < index | ijk_index >

This action returns the indices that are directly connected to the specified index.

Parameters

-linearIf this optional flag is specified, the results will be a list of integer linear indices regardless of the input form.  This is the default option and is present to maintain consistency with the form of the command used for pw::BlockStructured and pw::BlockExtruded objects.
indexThis optional parameter is the integer index of the target grid point; [1, number of points].
ijk_indexThis optional parameter is the ijk index of the point to get.

Information

Either index or ijk_index must be specified.

Returns

This action returns a list of cell entries using the specified point.  Each cell entry will be a list of point indices comprising the cell.  The form of each point index will be the same as the input form.  If index is used or -linear is specified, each cell entry will be a list of integer linear indices.  If ijk_index is used and -linear is not specified, each cell entry will be a list of ijk indices.

getLinearIndex

$blk getLinearIndex ijk_index

This converts a block’s ijk index to a linear index.

Parameters

ijk_indexThis required parameter is the ijk index to convert.

Returns

This action returns the integer linear index of the point.

getPosition

$block getPosition ?-grid? < index | ijk_index >

This action gets the position in the defining space of the block at the given index.

Parameters

-gridThis optional flag is notification to get the position at a grid point.  This is the default.
indexThis optional parameter is the integer linear index of the point to get.
ijk_indexThis optional parameter is the ijk index of the point to get.

Returns

This action returns a point giving the position on the block (may be in the form “u v dbentity”).

Information

Either index or ijk_index must be specified.

Even though it is not needed, the -grid switch is included here to be consistent with the other grid entity getPosition methods.  The following calls are equivalent:

$extblk1 getPosition -grid [list 1 2 3]
$extblk1 getPosition [list 1 2 3]

See Also

pw::Block.getPosition pw::BlockStructured.getPosition pw::Connector.getPosition pw::Domain.getPosition pw::DomainStructured.getPosition

getXYZ

$block getXYZ ?-grid? < index | ijk_index >

This action gets the position of the block in model space at the given index.

Parameters

-gridThis optional flag is notification to get the position at a grid point.  This is the default.
indexThis optional parameter is the integer linear index of the point to get.
ijk_indexThis optional parameter is the ijk index of the point to get.

Returns

This action returns an XYZ vector.

Information

Either index or ijk_index must be specified.

Even though it is not needed, the -grid switch is included here to be consistent with the other grid entity getPosition methods.  The following calls are equivalent:

$extblk1 getXYZ -grid 22
$extblk1 getXYZ 22

See Also

pw::Block.getXYZ pw::BlockStructured.getXYZ pw::Connector.getXYZ pw::Domain.getXYZ pw::DomainStructured.getXYZ

getCell

$block getCell < index | ijk_index >

This action gets the indices of the given cell.

Parameters

indexThis optional parameter is the linear integer index of the target cell.
ijk_indexThis optional parameter is the ijk index of the target cell.

Information

Either index or ijk_index must be specified.

Returns

This action returns an integer list of linear point indices if the index parameter is used, or list of ijk indices if the ijk_index parameter is used.

getFace

$block getFace < index | boundary >

This action gets the face at the given index or computational boundary.

Parameters

indexThis optional parameter is the integer index of the target face in the range [1, number of faces].
boundaryThis optional parameter is the computational boundary string with options < JMinimum | JMaximum >.

Information

Either index or boundary must be specified.

Returns

This action returns a pw::FaceUnstructured object.

addFace

$block addFace face

This action adds a face to the block.  Only a single face can be added to the block, and it must be added prior to extrusion.

Parameters

faceThis required parameter is the pw::FaceUnstructured to add.

Returns

This action returns nothing.

canReExtrude

$entity canReExtrude

This action returns true if the entity can be re-extruded.

Parameters

none

Returns

This action returns a boolean value indicating if the entity can be re-extruded.

Example

This example shows how to get a list of all entities that can be re-extruded.

Code

puts "Entities valid for re-extrusion:"
set reExtEnts [list]
foreach ent [pw::Grid getAll] {
  if {[$ent canReExtrude]} {
    lappend reExtEnts $ent
    puts "   [$ent getName]"
  }
}

getExtrusionSolverAttribute

$block getExtrusionSolverAttribute att_name ?value_type?

This action gets the named extrusion solver attribute.

Parameters

att_nameThis required parameter is the name string of the target attribute.
value_typeThis optional parameter is the type string of value to get with options < Actual | Default >.

Returns

The action returns the actual or default value of the attribute.  The returned data-type is dependent on the target attribute.

See Also

setExtrusionSolverAttribute, Generic Extrusion Solver Attributes, Translational Extrusion Solver Attributes, Path Extrusion Solver Attributes, Rotational Extrusion Solver Attributes, Normal Extrusion Solver Attributes, Spacing Extrusion Solver Attributes

setExtrusionSolverAttribute

$block setExtrusionSolverAttribute att_name att_value

This action sets the named extrusion solver attribute.

Parameters

att_nameThis required parameter is the name string of the target attribute.
att_valueThis required parameter is the attribute’s string, integer or float value.  The value data-type is dependent on the target attribute.

Returns

This action returns nothing.

See Also

getExtrusionSolverAttribute, Generic Extrusion Solver Attributes, Translational Extrusion Solver Attributes, Path Extrusion Solver Attributes, Rotational Extrusion Solver Attributes, Normal Extrusion Solver Attributes, Spacing Extrusion Solver Attributes

getExtrusionBoundaryCondition

$block getExtrusionBoundaryCondition edge_con_pair

This action gets the boundary condition at a given connector region.

Parameters

edge_con_pairThis required parameter is a two-element list consisting of the integer edge index and the integer connector index within the edge.

Returns

This action returns the string name of the boundary condition, except in the case of DatabaseConstrained and AdjacentGrid.  In those cases, this action returns a list containing the name of the boundary condition and the pertinent entities (pw::DatabaseEntity or pw::DomainStructured).

Boundary Conditions

ConstantXGrid points on the front maintain a constant X coordinate value.
ConstantYGrid points on the front maintain a constant Y coordinate value.
ConstantZGrid points on the front maintain a constant Z coordinate value.
FloatingXGrid points on the front maintain a constant Y and Z coordinate value (only X floats).
FloatingYGrid points on the front maintain a constant Z and X coordinate value (only Y floats).
FloatingZGrid points on the front maintain a constant X and Y coordinate value (only Z floats).
ArbitraryPlaneDetermines the plane in which the connector lies and constrains the grid points to that plane as the front advances.
DatabaseConstrainedGrid points in the front are projected to one or more database surfaces using closest point projection method.
AdjacentGridGrid points in the front are constrained to match the grid points in an existing domain.

See Also

setExtrusionBoundaryCondition

setExtrusionBoundaryCondition

$block setExtrusionBoundaryCondition edge_con_pair boundary_condition ?entity_list?

This action sets the boundary condition at a given connector region.

Parameters

edge_con_pairThis required parameter is a two-element list consisting of the integer edge index and the integer connector index within the edge.
boundary_conditionThis required parameter is the string boundary condition name.
entity_listThis optional parameter must be provided for the AdjacentGrid or DatabaseConstrained conditions.  For AdjacentGrid, it is a list of pw::DomainStructured.  For DatabaseConstrained, it is a list of pw::DatabaseEntity.

Returns

This action returns nothing.

See Also

getExtrusionBoundaryCondition

Generic Extrusion Solver Attributes

Mode

$block get/setExtrusionSolverAttribute Mode < NormalAlgebraic | Path | Rotate | Translate >

This gets/sets the extrusion mode of this block.  This has no effect or returns the default if the block is not suitable for extrusion or re-extrusion.

Type

A string with options < NormalAlgebraic | Path | Rotate | Translate >.

Default

The default for this attribute is NormaAlgebraic.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtHeight

$block get/setExtrusionSolverAttribute StopAtHeight < height | Off | Default >

This specifies or disables the height stop condition.

Type

A float in the range (0, inf] or a string with options < Off | Default >.

Default

The default for this attribute is Off.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtAspectRatio

$block get/setExtrusionSolverAttribute StopAtAspectRatio < ratio | Off | Default >

This specifies or disables the max aspect ratio stop condition.

Type

A float in the range (1.0, inf] or a string with options < Off | Default >.

Default

The default for this attribute is Off.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtSkewAngle

$block get/setExtrusionSolverAttribute StopAtSkewAngle < angle | Off | Default >

This specifies or disables the min skew angle stop condition.

Type

A float in the range (0, inf] or a string withi options < Off | Default >.

Default

The default for this attribute is Off.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtPositiveSkewJacobian

$block get/setExtrusionSolverAttribute StopAtPositiveSkewJacobian < Default | Off | bool_value >

This enables / disables the positive skew Jacobian stop condition.

Type

A boolean or string with options < Default | Off > where Off or false disables the positive skew Jacobian stop condition.

Default

The default for this attribute is true.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtZeroJacobian

$block get/setExtrusionSolverAttribute StopAtZeroJacobian < Default | Off | bool_value >

This enables / disables the zero Jacobian stop condition.

Type

A boolean or string with options < Default | Off > where Off or false disable the zero Jacobian stop condition.

Default

The default for this attribute is true.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtNegativeSkewJacobian

$block get/setExtrusionSolverAttribute StopAtNegativeSkewJacobian < Default | Off | bool_value >

This enables / disables the negative skew Jacobian stop condition.

Type

A boolean or string with options < Default | Off > where Off or false disable the negative skew Jacobian stop condition.

Default

The default for this attribute is true.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtNegativeJacobian

$block get/setExtrusionSolverAttribute StopAtNegativeJacobian < Default | Off | bool_value >

This enables / disables the negative Jacobian stop condition.

Type

A boolean or string with options < Default | Off > where Off or false disable the negative Jacobian stop condition.

Default

The default for this attribute is true.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

DirectionFlipped

$block get/setExtrusionSolverAttribute DirectionFlipped flipped

This specifies whether the extrusion direction is flipped.

Type

A boolean where true indicates the extrusion direction is reversed.

Default

The default for this attribute is false.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

PlaneAngleTolerance

$block get/setExtrusionSolverAttribute PlaneAngleTolerance < Default | tolerance >

This specifies the angle tolerance for determining when an arbitrary plane BC is considered equal to a Cartesian plane BC.

Type

A string with the value < Default > or a float in the range [0.0, 90.0).

Default

The default for this attribute is 0.0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

PlaneDeviationTolerance

$block get/setExtrusionSolverAttribute PlaneDeviationTolerance < Default | tolerance >

This specifies the deviation tolerance for determining when an arbitrary plane BC is considered to be planar.

Type

A string with the value < Default > or a float in the range [0.0, inf).

Default

The default for this attribute is 0.0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

Translational Extrusion Solver Attributes

TranslateDirection

$block get/setExtrusionSolverAttribute TranslateDirection direction

This gets/sets the direction vector for translate extrusion.

Type

A direction vector.

Default

The default for this attribute is (1, 0, 0).

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

TranslateDistance

$block get/setExtrusionSolverAttribute TranslateDistance distance

This gets/sets the distance for translate extrusion.

Type

A float indicating the total distance for the translation extrusion.  The valid range is any value greater than 0.0.

Default

The default for this attribute is 1.0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

Path Extrusion Solver Attributes

PathConnectors

$block get/setExtrusionSolverAttribute PathConnectors <con_list>

This gets/sets a list of connectors for the path.

Type

A list of pw::Connector optionally preceded with a string with value < Forward | Reverse > indicating the direction of the chain of connectors.  When querying, the direction is always the first entry in the list.  The remaining list members are the connectors comprising the path.

Default

The default for this attribute is an empty list.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

PathMaximumSteps

$block getExtrusionSolverAttribute PathMaximumSteps

This is the maximum number of steps available as the path extrusion is configured.

Type

An integer indicating the computed maximum number of avaiable path extrusion steps.

Information

This attribute is read only.

See Also

getExtrusionSolverAttribute

PathUseTangent

$block get/setExtrusionSolverAttribute PathUseTangent use

This gets/sets the flag indicating if the path extrusion should be rotated tangentally to the path connector.

Type

A boolean indicating whether the path extrusion should be rotated.

Default

The default for this attribute is true.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

Rotational Extrusion Solver Attributes

RotateAxisStart

$block get/setExtrusionSolverAttribute RotateAxisStart begin_xyz

This gets/sets the starting point of the rotation axis for rotate extrusion.

Type

An xyz vector for the start of the rotation axis.

Default

The default for this attribute is (0, 0, 0).

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

RotateAxisEnd

$block get/setExtrusionSolverAttribute RotateAxisEnd end_xyz

This gets/sets the ending point of the rotation axis for rotate extrusion.

Type

An xyz vector for the end of the rotation axis.

Default

The default for this attribute is (1, 0, 0).

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

RotateAngle

$block get/setExtrusionSolverAttribute RotateAngle degrees

This gets/sets the angle (degrees) for rotational extrusion.

Type

A float in the range [0.0, 360].

Default

The default for this attribute is 0.0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

Normal Extrusion Solver Attributes

NormalInitialStepSize

$block get/setExtrusionSolverAttribute NormalInitialStepSize < Default | size >

This gets/sets the size of the first marching step to value.

Type

A string with the value < Default > or a float in the range (0.0, infinity).

Default

The default for this attribute is 0.01.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalMaximumStepSize

$block get/setExtrusionSolverAttribute NormalMaximumStepSize < Default | size >

This gets/sets the upper limit for the marching step size.

Type

A string with the value < Default > or a float in the range [0.0, infinity) where 0.0 disables the upper limit.

Default

The default for this attribute is 0.0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalMinimumStepSize

$block get/setExtrusionSolverAttribute NormalMinimumStepSize < Default | size >

This gets/sets a upper limit for the marching step size.

Type

A string with the value < Default > or a float in the range [0.0, infinity) where 0.0 disables the upper limit.

Default

The default for this attribute is 0.0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalCornerFactor

$block get/setExtrusionSolverAttribute NormalCornerFactor factor

This gets/sets a scale factor for reducing the local marching step in convex regions and increasing the marching step size in concave regions.

Type

A string with the value < Default > or a float in the range [1.0, 100).

Default

The default for this attribute is 5.0.

Information

This attribute only affects algebraic normal extrusion.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalDirectionRelaxation

$block get/setExtrusionSolverAttribute NormalDirectionRelaxation < Default | factor >

The normals in the marching direction are smoothed locally using a LaPlace filter.  This option gets/sets the relaxation factor for the filter.

Type

A string with the value < Default > or a float in the range [0.0, 1.0].

Default

The default for this attribute is Default.

Information

This attribute only affects algebraic normal extrusion.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalDirectionRelaxationIterations

$block get/setExtrusionSolverAttribute NormalDirectionRelaxationIterations < Default | iterations >

The normals in the marching direction are smoothed locally using a Lalace filter.  This option gets/sets the number of marching iterations for the filter.

Type

A string with the value < Default > or an integer in the range [0, infinity).

Default

The default for this attribute is Default.

Information

This attribute only affects algebraic normal extrusion.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalStepSizeRelaxation

$block get/setExtrusionSolverAttribute NormalStepSizeRelaxation < Default | factor >

This gets/sets the relaxation smoothing factor.  The marching step size is smoothed locally using a LaPlace filter.

Type

A string with the value < Default > or a float in the range [0.0, 1.0].

Default

The default for this attribute is Default.

Information

This attribute only affects algebraic normal extrusion.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalStepSizeRelaxationIterations

$block get/setExtrusionSolverAttribute NormalStepSizeRelaxationIterations < Default | iterations >

This gets/sets the number of marching iterations for the LaPlace filter.  The marching step size is smoothed locally using a LaPlace filter.

Type

A string with the value < Default > or an integer in the range [0, infinity).

Default

The default for this attribute is Default.

Information

This attribute only affects algebraic normal extrusion.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalFeatureSmoothing

$block get/setExtrusionSolverAttribute NormalFeatureSmoothing < Default | bool_value >

This specifies whether knife edge features are smoothed.

Type

A string with the value < Default > or a boolean where false diables smoothing of knife edge features.

Default

The default for this attribute is true.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalQualitySmoothing

$block get/setExtrusionSolverAttribute NormalQualitySmoothing < Default | bool_value >

This enables/disables normal smoothing based on a quality metric.

Type

A string with the value < Default > or a boolean where false disables normal quality-based smoothing.

Default

The default for this attribute is true.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalInteriorOnlySmoothing

$block get/setExtrusionSolverAttribute NormalInteriorOnlySmoothing < Default | bool_value >

This enables/disables interior only quality based smoothing.

Type

A string with the value < Default > or a boolean where false disables interior-only quality-based smoothing.

Default

The default for this attribute is false.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalMaximumIterationsSmoothing

$block get/setExtrusionSolverAttribute NormalMaximumIterationsSmoothing < Default | maxIters >

This specifies/retrieves the maximum number of smoothing iterations.

Type

A string with the value < Default > or an integer in the range (1, infinity).

Default

The default for this attribute is 5.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalBlendExponentSmoothing

$block get/setExtrusionSolverAttribute NormalBlendExponentSmoothing < Default | blendExp >

This specifies/retrieves the blend exponent for smoothing.  A value of zero uses the local minimum cell quality metric at the node normal.  A value of 2 uses the average cell quality metric at the node normal.  A value in between is a blending of the two approaches.

Type

A string with the value < Default > or a float in the range (0.0, 2.0).

Default

The default for this attribute is 2.0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

Spacing Extrusion Solver Attributes

SpacingMode

$block get/setExtrusionSolverAttribute SpacingMode < Algebraic | Connector | Default >

This gets/sets the spacing configuration for the extrusion.  “Algebraic” mode uses a linear spacing for translational, rotational and path extrusions.  For normal extrusions, the “Algebraic” mode spaces the grid by applying a geometric growth controlled by SpacingGrowthFactor.

Type

A string with options < Algebraic | Connector | Default >.

Default

The default for this attribute is Algebraic.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

SpacingGrowthFactor

$block get/setExtrusionSolverAttribute SpacingGrowthFactor < Default | factor >

This specifies how the marching step size will grow from its initial value.

Type

A string with the value < Default > or a float in the range (0.0, infinity).

Default

The default for this attribute is 1.10.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

SpacingConnectors

$block get/setExtrusionSolverAttribute SpacingConnectors spacing_pairs

This gets/sets the collection of connector-object and subconnector-index pairs that specify how the marching step size will grow from its initial value.

Type

This attribute is a list of subconnectors where each entry is a list of pw::Connector object and integer subconnector index.  If the pw::Connector only has one subconnector, the index can be omitted.  The list can be optionally begin with the literal string Forward or Reverse, indicating the direction of the chain of subconnectors.  This is only necessary when the list of subconnectors is comprised of a single subconnector.  Otherwise, the direction can be determined from the order of the subconnector list.

Default

The default for this attribute is an empty list.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

A face is part of a block boundary, consisting of oriented, edge-connected pw::Domain objects.
pw::BlockExtruded create
This action creates a new extruded block object.
pw::BlockExtruded createFromPoints ?-triangles tricellArray? ?-quadrilaterals quadCellArray? ?-splitAngle angle? ?-splitMultiLoop? extrudePoints
This action, given at least one cell-type array and an extruded path of a list of lists of xyz vector values, creates an extruded block.
A vector is a list of float values.
$block getPoint ?-constrained constrainedVar? < index | ijk_index >
This action gets the position of a block grid point.
$block setPoint < index | ijk_index > point
This action sets the position of a block interior grid point.
$block setPoints extrudePoints
This action extrudes the block along the path specified by the extrudePoints list.
$block isInteriorIndex < index | ijk_index >
This action checks to see if an index corresponds to a point in the interior of the block.
$block getAdjacentIndices ?-linear? < index | ijk_index >
This action returns the indices that are directly connected to the specified index.
$block getCellsUsingIndex ?-linear? < index | ijk_index >
This action returns the indices that are directly connected to the specified index.
$blk getLinearIndex ijk_index
This converts a block’s ijk index to a linear index.
An index is a list of integer values.
$block getPosition ?-grid? < index | ijk_index >
This action gets the position in the defining space of the block at the given index.
$block getXYZ ?-grid? < index | ijk_index >
This action gets the position of the block in model space at the given index.
$block getCell < index | ijk_index >
This action gets the indices of the given cell.
$block getFace < index | boundary >
This action gets the face at the given index or computational boundary.
$block addFace face
This action adds a face to the block.
$entity canReExtrude
This action returns true if the entity can be re-extruded.
$block getExtrusionSolverAttribute att_name ?value_type?
This action gets the named extrusion solver attribute.
$block setExtrusionSolverAttribute att_name att_value
This action sets the named extrusion solver attribute.
$block getExtrusionBoundaryCondition edge_con_pair
This action gets the boundary condition at a given connector region.
$block setExtrusionBoundaryCondition edge_con_pair boundary_condition ?entity_list?
This action sets the boundary condition at a given connector region.
$block get/setExtrusionSolverAttribute Mode < NormalAlgebraic | Path | Rotate | Translate >
This gets/sets the extrusion mode of this block.
$block get/setExtrusionSolverAttribute StopAtHeight < height | Off | Default >
This specifies or disables the height stop condition.
$block get/setExtrusionSolverAttribute StopAtAspectRatio < ratio | Off | Default >
This specifies or disables the max aspect ratio stop condition.
$block get/setExtrusionSolverAttribute StopAtSkewAngle < angle | Off | Default >
This specifies or disables the min skew angle stop condition.
$block get/setExtrusionSolverAttribute StopAtPositiveSkewJacobian < Default | Off | bool_value >
This enables / disables the positive skew Jacobian stop condition.
$block get/setExtrusionSolverAttribute StopAtZeroJacobian < Default | Off | bool_value >
This enables / disables the zero Jacobian stop condition.
$block get/setExtrusionSolverAttribute StopAtNegativeSkewJacobian < Default | Off | bool_value >
This enables / disables the negative skew Jacobian stop condition.
$block get/setExtrusionSolverAttribute StopAtNegativeJacobian < Default | Off | bool_value >
This enables / disables the negative Jacobian stop condition.
$block get/setExtrusionSolverAttribute DirectionFlipped flipped
This specifies whether the extrusion direction is flipped.
$block get/setExtrusionSolverAttribute PlaneAngleTolerance < Default | tolerance >
This specifies the angle tolerance for determining when an arbitrary plane BC is considered equal to a Cartesian plane BC.
$block get/setExtrusionSolverAttribute PlaneDeviationTolerance < Default | tolerance >
This specifies the deviation tolerance for determining when an arbitrary plane BC is considered to be planar.
$block get/setExtrusionSolverAttribute TranslateDirection direction
This gets/sets the direction vector for translate extrusion.
$block get/setExtrusionSolverAttribute TranslateDistance distance
This gets/sets the distance for translate extrusion.
$block get/setExtrusionSolverAttribute PathConnectors <con_list>
This gets/sets a list of connectors for the path.
$block getExtrusionSolverAttribute PathMaximumSteps
This is the maximum number of steps available as the path extrusion is configured.
$block get/setExtrusionSolverAttribute PathUseTangent use
This gets/sets the flag indicating if the path extrusion should be rotated tangentally to the path connector.
$block get/setExtrusionSolverAttribute RotateAxisStart begin_xyz
This gets/sets the starting point of the rotation axis for rotate extrusion.
$block get/setExtrusionSolverAttribute RotateAxisEnd end_xyz
This gets/sets the ending point of the rotation axis for rotate extrusion.
$block get/setExtrusionSolverAttribute RotateAngle degrees
This gets/sets the angle (degrees) for rotational extrusion.
$block get/setExtrusionSolverAttribute NormalInitialStepSize < Default | size >
This gets/sets the size of the first marching step to value.
$block get/setExtrusionSolverAttribute NormalMaximumStepSize < Default | size >
This gets/sets the upper limit for the marching step size.
$block get/setExtrusionSolverAttribute NormalMinimumStepSize < Default | size >
This gets/sets a upper limit for the marching step size.
$block get/setExtrusionSolverAttribute NormalCornerFactor factor
This gets/sets a scale factor for reducing the local marching step in convex regions and increasing the marching step size in concave regions.
$block get/setExtrusionSolverAttribute NormalDirectionRelaxation < Default | factor >
The normals in the marching direction are smoothed locally using a LaPlace filter.
$block get/setExtrusionSolverAttribute NormalDirectionRelaxationIterations < Default | iterations >
The normals in the marching direction are smoothed locally using a Lalace filter.
$block get/setExtrusionSolverAttribute NormalStepSizeRelaxation < Default | factor >
This gets/sets the relaxation smoothing factor.
$block get/setExtrusionSolverAttribute NormalStepSizeRelaxationIterations < Default | iterations >
This gets/sets the number of marching iterations for the LaPlace filter.
$block get/setExtrusionSolverAttribute NormalFeatureSmoothing < Default | bool_value >
This specifies whether knife edge features are smoothed.
$block get/setExtrusionSolverAttribute NormalQualitySmoothing < Default | bool_value >
This enables/disables normal smoothing based on a quality metric.
$block get/setExtrusionSolverAttribute NormalInteriorOnlySmoothing < Default | bool_value >
This enables/disables interior only quality based smoothing.
$block get/setExtrusionSolverAttribute NormalMaximumIterationsSmoothing < Default | maxIters >
This specifies/retrieves the maximum number of smoothing iterations.
$block get/setExtrusionSolverAttribute NormalBlendExponentSmoothing < Default | blendExp >
This specifies/retrieves the blend exponent for smoothing.
$block get/setExtrusionSolverAttribute SpacingMode < Algebraic | Connector | Default >
This gets/sets the spacing configuration for the extrusion.
$block get/setExtrusionSolverAttribute SpacingGrowthFactor < Default | factor >
This specifies how the marching step size will grow from its initial value.
$block get/setExtrusionSolverAttribute SpacingConnectors spacing_pairs
This gets/sets the collection of connector-object and subconnector-index pairs that specify how the marching step size will grow from its initial value.
Base type for all glyph types
Entity type
Base type for all grid entities.
A block is a volume grid bounded by one or more pw::Faces.
An extruded block is a step-wise constructed prismatic volume originating from one or more pw::Face objects.
An integer is a whole number.
A float is a fractional number.
A string is an array of characters.
A point is a position either in model space or database parameter space.
A structured block is a computationally orthogonal volume grid, bounded by exactly six pw::FaceStructured faces, any of which can be degenerate in one (line) or zero (pole) dimensions.
$block getPosition ?-grid? index
This action gets the position in the defining space of the block at the given index.
$block getPosition ?-grid? < index | ijk_index >
This action gets the position in the defining space of the block at the given index.
$con getPosition ?< -grid | -control | -parameter | -arc | -X | -Y | -Z | -closest >? value
This action gets a position on a connector in the defining space of the connector.
$dom getPosition ?-grid? value
This action gets a position in the defining space of the domain.
$dom getPosition ?-grid? value
This action gets the position in the defining space of the domain at the given index.
$block getXYZ ?-grid? index
This action gets the position of the block in model space at the given index.
$block getXYZ ?-grid? < index | ijk_index >
This action gets the position of the block in model space at the given index.
$con getXYZ ?< -grid | -control | -parameter | -arc | -X | -Y | -Z | -closest >? value
This action gets the model space position on a connector.
$dom getXYZ ?-grid? value
This action gets a position of the domain in model space.
$dom getXYZ ?-grid? value
This action gets the position of the domain in model space at the given index.
An unstructured face is a collection of edge-connected pw::Domain objects that are used to build watertight boundaries of unstructured blocks.
A boolean is represented as a 0 or 1, with 0 being false and 1 being true.
Base type for all database entities
A structured domain is a computationally orthogonal surface grid bounded by exactly four edges, any of which can be degenerate in the zero dimension (pole).
A connector is a computationally one-dimensional grid entity, defined in the parameter space of one or more end-connected curve segments.
Close