pw::DomainStructured

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).

Derives From

pw::Object pw::Entity pw::GridEntity pw::Domain

Summary
pw::DomainStructuredA structured domain is a computationally orthogonal surface grid bounded by exactly four edges, any of which can be degenerate in the zero dimension (pole).
Static Actions
createThis action creates a new structured domain object.
createOnDatabaseThis action creates new structured domain objects on the given database entities.
createFromConnectorsThis action creates new structured domain objects from the given connectors.
createFromPointsThis action, given a list of lists of xyz vector values or database-constrained points, creates a new domain.
joinThis action joins as many of the given structured domains together as possible.
qualifyEdgesThis action checks if a list of edges would be valid for defining a structured domain.
getOverlappingDomainsThis action will get the domains that share corners with the edges passed in.
getAutoCompleteHintThis action is valid only when 2 or more edges have been defined, it returns a list of connectors that will complete the domain definition.
getDomainsFromDatabaseThis action gets a list of domains that are constrained to the given databases.
getDomainSubGridsFromDatabaseThis action gets a list of subgrids that are constrained to the given databases.
Static Defaults
InteriorControl (Default)This default is the interior control function of a structured domain when it is created.
EdgeControl (Default)This default is the boundary control function of all edges of a structured domain when it is created.
SolverEngine (Default)This default is the elliptic solver engine employed when smoothing a structured domain.
Instance Actions
getPointThis action gets the position of a domain grid point.
setPointThis action sets the position of a domain interior grid point.
isInteriorIndexThis action checks to see if an index corresponds to a point in the interior of the domain.
getLinearIndexThis converts a domain’s ij index to a integer linear index.
getPositionThis action gets the position in the defining space of the domain at the given index.
getXYZThis action gets the position of the domain in model space at the given index.
getCellThis action gets the indices of the given cell.
getCellsUsingIndexReturns the indices of the cells whose connectivity includes the specified index.
getXYZsAtIndexThis action gets a line of points in the given direction at the given index.
createSubGridThis action creates a subgrid on this domain.
getSubGridCountThis action gets the number of subgrids in this domain.
getSubGridThis action gets the subgrid at the given index.
getSubGridsThis action gets the subgrid list.
removeSubGridThis action removes the subgrid from the domain.
getEllipticSolverResidualThis action gets the last elliptic solver residual info for the domain/subgrid at the given index.
getEdgeThis action gets the edge at the given index or computational boundary.
projectThis action projects this domain onto one or more database entities.
splitThis action splits this domain in the given direction at the given indices.
joinThis action joins the given domain to this domain.
setOrientationThis action sets the orientation of this domain, by specifying the imin and jmin edges of the domain.
alignOrientationThis action aligns the IJK orientation of the given domains with this domain.
canReExtrudeThis action returns true if the entity can be re-extruded.
triangulateThis action creates an unstructured domain by triangulating this domain.
getInitializeMethodThis action gets the initialization method for this domain.
setInitializeMethodThis action sets the initialization method for this domain.
getEllipticSolverAttributeThis action gets the named elliptic solver attribute.
setEllipticSolverAttributeThis action sets the named elliptic solver attribute.
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 edge side.
setExtrusionBoundaryConditionThis action sets the boundary condition at a given connector region.
getExtrusionBoundaryConditionStepSuppressionThis action gets the step suppression factor applied to the boundary condition at a given edge side.
setExtrusionBoundaryConditionStepSuppressionThis action sets the step suppression factor applied to the boundary condition at a given edge side.
Elliptic Solver Attributes
ShapeConstraintThis attribute is the shape constraint of the structured domain.
ShapeProjectionThis attribute is the shape projection method when constrained to database entities.
SolverEngineThis attribute is the elliptic solver engine employed when smoothing a structured domain.
MultiGridRelaxationFactorThis attribute is the relaxation factor of the multi-grid algorithm.
MultiGridProlongationFactorThis attribute is the Prolongation factor of the multi-grid algorithm.
RelaxationFactorThis attribute is the relaxation factor of the succesive over- relaxtion algorithm.
InteriorControlThis attribute is the interior control function of a structured domain.
EdgeControlThis attribute is the boundary control function of a structured domain Edge.
EdgeSpacingCalculationThis attribute is the boundary control function spacing calculation method.
EdgeSpacingBlendThis attribute is the boundary control function spacing blend method.
EdgeAngleCalculationThis attribute is the boundary control function angle calculation method.
EdgeAngleBlendThis attribute is the boundary control function angle blend method.
EdgeConstraintThis attribute is the boundary constraints of the structured domain.
Generic Extrusion Solver Attributes
ModeThis attribute is the extrusion mode of this domain.
ShapeConstraintThis attribute is the shape constraint of the extrusion.
StopAtHeightThis attribute specifies a height stop condition or disables the stop condition with Off.
StopAtAspectRatioThis attribute specifies a max aspect ratio stop condition or disables the stop condition with Off.
StopAtSkewAngleThis attribute specifies a min skew angle stop condition or disables the stop condition with Off.
StopAtPositiveSkewJacobianThis attribute enables / disables the positive skew Jacobian stop condition.
StopAtZeroJacobianThis attribute enables / disables the zero Jacobian stop condition.
StopAtNegativeSkewJacobianThis attribute enables / disables the negative skew Jacobian stop condition.
StopAtNegativeJacobianThis attribute enables / disables the negative Jacobian stop condition.
Translational Extrusion Solver Attributes
TranslateDirectionThis attribute is the direction vector for translate extrusion.
TranslateDistanceThis attribute is the distance for translate extrusion.
Path Extrusion Solver Attributes
PathConnectorsThis attribute is a list of connectors for the path.
PathMaximumStepsThis attribute is the maximum number of steps available as the path extrusion is configured.
PathUseTangentThis attribute is the flag indicating if the path extrusion should be rotated tangentially to the path connector.
Rotational Extrusion Solver Attributes
RotateAxisStartThis attribute is the start position of the axis for rotate extrusion.
RotateAxisEndThis attribute is the end position of the axis for rotate extrusion.
RotateAngleThis attribute is the angle (degrees) for rotational extrusion.
Normal Extrusion Solver Attributes
NormalAspectRatioThis attribute is a factor that is applied to the step size in high aspect regions.
NormalExplicitSmoothingThis attribute sepcifies the explicit smoothing coefficient for the transverse direction.
NormalImplicitSmoothingThis attribute sepcifies the implicit smoothing coefficient for the transverse direction.
NormalKinseyBarthSmoothingThis attribute is the Kinsey-Barth coefficient to control smoothing in the marching direction.
NormalVolumeSmoothingThis attribute determines how rapidly grid point clustering along the initial grid will be relaxed as the grid is extruded.
NormalMarchingModeThis attribute gets/sets the marching mode for the extrusion.
NormalMarchingVectorThis attribute gets/sets the marching vector direction for extrusion.
NormalInitialStepSizeThis attribute gets/sets the value of the first marching step size.
NormalMaximumStepSizeThis attribute gets/sets an upper limit for the marching step size.
NormalMinimumStepSizeThis attribute gets/sets the upper limit for the marching step size.
NormalCornerFactorThis attribute gets/sets the scale factor for reducing/increasing the local marching step size in convex/concave regions.
NormalGridAngleThis attribute gets/sets the angle limit the normal marching vector can deviate.
NormalGridAngleIterationsThis attribute gets/sets the number of smoothing iterations performed on the normal direction vector.
NormalDirectionRelaxationThis attribute gets/sets the relaxation factor for the local Laplacian smoothing of the normal marching direction vector.
NormalDirectionRelaxationIterationsThis attribute gets/sets the number of smoothing iterations performed on the normal marching direction vector.
NormalStepSizeRelaxationThis attribute gets/sets the relaxation factor for the local Laplacian smoothing of the marching step size.
NormalStepSizeRelaxationIterationsThis attribute gets/sets the number of smoothing iterations performed on the marching step size.
Spacing Extrusion Solver Attributes
SpacingModeThis gets/sets the spacing configuration for the extrusion.
SpacingGrowthFactorThis gets/sets 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::DomainStructured create

This action creates a new structured domain object.

Parameters

This action has no parameters.

Returns

This action returns a new pw::DomainStructured object, with no edges or interior points.

See Also

createOnDatabase, createFromConnectors, createFromPoints, pw::Domain.addEdge

createOnDatabase

pw::DomainStructured createOnDatabase ?-merge tolerance? ?-splitConnectors split_angle? ?-joinConnectors join_angle? ?-parametricConnectors mode? ?-reject rejectVar? entities

This action creates new structured domain objects on the given database entities.

Parameters

-merge toleranceThis optional parameter is the tolerance for automatic connector merging.  This is a float with the range [0, infinity) and the default is 0 which means that no merging will be done.
-splitConnectors split_angleThis optional parameter is the turning angle to split connectors.  This is a float with the range [0, 180) and the default is 0 which means that no splitting will be done.
-joinConnectors join_angleThis optional parameter is the turning angle to join connectors.  This is a float with the range [0, 180) and the default is 0 which means that no joining will be done.
-parametricConnectors modeThis optional parameter is the string mode for how connectors are created on parametric surfaces with options EndToEnd and Aligned.  The default is EndToEnd.
-reject rejectVarThis optional parameter is a variable name to receive a list of pw::DatabaseEntity objects that were rejected for placing connectors on; if this is not given, no rejections will be reported.
entitiesThis required parameter is a list of pw::DatabaseEntity objects.

Returns

This action returns a list of new pw::DomainStructured objects.

Information

This command supports progress updates.

See Also

create, createFromConnectors, createFromPoints

createFromConnectors

pw::DomainStructured createFromConnectors ?-manifold? ?-solid? ?-reject rejectVar? connectors

This action creates new structured domain objects from the given connectors.

Parameters

-manifoldThis optional flag is the notification to limit domain creation to maintain a manifold topology.
-solidThis optional flag is the notification to create domains to close groups of domains into solids.
-reject rejectVarThis optional parameter is a variable name to receive a list of pw::Connector objects that were not used in creating the domains.
connectorsThis required parameter is a list of pw::Connector objects.

Returns

This action returns a list of new pw::DomainStructured objects.

Information

This command supports progress updates.

See Also

create, createFromPoints, createOnDatabase, pw::Edge.create, pw::Edge.addConnector, pw::Domain.addEdge, pw::Creator

Notes

While this command will produce identical results when run with the exact same input, it may produce different results for slight variations in the input connectors.  The domains may be created in a different order or may be created with different orientations.  Use the explicit domain building routines (pw::Edge.create, create, pw::Edge.addConnector, and pw::Domain.addEdge commands) to build the domain in a controlled manner.

If this command is run inside of a Create pw::Mode, it will only be able to assemble domains from entities that were created within the same pw::Mode.  If entities created outside of the pw::Mode are also included, the assembly will fail.  Instead, use explicit assembly by creating the pw::Edge objects directly.

createFromPoints

pw::DomainStructured createFromPoints points

This action, given a list of lists of xyz vector values or database-constrained points, creates a new domain.

Parameters

pointsThis required parameter is the list of lists of xyz vector values or database-constrained points.

Returns

This action returns the domain.  If the specifications match an existing domain, the existing domain will be returned.  Otherwise, the newly created domain will be returned.

See Also

create, createFromConnectors, createOnDatabase

Example

This example creates a structured domain from list of lists of XYZ vector values.

Code

package require PWI_Glyph 3.18.3
pw::Application reset
set idim 5
set jdim 7
set origin {10 10 10}
set ivec {4 0 0}
set jvec {0 6 0}

set p000 $origin
# Generate two-dimensional XYZ array
set pts [list]
for {set j 1} {$j <= $jdim} {incr j} {
  set y [ expr { [lindex $p000 1] + $jdim - \
      [ expr {[lindex $jvec 1] * $j / $jdim} ] } ]
  set iList [list]
  for {set i 1} {$i <= $idim} {incr i} {
    set x [ expr { [lindex $p000 0] + $idim - \
      [ expr {[lindex $ivec 0] * $i / $idim} ] } ]
    set pt [pwu::Vector3 set $x $y 10]
    lappend iList $pt
  }
  lappend pts $iList
}

# Create domain using two-dimensional XYZ array
set dom [pw::DomainStructured createFromPoints $pts]
puts "Dimension [$dom getPointCount]"

Output

Dimension (5 7)

join

pw::DomainStructured join ?-reject rejectVar? domains

This action joins as many of the given structured domains together as possible.

Parameters

-reject rejectVarThis optional parameter is a variable name to receive a list of pw::DomainStructured objects that were not used in joining.
domainsThis required parameter is a list of pw::DomainStructured objects to join.

Returns

This action returns a list of the pw::DomainStructured objects that were joined.  The domains will contain sub grids that match the sub grids that were in the original domains, as well as a sub grid for each of the original domains.  These sub grids will be ordered by their minimum index in I, and then J order.

Information

This command supports progress updates.

qualifyEdges

pw::DomainStructured qualifyEdges edges

This action checks if a list of edges would be valid for defining a structured domain.  The edges will be reversed as needed to maintain continuity.

Parameters

edgesThis required parameter is a list of pw::Edge objects.

Returns

This action returns a boolean, true if a valid set of edges.

getOverlappingDomains

pw::DomainStructured getOverlappingDomains edges

This action will get the domains that share corners with the edges passed in.

Parameters

edgesThis required parameter is a list of pw::Edge objects.

Returns

This action returns a list of the pw::DomainStructured objects that overlap with the domain that would be created from the edges passed in.

getAutoCompleteHint

pw::DomainStructured getAutoCompleteHint edges

This action is valid only when 2 or more edges have been defined, it returns a list of connectors that will complete the domain definition.

Parameters

edgesThis required parameter is a list of pw::Edge objects defined so far.

Returns

This action returns a list of pw::Connector objects to continue the domain edge definition (may be an empty list).

getDomainsFromDatabase

pw::DomainStructured getDomainsFromDatabase ?-exclusive? database

This action gets a list of domains that are constrained to the given databases.

Parameters

-exclusiveThis optional flag only allows domains that are exclusively on the given database.
databaseThis required parameter is a list of pw::DatabaseEntity objects.

Returns

This action returns a list of pw::Domain objects.

Example

This example shows how to get a list of constrained domains from a given quilt and shell.  $shell(1) and $quilt(1) are referencing an existing shell and quilt.

Code

set doms [pw::DomainStructured getDomainsFromDatabase \
  [list $quilt(1) $shell(1)]]

getDomainSubGridsFromDatabase

pw::DomainStructured getDomainSubGridsFromDatabase ?-exclusive? database

This action gets a list of subgrids that are constrained to the given databases.

Parameters

-exclusiveThis optional flag only allows subgrids that are exclusively on the given database.
databaseThis required parameter is a list of pw::DatabaseEntity objects.

Returns

This action returns a list of pw::DomainSubGrid objects.

Example

This example shows how to get a list of constrained subdomains from a given quilt and shell.  $shell(1) and $qlt(1) are referencing an existing shell and quilt.

Code

set subdoms [pw::DomainStructured getDomainSubGridsFromDatabase \
[list $qlt(1) $shell(1)]]

Static Defaults

InteriorControl (Default)

pw::DomainStructured get/setDefault InteriorControl < ThomasMiddlecoff | Laplace | Fixed >

This default is the interior control function of a structured domain when it is created.

Type

A string with options < ThomasMiddlecoff | Laplace | Fixed >.

Default

The default value is ThomasMiddlecoff.

See Also

InteriorControl

EdgeControl (Default)

pw::DomainStructured get/setDefault EdgeControl < HilgenstockWhite | StegerSorenson | None >

This default is the boundary control function of all edges of a structured domain when it is created.

Type

A string with options < HilgenstockWhite | StegerSorenson | None >.

Default

The default value is HilgenstockWhite.

See Also

EdgeControl

SolverEngine (Default)

pw::DomainStructured get/setDefault SolverEngine < MulitGrid | SuccessiveOverRelaxation >

This default is the elliptic solver engine employed when smoothing a structured domain.

Type

A string with options < MultiGrid | SuccessiveOverRelaxation >.

Default

The default value is MultiGrid.

See Also

SolverEngine

Instance Actions

getPoint

$dom getPoint ?-constrained constrainedVar? < index | ij_index >

This action gets the position of a domain grid point.

Parameters

indexThis optional parameter is the integer linear index of the grid point to get in the range [1, number of points].
ij_indexThis optional parameter is the ij 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 ij_index parameter must be specified.

Returns

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

setPoint

$dom setPoint < index | ij_index > point

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

Parameters

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

Information

Either index or ij_index parameter must be specified.

Returns

This action returns nothing.

isInteriorIndex

$dom isInteriorIndex < index | ij_index >

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

Parameters

indexThis optional parameter is the integer linear index of the point to check in the range [1, number of points]
ij_indexThis optional parameter is the ij index of the point to check.

Information

Either index or ij_index parameter must be specified.

Returns

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

getLinearIndex

$dom getLinearIndex ij_index

This converts a domain’s ij index to a integer linear index.

Parameters

ijk_indexThis required parameter is the ijk index to convert.

Returns

This action returns the integer linear index value of the point.

getPosition

$dom getPosition ?-grid? value

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

Parameters

-gridThis optional flag is the notification to get the position at a grid point.  The value is a linear integer index or an ij index.  This is the default option.
valueThis required parameter is the value to get the position at.

Returns

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

getXYZ

$dom getXYZ ?-grid? value

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

Parameters

-gridThis optional flag is the notification to get the position at a grid point.  The value is a linear integer index or an ij index.  This is the default option.
valueThis required parameter is the value to get the position at.

Returns

This action returns an XYZ vector.

getCell

$dom getCell ?-uncollapsed? < index | ij_index >

This action gets the indices of the given cell.

Parameters

-uncollapsedIf this optional flag is specified, degenerate quad cells are returned without coincident grid points collapsed.  By default, degenerate quad cells are collapsed before they are returned (see Notes).  If a quad cell does NOT contain any coincident grid points, this option is ignored and a normal quad cell is returned.
indexThis optional parameter is the the linear integer index of the cell to get.
ij_indexThis optional parameter is the ij index of the cell to get.

Information

Either index or ij_index must be specified.

Returns

This action returns a list of linear integer point indices if the index parameter is used, or a list of ij point indices if the ij_index parameter is used.

Notes

Collaped (degenerate) quad cells are possible if a domain contains one or more poles.  A collapsed quad may be returned as a 3-point tri, a 2-point bar, or a single point.

getCellsUsingIndex

$dom getCellsUsingIndex ?-linear? < index | ij_index >

Returns the indices of the cells whose connectivity includes the specified index.

Parameters

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

Information

Either index or ij_index parameter must be specified.

Returns

This action returns a list of cell entries using the specified point.  Each cell entry is a list of domain point indices comprising the cell.

The form of each domain 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 ij_index is used and -linear is not specified, each cell entry will be a list of ij indices.

getXYZsAtIndex

$dom getXYZsAtIndex ?< -I | -J >? index

This action gets a line of points in the given direction at the given index.

Parameters

-IThis optional flag is the notification to use a constant I index.  This is the default.
-JThis optional flag is the notification to use a constant J index.
indexThis required parameter is the integer index to get the line at in the range [1, dimension in I or J].

Returns

This action returns a list of XYZ vectors.

createSubGrid

$dom createSubGrid min_ij max_ij

This action creates a subgrid on this domain.

Parameters

min_ijThis required parameter is the minimum ij index.
max_ijThis required parameter is the maximum ij index.

Returns

This action returns a new pw::DomainSubGrid object.

getSubGridCount

$dom getSubGridCount

This action gets the number of subgrids in this domain.

Parameters

This action has no parameters.

Returns

This action returns the integer number of subgrids.

getSubGrid

$dom getSubGrid index

This action gets the subgrid at the given index.

Parameters

indexThis required parameter is the integer index of the subgrid to get in the range [1, number of subgrids].

Returns

This action returns a pw::DomainSubGrid object.

getSubGrids

$dom getSubGrids

This action gets the subgrid list.

Parameters

This action has no parameters.

Returns

This action returns a pw::DomainSubGrid object list.

removeSubGrid

$dom removeSubGrid < index | subgrid >

This action removes the subgrid from the domain.

Parameters

indexThis optional parameter is the integer index of the subgrid to remove in the range [1, number of subgrids].
subgridThis optional parameter is a pw::DomainSubGrid object to remove.

Information

Either index or subgrid must be specified.

Returns

This action returns nothing.

getEllipticSolverResidual

$domain getEllipticSolverResidual ?-subgrid index? dataVar

This action gets the last elliptic solver residual info for the domain/subgrid at the given index.

Parameters

-subgrid indexThis optional parameter is the integer index of the subgrid in the range [1, number of subgrids].
dataVarThis required parameters is the string name of an array variable to receive residual information.  The array will be cleared prior to setting any new values.

Returns

This action returns nothing.

Data Array

The data array variable will contain the following elements:

TotalResidualThe root mean square of the point residuals.
MaximumResidualThe maximum point residual.
MaximumIndexThe index of the maximum point residual.

Example

This example shows how to get the last elliptic solver residual info for a domain refenced by $domain.

Code

$domain getEllipticSolverResidual residInfo
puts "Total residual: $residInfo(TotalResidual)"
puts "Max. residual: $residInfo(MaximumResidual)"
puts "Max. residual index: $residInfo(MaximumIndex)"

getEdge

$domain getEdge < index | boundary >

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

Parameters

indexThis optional parameter is the index of the edge to get in the range [1, number of edges].
boundaryThis optional parameter is the string computational boundary with options < IMinimum | IMaximum | JMinimum | JMaximum >.

Returns

This action returns a pw::Edge object.

Information

Either the edge index or computational boundary must be specified.

project

$dom project ?-type proj_type? ?-direction direction? ?-center center? ?-axis point normal? ?<-interior | -shape>? ?dbentities?

This action projects this domain onto one or more database entities.

Parameters

-type proj_typeThis optional parameter is the string projection type to perform with options < ClosestPoint | Linear | SphericalIn | SphericalOut | CylindricalIn | CylindricalOut >.
-direction directionThis optional parameter is the projection vector for linear projection.  The default is determined by the entity and can be queried using pw::Domain.getDefaultProjectDirection.
-center centerThis optional parameter is the center point vector for spherical projection.  The default is (0, 0, 0).
-axis point normalThis optional parameter is the axis defined by a point vector and normal vector used by cylindrical projection; The default point is (0, 0, 0) and the default normal is (1, 0, 0).
-interiorIf this optional flag is present, only the interior of the entities are projected.
-shapeIf this optional flag is present, the shape of the domain’s connectors will be projected to the database and the original distributions will be reapplied after the projection.
dbentitiesThis optional parameter is a list of surface-like pw::DatabaseEntity objects to project onto.  If none are given, project to any currently enabled, visible database surface-like entities.

Returns

This action returns nothing.

See Also

pw::Domain.getDefaultProjectDirection

Example

This example shows how to project a domain linearly along the Z axis onto the given quilt.  $dom(1) and $quilt(1) are referencing an existing domain and quilt.

Code

$dom(1) project -type Linear -direction "0 0 1" $quilt(1)

split

$dom split ?< -I | -J >? indices

This action splits this domain in the given direction at the given indices.

Parameters

-IThis optional flag is the notification to split at a constant I index.  This is the default.
-JThis optional flag is the notification to split at a constant J index.
indicesThis required parameter is a list of integer indices to split at in the range (1, dimension in I or J).

Returns

This action returns a list of pw::DomainStructured objects.

Information

Any duplicate indices will be ignored, as well as indices at the limits of the domain.

join

$dom join domain ?side?

This action joins the given domain to this domain.

Parameters

domainThis required parameter is the pw::DomainStructured object to join.
sideThis optional string parameter is the given domain’s side to join to this domain.  Valid values are < Any | IMinimum | IMaximum | JMinimum | JMaximum >.

Returns

This action returns nothing.

Information

The joined domain will contain sub grids that match the sub grids that were in the original domains, as well as a sub grid for each of the original domains.  These sub grids will be ordered by their minimum index in I, and then J order.

setOrientation

$dom setOrientation i_edge j_edge

This action sets the orientation of this domain, by specifying the imin and jmin edges of the domain.  A domain used in a baffle face can not be flipped.

Parameters

i_edgeThis required parameter is the integer index or string boundary to be used as the Imin Edge.
j_edgeThis required parameter is the integer index or string boundary to be used as the Jmin Edge.

Returns

This action returns nothing.

Information

For both the i_egde and j_edge the following boundary keywords or the associated index may be used: JMinimum = 1, IMaximum = 2, JMaximum = 3, IMinimum = 4.

alignOrientation

$dom alignOrientation domains

This action aligns the IJK orientation of the given domains with this domain.  If any domains in the given list are not topologically connected to this domain, they will be ignored.  An error is raised if a domain in a baffle face is specified in the list of domains.

Parameters

domainsThis required parameter is a list of pw::DomainStructured objects to align.

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]"
  }
}

triangulate

$dom triangulate ?-link? ?-unbalanced option? ?method?

This action creates an unstructured domain by triangulating this domain.

Parameters

-linkIf provided, this optional flag maintains a permanent link between the structured domain and the resulting unstructured domain.  Any future changes in the structured domain will automatically result in the unstructured domain being retriangulated from the updated structured domain.  The link is broken if the structured domain is destroyed.  This option is invalid if Initialized is specified as the method.
-unbalanced optionThis optional parameter determines how the unstructured domain will be updated if the linked structured domain becomes unbalanced.  This option is invalid if Initialized is specified as the method.  The two options are < Initialize | Interpolate >.  The Interpolate option sets the solver pw::DomainUnstructured.Algorithm to ThinSurfaceInterpolation.  With Initialize, the domain will be initialized using the default or otherwise explicitly set algorithm.
methodThis optional parameter is the string triangulation method with options < BestFit | Aligned | Initialized | KeepQuads >.  BestFit is the default option.

Returns

This action returns a pw::DomainUnstructured object.

Information

The different methods have the following behavoir:

  • BestFit splits quads individually to minimize the triangle included angles.
  • Aligned will split all structured quads in the same direction.
  • Initialize will empty all interior points and retriangulate.
  • KeepQuads will convert a structured grid into an unstructured grid by keeping all of the quad elements except for those adjacent to poles, which will be converted to triangles.

getInitializeMethod

$dom getInitializeMethod ?-axis pointVar normalVar?

This action gets the initialization method for this domain.

Parameters

-axis pointVar normalVarThis optional parameter specifies a string variable name to receive the polar axis point vector and a string variable name to receive the polar axis normal vector.

Returns

This action returns the string initialization method with options < Standard | Linear | Polar | Orthogonal | Parametric | Fit >.

See Also

setInitializeMethod

setInitializeMethod

$dom setInitializeMethod ?-axis point normal? method

This action sets the initialization method for this domain.

Parameters

-axis point normalThis optional parameter is the polar axis point vector and normal vector.
methodThis required parameter is the initialization method with options < Standard | Linear | Polar | Orthogonal | Parametric | Fit >.

Returns

This action returns nothing.

See Also

getInitializeMethod

getEllipticSolverAttribute

$dom getEllipticSolverAttribute ?-edge index? att_name ?value_type?

This action gets the named elliptic solver attribute.

Parameters

-edge indexThis optional parameter is the integer index of the edge to get the attribute from.  If not given and the attribute applies to edges, a list of attributes will be returned.
att_nameThis required parameter is the string name of the attribute to get.
value_typeThis optional parameter is the type of value to get with options < Actual | Default >.

Returns

This action returns the actual or default value of the attribute.

See Also

setEllipticSolverAttribute

setEllipticSolverAttribute

$dom setEllipticSolverAttribute ?-edge index? att_name att_value

This action sets the named elliptic solver attribute.

Parameters

-edge indexThis optional parameter is the integer index of the edge to set the attribute to.  If not given the attribute is applied to all edges.
att_nameThis required parameter is the string name of the attribute to set.
att_valueThis required parameter is the new string, integer or float value of the attribute.

Returns

This action returns nothing.

See Also

getEllipticSolverAttribute

getExtrusionSolverAttribute

$dom getExtrusionSolverAttribute att_name ?value_type?

This action gets the named extrusion solver attribute.

Parameters

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

Returns

This action returns the actual or default string, integer or float value of the attribute.

See Also

setExtrusionSolverAttribute

setExtrusionSolverAttribute

$dom setExtrusionSolverAttribute att_name att_value

This action sets the named extrusion solver attribute.

Parameters

att_nameThis required parameter is the string name of the attribute to set.
att_valueThis required parameter is the new string, integer or float value of the attribute.

See Also

getExtrusionSolverAttribute

Returns

This action returns nothing.

getExtrusionBoundaryCondition

$domain getExtrusionBoundaryCondition edge_side

This action gets the boundary condition at a given edge side.

Parameters

edge_sideThis required parameter is the string side of the edge with options < Begin | End >.

Returns

This action returns the name of the boundary condition and any additional arguments (for example, the Splay condition also returns the splay factor).  The additional arguments are in the same format and order as needed for the setExtrusionBoundaryCondition command.

Boundary Conditions

SplayGrid boundaries move outward according to the splay factor.
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.
SymmetryXGrid symmetry is maintained in the X direction.
SymmetryYGrid symmetry is maintained in the Y direction.
SymmetryZGrid symmetry is maintained in the Z direction.

See Also

setExtrusionBoundaryCondition

setExtrusionBoundaryCondition

$domain setExtrusionBoundaryCondition edge_side boundary_condition ?splay_factor?

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

Parameters

edge_sideThis required parameter is the string side of the edge with options < Begin | End >.
boundary_conditionThis required parameter is the string type of boundary condition with options < Splay | ConstantX | ConstantY | ConstantZ | SymmetryX | SymmetryY | SymmetryZ >.
splay_factorThis optional parameter must be given if the boundary_condition given is Splay.  The parameter is either the literal string Default or a float in the range [0.0, 1.0].  0.0 indicates no splay while 1.0 is full splay.  If Default is specified, a splay of 0.1 is used.

Returns

This action returns nothing.

See Also

getExtrusionBoundaryCondition

getExtrusionBoundaryConditionStepSuppression

$domain getExtrusionBoundaryConditionStepSuppression edge_side

This action gets the step suppression factor applied to the boundary condition at a given edge side.

Parameters

edge_sideThis required parameter is the string side of the edge with options < Begin | End >.

Returns

This action returns the value of the edge suppression applied upon the requested side.

See Also

setExtrusionBoundaryConditionStepSuppression

setExtrusionBoundaryConditionStepSuppression

$domain setExtrusionBoundaryConditionStepSuppression edge_side factor

This action sets the step suppression factor applied to the boundary condition at a given edge side.

Parameters

edge_sideThis required parameter is the string side of the edge with options < Begin | End >.
factorThis required parameter is a float value with the range [-1.0, 1.0].

Returns

This action returns nothing.

See Also

getExtrusionBoundaryConditionStepSuppression

Elliptic Solver Attributes

ShapeConstraint

$dom get/setEllipticSolverAttribute ShapeConstraint < constraint | db_list >

This attribute is the shape constraint of the structured domain.

Type

A string with options < Free | Fixed | Database > or an explicit list of pw::DatabaseEntity objects.

Default

The default for this attribute is Free.

See Also

setEllipticSolverAttribute, getEllipticSolverAttribute

ShapeProjection

$dom get/setEllipticSolverAttribute ShapeProjection < method | normal >

This attribute is the shape projection method when constrained to database entities.

Type

A string with options < Closest | Linear > or an explicit normal vector for linear projection.  When Linear is specified the projection uses the domain’s default projection direction which can be queried with pw::Domain.getDefaultProjectDirection.

Default

The default for this attribute is Closest.

See Also

setEllipticSolverAttribute, getEllipticSolverAttribute

SolverEngine

$domain get/setEllipticSolverAttribute SolverEngine function

This attribute is the elliptic solver engine employed when smoothing a structured domain.

Type

A string with options < MultiGrid | SuccessiveOverRelaxation >.

Default

The defult for this attribute is the value in the SolverEngine (Default) when the domain was created.

See Also

setEllipticSolverAttribute, getEllipticSolverAttribute, SolverEngine

MultiGridRelaxationFactor

$domain get/setEllipticSolverAttribute MultiGridRelaxationFactor < Default | value >

This attribute is the relaxation factor of the multi-grid algorithm.

Type

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

Default

The default for this attribute is Default.

See Also

setEllipticSolverAttribute, getEllipticSolverAttribute

MultiGridProlongationFactor

$domain get/setEllipticSolverAttribute MultiGridProlongationFactor < Default | value >

This attribute is the Prolongation factor of the multi-grid algorithm.

Type

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

Default

The default for this attribute is Default.

See Also

setEllipticSolverAttribute, getEllipticSolverAttribute

RelaxationFactor

$dom get/setEllipticSolverAttribute RelaxationFactor < Optimal | Nominal | value >

This attribute is the relaxation factor of the succesive over- relaxtion algorithm.

Type

A string with options < Optimal | Nominal > or a float in the range (0.0, 2.0].

Default

The default for this attribute is Optimal.

See Also

setEllipticSolverAttribute, getEllipticSolverAttribute

InteriorControl

$dom get/setEllipticSolverAttribute InteriorControl < ThomasMiddlecoff | Laplace | Fixed >

This attribute is the interior control function of a structured domain.

Type

This attribute is a string with options < ThomasMiddlecoff | Laplace | Fixed >.

Default

The default for this attribute is the value in the InteriorControl (Default) default when the domain was created.

See Also

setEllipticSolverAttribute, getEllipticSolverAttribute, InteriorControl (Default)

EdgeControl

$dom get/setEllipticSolverAttribute ?-edge index? EdgeControl < HilgenstockWhite | StegerSorenson | None >

This attribute is the boundary control function of a structured domain Edge.

Type

A string with options < HilgenstockWhite | StegerSorenson | None >.

Default

The default for this attribute is the value in the EdgeControl (Default) default when the domain was created.

See Also

setEllipticSolverAttribute, getEllipticSolverAttribute, EdgeControl (Default)

EdgeSpacingCalculation

$dom get/setEllipticSolverAttribute ?-edge index? EdgeSpacingCalculation < Interpolate | Current | Adjacent | value >

This attribute is the boundary control function spacing calculation method.

Type

A string with options < Interpolate | Current | Adjacent > or an explicit spacing value in the range (0.0, infinity).

Default

The default for this attribute is Interpolate.

See Also

setEllipticSolverAttribute, getEllipticSolverAttribute

EdgeSpacingBlend

$dom get/setEllipticSolverAttribute ?-edge index? EdgeSpacingBlend < Exponential | Linear | value >

This attribute is the boundary control function spacing blend method.

Type

A string with options < Exponential | Linear > or an explicit float decay value in the range [1, infinity).

Default

The default for this attribute is Exponential.

See Also

setEllipticSolverAttribute, getEllipticSolverAttribute

EdgeAngleCalculation

$dom get/setEllipticSolverAttribute ?-edge index? EdgeAngleCalculation < Orthogonal | Interpolate | Current | Adjacent >

This attribute is the boundary control function angle calculation method.

Type

A string with options < Orthogonal | Interpolate | Current | Adjacent >.

Default

The default for this attribute is Orthogonal.

See Also

setEllipticSolverAttribute, getEllipticSolverAttribute

EdgeAngleBlend

$dom get/setEllipticSolverAttribute ?-edge index? EdgeAngleBlend < Exponential | Linear | value >

This attribute is the boundary control function angle blend method.

Type

A string with options < Exponential | Linear > or an explicit float decay value in the range [1, infinity).

Default

The default for this attribute is Exponential.

See Also

setEllipticSolverAttribute, getEllipticSolverAttribute

EdgeConstraint

$dom get/setEllipticSolverAttribute ?-edge index? EdgeConstraint < Fixed | Floating | Orthogonal >

This attribute is the boundary constraints of the structured domain.

Type

A string wth options < Fixed | Floating | Orthogonal >.

Default

The default for this attribute is Fixed.

See Also

setEllipticSolverAttribute, getEllipticSolverAttribute

Generic Extrusion Solver Attributes

Mode

$dom get/setExtrusionSolverAttribute Mode mode

This attribute is the extrusion mode of this domain.

Type

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

Default

The default for this attribute is NormalHyperbolic.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

ShapeConstraint

$dom get/setExtrusionSolverAttribute ShapeConstraint < Free | Database > ?db_list?

This attribute is the shape constraint of the extrusion.

Type

A string with options < Free | Database >.  If Database is specified, a list of surface-like pw::DatabaseEntity objects must follow.

Default

The default for this attribute is Free.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtHeight

$dom get/setExtrusionSolverAttribute StopAtHeight < Default | Off | Value >

This attribute specifies a height stop condition or disables the stop condition with Off.

Type

A float in the range (0, infinity] or a string with options < Off | Default > where Off disables the total height stop condition.

Default

The default for this attribute is Off.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtAspectRatio

This attribute specifies a max aspect ratio stop condition or disables the stop condition with Off.

Type

A float in the range (0, infinity] or a string with options < Off | Default > where Off disables the aspect ratio stop condition.

Default

The default for this attribute is Off.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtSkewAngle

This attribute specifies a min skew angle stop condition or disables the stop condition with Off.

Type

A float in the range (0, infinity] or a string with options < Off | Default > where Off disables the skew angle stop condition.

Default

The default for this attribute is Off.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtPositiveSkewJacobian

$dom get/setExtrusionSolverAttribute StopAtPositiveSkewJacobian < Default | Off | bool >

This attribute enables / disables the positive skew Jacobian stop condition.

Type

A boolean where true indicates the positive skew Jacobian stop condition is applied, or a string with options < Default | Off > where Off disables the positive skew Jacobian stop condition.

Default

The default for this attribute is true.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtZeroJacobian

$dom get/setExtrusionSolverAttribute StopAtZeroJacobian < Default | Off | bool >

This attribute enables / disables the zero Jacobian stop condition.

Type

A boolean where true indicates that the zero Jacobian stop condition is applied, or a string with options < Default | Off > where Off disables the zero Jacobian stop condition.

Default

The default for this attribute is true.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtNegativeSkewJacobian

$dom get/setExtrusionSolverAttribute StopAtNegativeSkewJacobian < Default | Off | bool >

This attribute enables / disables the negative skew Jacobian stop condition.

Type

A boolean where true indicates that the negative Jacobian stop condition is applied, or a string with options < Default | Off > where Off disables the negative skew Jacobian stop condition.

Default

The default for this attribute is true.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

StopAtNegativeJacobian

$dom get/setExtrusionSolverAttribute StopAtNegativeJacobian < Default | Off | bool >

This attribute enables / disables the negative Jacobian stop condition.

Type

A boolean where true indicates that the negative Jacobian stop condition is applied.

Default

The default for this attribute is true.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

Translational Extrusion Solver Attributes

TranslateDirection

$dom get/setExtrusionSolverAttribute TranslateDirection < Default | value_XYZ >

This attribute is the direction vector for translate extrusion.

Type

A normalized direction vector.

Default

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

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

TranslateDistance

$dom get/setExtrusionSolverAttribute TranslateDistance < Default | value >

This attribute is the distance for translate extrusion.

Type

A float in the range [0, infinity).

Default

The default for this attribute is 1.0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

Path Extrusion Solver Attributes

PathConnectors

$dom get/setExtrusionSolverAttribute PathConnectors con_list

This attribute is 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

$dom getExtrusionSolverAttribute PathMaximumSteps

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

Type

An integer indicating the maximum number of path steps to extrude.

Default

The default for this attribute is 0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

PathUseTangent

$dom get/setExtrusionSolverAttribute PathUseTangent < Default | bool >

This attribute is the flag indicating if the path extrusion should be rotated tangentially to the path connector.

Type

A boolean where true indicates that the path extrusion should be rotated tangentially to the path connector.

Default

The default for this attribute is true.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

Rotational Extrusion Solver Attributes

RotateAxisStart

$dom get/setExtrusionSolverAttribute RotateAxisStart < Default | value_XYZ >

This attribute is the start position of the axis for rotate extrusion.

Type

An xyz vector or the literal string Default.

Default

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

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

RotateAxisEnd

$dom get/setExtrusionSolverAttribute RotateAxisEnd < Default | value_XYZ >

This attribute is the end position of the axis for rotate extrusion.

Type

An xyz vector or the literal string Default.

Default

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

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

RotateAngle

$dom get/setExtrusionSolverAttribute RotateAngle < Default | value_XYZ >

This attribute is 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

NormalAspectRatio

$dom get/setExtrusionSolverAttribute NormalAspectRatio < Default | value >

This attribute is a factor that is applied to the step size in high aspect regions.  A value of 0.0 results in no change to the step size.

Type

A float in the range [0.0, 1.0].

Default

The default for this attribute is 0.0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalExplicitSmoothing

$dom get/setExtrusionSolverAttribute NormalExplicitSmoothing < Default | value >

This attribute sepcifies the explicit smoothing coefficient for the transverse direction.

Type

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

Default

The default for this attribute is 0.5.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalImplicitSmoothing

This attribute sepcifies the implicit smoothing coefficient for the transverse direction.  The value should be greater than twice the NormalExplicitSmoothing 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.0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalKinseyBarthSmoothing

$dom get/setExtrusionSolverAttribute NormalKinseyBarthSmoothing < Default | value >

This attribute is the Kinsey-Barth coefficient to control smoothing in the marching direction.  Values greater than 1 help to prevent crossing of grid lines in the marching direction.  A value of 3 or better is recommended if the initial grid contains severe concavities.

Type

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

Default

The default for this attribute is 0.0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalVolumeSmoothing

$dom get/setExtrusionSolverAttribute NormalVolumeSmoothing < Default | value >

This attribute determines how rapidly grid point clustering along the initial grid will be relaxed as the grid is extruded.  A value of 0.0 retains the clustering out to the outer boundary.  The Default value of 0.5 rapidly relaxes the clustering.

Type

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

Default

The default for this attribute is 0.5.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalMarchingMode

$dom get/setExtrusionSolverAttribute NormalMarchingMode mode

This attribute gets/sets the marching mode for the extrusion.  “Plane” specifies marching each point from a plane with a normal of the NormalMarchingVector.  “Direction” specifies marching in the direction of the NormalMarchingVector.

Type

A string with options < Plane | Direction >.

Default

The default for this attribute is Plane.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalMarchingVector

$dom get/setExtrusionSolverAttribute NormalMarchingVector value_xyz

This attribute gets/sets the marching vector direction for extrusion.  When NormalMarchingMode is set to “Plane”, this specifies the normal of the plane.  When NormalMarchingMode is set to “Direction”, this specifies the marching direction.

Type

A direction vector.

Default

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

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalInitialStepSize

$dom get/setExtrusionSolverAttribute NormalInitialStepSize value

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

Type

A float in the range (0.0, infinity).

Default

The default for this attribute is the default connector distribution begin spacing, if non-zero or 0.01.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalMaximumStepSize

$dom get/setExtrusionSolverAttribute NormalMaximumStepSize value

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

Type

A float in the range [0, infinity).  0.0 means disable this limit.

Default

The default for this attribute is 0.0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalMinimumStepSize

$dom get/setExtrusionSolverAttribute NormalMinimumStepSize value

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

Type

A float in the range [0, infinity).  0.0 means disable this limit.

Default

The default for this attribute is 0.0.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalCornerFactor

$dom get/setExtrusionSolverAttribute NormalCornerFactor value

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

Type

A float in the range [1, infinity).  The value 1.0 will disable the feature.

Default

The default for this attribute is 5.0.

Information

This attribute only affects algebraic normal extrusion.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalGridAngle

$dom get/setExtrusionSolverAttribute NormalGridAngle < Default | angle >

This attribute gets/sets the angle limit the normal marching vector can deviate.  This attribute is the marching direction is smoothed by adding a component to the local trajectory of each grid line.  This component is obtained by smoothing the grid at the current step, computing the relative movement of each grid point, and adding that movement to the normal vector in the marching direction.  This option limits the component to the given angle (degrees).

Type

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

Default

The default for this attribute is 20.0.

Information

This attribute only affects algebraic normal extrusion.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalGridAngleIterations

$dom get/setExtrusionSolverAttribute NormalGridAngleIterations < Default | iterations >

This attribute gets/sets the number of smoothing iterations performed on the normal direction vector.

Type

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

Default

The default for this attribute is 0.

Information

This attribute only affects algebraic normal extrusion.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalDirectionRelaxation

$dom get/setExtrusionSolverAttribute NormalDirectionRelaxation < Default | factor >

This attribute gets/sets the relaxation factor for the local Laplacian smoothing of the normal marching direction vector.

Type

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

Default

The default for this attribute is 0.5.

Information

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute This attribute only affects algebraic normal extrusion.

NormalDirectionRelaxationIterations

$dom get/setExtrusionSolverAttribute NormalDirectionRelaxationIterations < Default | iterations >

This attribute gets/sets the number of smoothing iterations performed on the normal marching direction vector.

Type

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

Default

The default for this attribute is 5.

Information

This attribute only affects algebraic normal extrusion.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalStepSizeRelaxation

$dom get/setExtrusionSolverAttribute NormalStepSizeRelaxation < Default | factor >

This attribute gets/sets the relaxation factor for the local Laplacian smoothing of the marching step size.

Type

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

Default

The default for this attribute is 0.7.

Information

This attribute only affects algebraic normal extrusion.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

NormalStepSizeRelaxationIterations

$dom get/setExtrusionSolverAttribute NormalStepSizeRelaxationIterations < Default | iterations >

This attribute gets/sets the number of smoothing iterations performed on the marching step size.

Type

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

Default: The default for this attribute is 3.

Information

This attribute only affects algebraic normal extrusion.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

Spacing Extrusion Solver Attributes

SpacingMode

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

This gets/sets the spacing configuration for the extrusion.

Type

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

Default

The default for this attribute is Algebraic.

Information

The Algebraic mode uses a linear spacing for translational, rotational and path extrusions.  For normal extrusions, Algebraic mode spaces the grid by applying a geometric growth controlled by SpacingGrowthFactor.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

SpacingGrowthFactor

$dom get/setExtrusionSolverAttribute SpacingGrowthFactor value

This gets/sets how the marching step size will grow from its initial value.

Type

A float in the range (0.0, infinity).

Default

The default is 1.10.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

SpacingConnectors

$dom get/setExtrusionSolverAttribute SpacingConnectors subcon_list

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

A list of subconnectors where each entry is a list containing a pw::Connector object and subconnector index.  If the pw::Connector only has one subconnector, the index can be omitted.  The direction of the chain of subconnectors can be specified by using either the literal string Forward or Reverse as the very first entry.  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 subconnectors.

Default

The default for this attribute is an empty list.

See Also

setExtrusionSolverAttribute, getExtrusionSolverAttribute

Example

This example sets the SpacingConnectors extrusion solver attribute.  $con(1), $con(2), $con(3), $dom(1) and $dom(2) refer to existing connectors and structured domains.  $con(1) and $con(2) have only one subconnector, while $con(3) has at least two subconnectors.

Code

set spacers [list $con(1) $con(2) [list $con(3) 1] [list $con(3) 2]]
set extruder [pw::Application begin ExtrusionSolver [list $dom(1)]]
  $extruder setExtrusionSolverAttribute Mode Translate
  $extruder setExtrusionSolverAttribute SpacingConnectors $spacers
  $extruder run 10
$extruder end

set spacers [list Reverse $con(2)]
set extruder [pw::Application begin ExtrusionSolver [list $dom(2)]]
  $extruder setExtrusionSolverAttribute Mode Translate
  $extruder setExtrusionSolverAttribute SpacingConnectors $spacers
  $extruder run 10
$extruder end
pw::DomainStructured create
This action creates a new structured domain object.
pw::DomainStructured createOnDatabase ?-merge tolerance? ?-splitConnectors split_angle? ?-joinConnectors join_angle? ?-parametricConnectors mode? ?-reject rejectVar? entities
This action creates new structured domain objects on the given database entities.
pw::DomainStructured createFromConnectors ?-manifold? ?-solid? ?-reject rejectVar? connectors
This action creates new structured domain objects from the given connectors.
pw::DomainStructured createFromPoints points
This action, given a list of lists of xyz vector values or database-constrained points, creates a new domain.
A vector is a list of float values.
A point is a position either in model space or database parameter space.
pw::DomainStructured join ?-reject rejectVar? domains
This action joins as many of the given structured domains together as possible.
pw::DomainStructured qualifyEdges edges
This action checks if a list of edges would be valid for defining a structured domain.
pw::DomainStructured getOverlappingDomains edges
This action will get the domains that share corners with the edges passed in.
pw::DomainStructured getAutoCompleteHint edges
This action is valid only when 2 or more edges have been defined, it returns a list of connectors that will complete the domain definition.
pw::DomainStructured getDomainsFromDatabase ?-exclusive? database
This action gets a list of domains that are constrained to the given databases.
pw::DomainStructured getDomainSubGridsFromDatabase ?-exclusive? database
This action gets a list of subgrids that are constrained to the given databases.
pw::DomainStructured get/setDefault InteriorControl < ThomasMiddlecoff | Laplace | Fixed >
This default is the interior control function of a structured domain when it is created.
pw::DomainStructured get/setDefault EdgeControl < HilgenstockWhite | StegerSorenson | None >
This default is the boundary control function of all edges of a structured domain when it is created.
pw::DomainStructured get/setDefault SolverEngine < MulitGrid | SuccessiveOverRelaxation >
This default is the elliptic solver engine employed when smoothing a structured domain.
$dom getPoint ?-constrained constrainedVar? < index | ij_index >
This action gets the position of a domain grid point.
$dom setPoint < index | ij_index > point
This action sets the position of a domain interior grid point.
$dom isInteriorIndex < index | ij_index >
This action checks to see if an index corresponds to a point in the interior of the domain.
$dom getLinearIndex ij_index
This converts a domain’s ij index to a integer linear index.
An index is a list of integer values.
An integer is a whole number.
$dom getPosition ?-grid? value
This action gets the position in the defining space of the domain at the given index.
$dom getXYZ ?-grid? value
This action gets the position of the domain in model space at the given index.
$dom getCell ?-uncollapsed? < index | ij_index >
This action gets the indices of the given cell.
$dom getCellsUsingIndex ?-linear? < index | ij_index >
Returns the indices of the cells whose connectivity includes the specified index.
$dom getXYZsAtIndex ?< -I | -J >? index
This action gets a line of points in the given direction at the given index.
$dom createSubGrid min_ij max_ij
This action creates a subgrid on this domain.
$dom getSubGridCount
This action gets the number of subgrids in this domain.
$dom getSubGrid index
This action gets the subgrid at the given index.
$dom getSubGrids
This action gets the subgrid list.
$dom removeSubGrid < index | subgrid >
This action removes the subgrid from the domain.
$domain getEllipticSolverResidual ?-subgrid index? dataVar
This action gets the last elliptic solver residual info for the domain/subgrid at the given index.
$domain getEdge < index | boundary >
This action gets the edge at the given index or computational boundary.
$dom project ?-type proj_type? ?-direction direction? ?-center center? ?-axis point normal? ?<-interior | -shape>? ?dbentities?
This action projects this domain onto one or more database entities.
$dom split ?< -I | -J >? indices
This action splits this domain in the given direction at the given indices.
$dom setOrientation i_edge j_edge
This action sets the orientation of this domain, by specifying the imin and jmin edges of the domain.
$dom alignOrientation domains
This action aligns the IJK orientation of the given domains with this domain.
$entity canReExtrude
This action returns true if the entity can be re-extruded.
$dom triangulate ?-link? ?-unbalanced option? ?method?
This action creates an unstructured domain by triangulating this domain.
$dom getInitializeMethod ?-axis pointVar normalVar?
This action gets the initialization method for this domain.
$dom setInitializeMethod ?-axis point normal? method
This action sets the initialization method for this domain.
$dom getEllipticSolverAttribute ?-edge index? att_name ?value_type?
This action gets the named elliptic solver attribute.
$dom setEllipticSolverAttribute ?-edge index? att_name att_value
This action sets the named elliptic solver attribute.
$dom getExtrusionSolverAttribute att_name ?value_type?
This action gets the named extrusion solver attribute.
$dom setExtrusionSolverAttribute att_name att_value
This action sets the named extrusion solver attribute.
$domain getExtrusionBoundaryCondition edge_side
This action gets the boundary condition at a given edge side.
$domain setExtrusionBoundaryCondition edge_side boundary_condition ?splay_factor?
This action sets the boundary condition at a given connector region.
$domain getExtrusionBoundaryConditionStepSuppression edge_side
This action gets the step suppression factor applied to the boundary condition at a given edge side.
$domain setExtrusionBoundaryConditionStepSuppression edge_side factor
This action sets the step suppression factor applied to the boundary condition at a given edge side.
$dom get/setEllipticSolverAttribute ShapeConstraint < constraint | db_list >
This attribute is the shape constraint of the structured domain.
$dom get/setEllipticSolverAttribute ShapeProjection < method | normal >
This attribute is the shape projection method when constrained to database entities.
$domain get/setEllipticSolverAttribute SolverEngine function
This attribute is the elliptic solver engine employed when smoothing a structured domain.
$domain get/setEllipticSolverAttribute MultiGridRelaxationFactor < Default | value >
This attribute is the relaxation factor of the multi-grid algorithm.
$domain get/setEllipticSolverAttribute MultiGridProlongationFactor < Default | value >
This attribute is the Prolongation factor of the multi-grid algorithm.
$dom get/setEllipticSolverAttribute RelaxationFactor < Optimal | Nominal | value >
This attribute is the relaxation factor of the succesive over- relaxtion algorithm.
$dom get/setEllipticSolverAttribute InteriorControl < ThomasMiddlecoff | Laplace | Fixed >
This attribute is the interior control function of a structured domain.
$dom get/setEllipticSolverAttribute ?-edge index? EdgeControl < HilgenstockWhite | StegerSorenson | None >
This attribute is the boundary control function of a structured domain Edge.
$dom get/setEllipticSolverAttribute ?-edge index? EdgeSpacingCalculation < Interpolate | Current | Adjacent | value >
This attribute is the boundary control function spacing calculation method.
$dom get/setEllipticSolverAttribute ?-edge index? EdgeSpacingBlend < Exponential | Linear | value >
This attribute is the boundary control function spacing blend method.
$dom get/setEllipticSolverAttribute ?-edge index? EdgeAngleCalculation < Orthogonal | Interpolate | Current | Adjacent >
This attribute is the boundary control function angle calculation method.
$dom get/setEllipticSolverAttribute ?-edge index? EdgeAngleBlend < Exponential | Linear | value >
This attribute is the boundary control function angle blend method.
$dom get/setEllipticSolverAttribute ?-edge index? EdgeConstraint < Fixed | Floating | Orthogonal >
This attribute is the boundary constraints of the structured domain.
$dom get/setExtrusionSolverAttribute Mode mode
This attribute is the extrusion mode of this domain.
$dom get/setExtrusionSolverAttribute StopAtHeight < Default | Off | Value >
This attribute specifies a height stop condition or disables the stop condition with Off.
$dom get/setExtrusionSolverAttribute StopAtPositiveSkewJacobian < Default | Off | bool >
This attribute enables / disables the positive skew Jacobian stop condition.
$dom get/setExtrusionSolverAttribute StopAtZeroJacobian < Default | Off | bool >
This attribute enables / disables the zero Jacobian stop condition.
$dom get/setExtrusionSolverAttribute StopAtNegativeSkewJacobian < Default | Off | bool >
This attribute enables / disables the negative skew Jacobian stop condition.
$dom get/setExtrusionSolverAttribute StopAtNegativeJacobian < Default | Off | bool >
This attribute enables / disables the negative Jacobian stop condition.
$dom get/setExtrusionSolverAttribute TranslateDirection < Default | value_XYZ >
This attribute is the direction vector for translate extrusion.
$dom get/setExtrusionSolverAttribute TranslateDistance < Default | value >
This attribute is the distance for translate extrusion.
$dom get/setExtrusionSolverAttribute PathConnectors con_list
This attribute is a list of connectors for the path.
$dom getExtrusionSolverAttribute PathMaximumSteps
This attribute is the maximum number of steps available as the path extrusion is configured.
$dom get/setExtrusionSolverAttribute PathUseTangent < Default | bool >
This attribute is the flag indicating if the path extrusion should be rotated tangentially to the path connector.
$dom get/setExtrusionSolverAttribute RotateAxisStart < Default | value_XYZ >
This attribute is the start position of the axis for rotate extrusion.
$dom get/setExtrusionSolverAttribute RotateAxisEnd < Default | value_XYZ >
This attribute is the end position of the axis for rotate extrusion.
$dom get/setExtrusionSolverAttribute RotateAngle < Default | value_XYZ >
This attribute is the angle (degrees) for rotational extrusion.
$dom get/setExtrusionSolverAttribute NormalAspectRatio < Default | value >
This attribute is a factor that is applied to the step size in high aspect regions.
$dom get/setExtrusionSolverAttribute NormalExplicitSmoothing < Default | value >
This attribute sepcifies the explicit smoothing coefficient for the transverse direction.
$dom get/setExtrusionSolverAttribute NormalKinseyBarthSmoothing < Default | value >
This attribute is the Kinsey-Barth coefficient to control smoothing in the marching direction.
$dom get/setExtrusionSolverAttribute NormalVolumeSmoothing < Default | value >
This attribute determines how rapidly grid point clustering along the initial grid will be relaxed as the grid is extruded.
$dom get/setExtrusionSolverAttribute NormalMarchingMode mode
This attribute gets/sets the marching mode for the extrusion.
$dom get/setExtrusionSolverAttribute NormalMarchingVector value_xyz
This attribute gets/sets the marching vector direction for extrusion.
$dom get/setExtrusionSolverAttribute NormalInitialStepSize value
This attribute gets/sets the value of the first marching step size.
$dom get/setExtrusionSolverAttribute NormalMaximumStepSize value
This attribute gets/sets an upper limit for the marching step size.
$dom get/setExtrusionSolverAttribute NormalMinimumStepSize value
This attribute gets/sets the upper limit for the marching step size.
$dom get/setExtrusionSolverAttribute NormalCornerFactor value
This attribute gets/sets the scale factor for reducing/increasing the local marching step size in convex/concave regions.
$dom get/setExtrusionSolverAttribute NormalGridAngle < Default | angle >
This attribute gets/sets the angle limit the normal marching vector can deviate.
$dom get/setExtrusionSolverAttribute NormalGridAngleIterations < Default | iterations >
This attribute gets/sets the number of smoothing iterations performed on the normal direction vector.
$dom get/setExtrusionSolverAttribute NormalDirectionRelaxation < Default | factor >
This attribute gets/sets the relaxation factor for the local Laplacian smoothing of the normal marching direction vector.
$dom get/setExtrusionSolverAttribute NormalDirectionRelaxationIterations < Default | iterations >
This attribute gets/sets the number of smoothing iterations performed on the normal marching direction vector.
$dom get/setExtrusionSolverAttribute NormalStepSizeRelaxation < Default | factor >
This attribute gets/sets the relaxation factor for the local Laplacian smoothing of the marching step size.
$dom get/setExtrusionSolverAttribute NormalStepSizeRelaxationIterations < Default | iterations >
This attribute gets/sets the number of smoothing iterations performed on the marching step size.
$dom get/setExtrusionSolverAttribute SpacingMode < Default | Algebraic | Connector >
This gets/sets the spacing configuration for the extrusion.
$dom get/setExtrusionSolverAttribute SpacingGrowthFactor value
This gets/sets how the marching step size will grow from its initial value.
$dom get/setExtrusionSolverAttribute SpacingConnectors subcon_list
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 domain is a computationally two-dimensional grid entity, bounded by one or more pw::Edges.
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).
$dom addEdge edge
This action adds an edge to the domain.
A float is a fractional number.
A string is an array of characters.
Base type for all database entities
A connector is a computationally one-dimensional grid entity, defined in the parameter space of one or more end-connected curve segments.
pw::Edge create
This action creates a new edge object.
$edge addConnector connector
This action adds a connector to the end of this edge.
The creation mode type
The mode base type
An edge is part of a domain boundary, consisting of oriented, node-connected pw::Connector objects.
A boolean is represented as a 0 or 1, with 0 being false and 1 being true.
A domain sub-grid is a computationally orthogonal, continuous subset of a pw::DomainStructured domain.
$dom getDefaultProjectDirection
This action gets the default projection direction for this domain.
$dom get/setUnstructuredSolverAttribute Algorithm < Delaunay | AdvancingFront | AdvancingFrontOrtho | ThinSurfaceInterpolation >.
This attribute is the algorithm to use when initializing the interior of the domain.
An unstructured domain is a watertight collection of edge-connected surface elements (triangle, quadrilateral, etc.)
Close