Public Member Functions | Public Attributes | List of all members
PYDAFOAM Class Reference
Inheritance diagram for PYDAFOAM:
Inheritance graph
[legend]
Collaboration diagram for PYDAFOAM:
Collaboration graph
[legend]

Public Member Functions

def __init__ (self, comm=None, options=None)
 
def __call__ (self)
 
def zeroTimeAccurateAdjointVectors (self)
 
def saveMultiPointField (self, indexMP)
 
def setMultiPointField (self, indexMP)
 
def calcPrimalResidualStatistics (self, mode)
 
def setTimeInstanceField (self, instanceI)
 
def initTimeInstanceMats (self)
 
def setTimeInstanceVar (self, mode)
 
def writeDesignVariable (self, fileName, xDV)
 
def writeDeformedFFDs (self, counter=None)
 
def writeTotalDeriv (self, fileName, sens, evalFuncs)
 
def getTimeInstanceObjFunc (self, instanceI, objFuncName)
 
def getForwardADDerivVal (self, objFuncName)
 
def evalFunctions (self, funcs, evalFuncs=None, ignoreMissing=False)
 
def evalFunctionsSens (self, funcsSens, evalFuncs=None)
 
def setDVGeo (self, DVGeo)
 
def addFamilyGroup (self, groupName, families)
 
def setMesh (self, mesh)
 
def setEvalFuncs (self, evalFuncs)
 
def getSurfaceConnectivity (self, groupName=None)
 
def getTriangulatedMeshSurface (self, groupName=None, **kwargs)
 
def printFamilyList (self)
 
def setDesignVars (self, x)
 
def writeFieldSensitivityMap (self, objFuncName, designVarName, solutionTime, fieldType, sensVec)
 
def writeSurfaceSensitivityMap (self, objFuncName, designVarName, solutionTime)
 
def writePetscVecMat (self, name, vecMat, mode="Binary")
 
def readPetscVecMat (self, name, vecMat)
 
def solvePrimal (self)
 
def solveAdjoint (self)
 
def mapdXvTodFFD (self, totalDerivXv)
 
def getForces (self, groupName=None)
 
def getAcousticData (self, groupName=None)
 
def calcTotalDeriv (self, dRdX, dFdX, psi, totalDeriv)
 
def calcdFdAOAAnalytical (self, objFuncName, dFdAOA)
 
def runColoring (self)
 
def runDecomposePar (self)
 
def deletePrevPrimalSolTime (self)
 
def renameSolution (self, solIndex)
 
def calcFFD2XvSeedVec (self)
 
def setdXvdFFDMat (self, designVarName, deltaVPointThreshold=1.0e-16)
 
def updateVolumePoints (self)
 
def setSurfaceCoordinates (self, coordinates, groupName=None)
 
def getSurfaceCoordinates (self, groupName=None)
 
def setPrimalBoundaryConditions (self, printInfo=1, printInfoAD=0)
 
def getPointSetName (self)
 
def getSolverMeshIndices (self)
 
def mapVector (self, vec1, groupName1, groupName2, vec2=None)
 
def xv2XvVec (self, xv, xvVec)
 
def xvFlatten2XvVec (self, xv, xvVec)
 
def setOption (self, name, value)
 
def setFieldValue4GlobalCellI (self, fieldName, val, globalCellI, compI=0)
 
def setFieldValue4LocalCellI (self, fieldName, val, localCellI, compI=0)
 
def updateBoundaryConditions (self, fieldName, fieldType)
 
def getOption (self, name)
 
def updateDAOption (self)
 
def syncDAOptionToActuatorDVs (self)
 
def getNLocalAdjointStates (self)
 
def getDVsCons (self)
 
def getStates (self)
 
def getResiduals (self)
 
def setStates (self, states)
 
def convertMPIVec2SeqArray (self, mpiVec)
 
def vec2Array (self, vec)
 
def array2Vec (self, array1)
 
def array2VecSeq (self, array1)
 
def vec2ArraySeq (self, vec)
 

Public Attributes

 version
 
 name
 
 families
 
 dtype
 
 ptSetName
 
 solverInitialized
 
 nSolvePrimals
 
 nSolveAdjoints
 
 primalFail
 
 adjointFail
 
 xvVec
 
 wVec
 
 allSurfacesGroup
 
 allWallsGroup
 
 designSurfacesGroup
 
 couplingSurfacesGroup
 
 xs0
 
 mesh
 
 DVGeo
 
 objFuncValuePrevIter
 
 objFuncNames4Adj
 
 adjTotalDeriv
 
 dRdWTPC
 
 ksp
 
 surfGeoDisp
 
 adjVectors
 
 solverRegistry
 
 pointsSet
 
 dRdW0TPsi
 
 dRdW00TPsi
 
 dR0dW0TPsi
 
 dR0dW00TPsi
 
 dR00dW0TPsi
 
 dR00dW00TPsi
 
 stateMat
 
 stateBCMat
 
 timeVec
 
 timeIdxVec
 
 imOptions
 
 defaultOptions
 
 options
 
 comm
 
 parallel
 
 rank
 
 nProcs
 
 parallelFlag
 
 solver
 
 solverAD
 
 neighbours
 
 xv
 
 basicFamilies
 
 wallList
 
 wVecMPList
 

Detailed Description

Main class for pyDAFoam

Parameters
----------

comm : mpi4py communicator
    An optional argument to pass in an external communicator.

options : dictionary
    The list of options to use with pyDAFoam.

Definition at line 673 of file pyDAFoam.py.

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self,
  comm = None,
  options = None 
)
Initialize class members

Definition at line 689 of file pyDAFoam.py.

Member Function Documentation

◆ __call__()

def __call__ (   self)
Solve the primal

Definition at line 868 of file pyDAFoam.py.

References PYDAFOAM.allSurfacesGroup, PYDAFOAM.designSurfacesGroup, PYDAFOAM.DVGeo, PYDAFOAM.mapVector(), PYDAFOAM.ptSetName, and PYDAFOAM.xs0.

Here is the call graph for this function:

◆ zeroTimeAccurateAdjointVectors()

def zeroTimeAccurateAdjointVectors (   self)

◆ saveMultiPointField()

def saveMultiPointField (   self,
  indexMP 
)
Save the state variable vector to self.wVecMPList

Definition at line 1134 of file pyDAFoam.py.

References PYDAFOAM.wVec, and PYDAFOAM.wVecMPList.

◆ setMultiPointField()

def setMultiPointField (   self,
  indexMP 
)
Set the state variable vector based on self.wVecMPList

Definition at line 1148 of file pyDAFoam.py.

References PYDAFOAM.wVec, and PYDAFOAM.wVecMPList.

◆ calcPrimalResidualStatistics()

def calcPrimalResidualStatistics (   self,
  mode 
)

Definition at line 1162 of file pyDAFoam.py.

References DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.solver, and PYDAFOAM.solverAD.

Here is the call graph for this function:

◆ setTimeInstanceField()

def setTimeInstanceField (   self,
  instanceI 
)
Set the OpenFOAM state variables based on instance index

Definition at line 1168 of file pyDAFoam.py.

References DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.solver, PYDAFOAM.solverAD, and PYDAFOAM.wVec.

Here is the call graph for this function:

◆ initTimeInstanceMats()

def initTimeInstanceMats (   self)

Definition at line 1185 of file pyDAFoam.py.

References PYDAFOAM.getNLocalAdjointStates(), DAOption.getOption(), PYDAFOAM.getOption(), and PYDAFOAM.solver.

Here is the call graph for this function:

◆ setTimeInstanceVar()

def setTimeInstanceVar (   self,
  mode 
)

◆ writeDesignVariable()

def writeDesignVariable (   self,
  fileName,
  xDV 
)
Write the design variable history to files in the json format

Definition at line 1225 of file pyDAFoam.py.

References DAFoamBuilder.comm, PYDAFOAM.comm, OptFuncs.comm, and PYDAFOAM.nSolveAdjoints.

◆ writeDeformedFFDs()

def writeDeformedFFDs (   self,
  counter = None 
)
Write the deformed FFDs to the disk during optimization

Definition at line 1262 of file pyDAFoam.py.

References DAFoamBuilder.comm, PYDAFOAM.comm, and OptFuncs.comm.

Referenced by PYDAFOAM.solvePrimal().

Here is the caller graph for this function:

◆ writeTotalDeriv()

def writeTotalDeriv (   self,
  fileName,
  sens,
  evalFuncs 
)
Write the total derivatives history to files in the json format
This will only write total derivative for evalFuncs

Definition at line 1278 of file pyDAFoam.py.

References DAFoamBuilder.comm, PYDAFOAM.comm, OptFuncs.comm, and PYDAFOAM.nSolveAdjoints.

◆ getTimeInstanceObjFunc()

def getTimeInstanceObjFunc (   self,
  instanceI,
  objFuncName 
)
Return the value of objective function at the given time instance and name

Definition at line 1327 of file pyDAFoam.py.

References PYDAFOAM.solver.

◆ getForwardADDerivVal()

def getForwardADDerivVal (   self,
  objFuncName 
)
Return the derivative value computed by forward mode AD primal solution

Definition at line 1334 of file pyDAFoam.py.

References PYDAFOAM.solverAD.

◆ evalFunctions()

def evalFunctions (   self,
  funcs,
  evalFuncs = None,
  ignoreMissing = False 
)
Evaluate the desired functions given in iterable object,
'evalFuncs' and add them to the dictionary 'funcs'. The keys
in the funcs dictionary will be have an _<ap.name> appended to
them. Additionally, information regarding whether or not the
last analysis with the solvePrimal was successful is
included. This information is included as "funcs['fail']". If
the 'fail' entry already exits in the dictionary the following
operation is performed:

funcs['fail'] = funcs['fail'] or <did this problem fail>

In other words, if any one problem fails, the funcs['fail']
entry will be False. This information can then be used
directly in the pyOptSparse.

Parameters
----------
funcs : dict
    Dictionary into which the functions are saved.

evalFuncs : iterable object containing strings
  If not None, use these functions to evaluate.

ignoreMissing : bool
    Flag to suppress checking for a valid function. Please use
    this option with caution.

Examples
--------
>>> funcs = {}
>>> CFDsolver()
>>> CFDsolver.evalFunctions(funcs, ['CD', 'CL'])
>>> funcs
>>> # Result will look like:
>>> # {'CD':0.501, 'CL':0.02750}

Definition at line 1340 of file pyDAFoam.py.

References PYDAFOAM.objFuncValuePrevIter, PYDAFOAM.primalFail, and PYDAFOAM.solver.

◆ evalFunctionsSens()

def evalFunctionsSens (   self,
  funcsSens,
  evalFuncs = None 
)
Evaluate the sensitivity of the desired functions given in
iterable object,'evalFuncs' and add them to the dictionary
'funcSens'.

Parameters
----------
funcSens : dict
Dictionary into which the function derivatives are saved.

evalFuncs : iterable object containing strings
    The functions the user wants the derivatives of

Examples
--------
>>> funcSens = {}
>>> CFDsolver.evalFunctionsSens(funcSens, ['CD', 'CL'])

Definition at line 1402 of file pyDAFoam.py.

References PYDAFOAM.adjointFail, PYDAFOAM.adjTotalDeriv, PYDAFOAM.dtype, and PYDAFOAM.DVGeo.

◆ setDVGeo()

def setDVGeo (   self,
  DVGeo 
)
Set the DVGeometry object that will manipulate 'geometry' in
this object. Note that <SOLVER> does not **strictly** need a
DVGeometry object, but if optimization with geometric
changes is desired, then it is required.
Parameters
----------
dvGeo : A DVGeometry object.
    Object responsible for manipulating the constraints that
    this object is responsible for.
Examples
--------
>>> CFDsolver = <SOLVER>(comm=comm, options=CFDoptions)
>>> CFDsolver.setDVGeo(DVGeo)

Definition at line 1442 of file pyDAFoam.py.

References PYDAFOAM.DVGeo.

◆ addFamilyGroup()

def addFamilyGroup (   self,
  groupName,
  families 
)
Add a custom grouping of families called groupName. The groupName
must be distinct from the existing families. All families must
in the 'families' list must be present in the mesh file.
Parameters
----------
groupName : str
    User-supplied custom name for the family groupings
families : list
    List of string. Family names to combine into the family group

Definition at line 1461 of file pyDAFoam.py.

References PYDAFOAM.families.

◆ setMesh()

def setMesh (   self,
  mesh 
)
Set the mesh object to the aero_solver to do geometric deformations
Parameters
----------
mesh : MBMesh or USMesh object
    The mesh object for doing the warping

Definition at line 1499 of file pyDAFoam.py.

References PYDAFOAM.allWallsGroup, PYDAFOAM.getSolverMeshIndices(), PYDAFOAM.getSurfaceConnectivity(), PYDAFOAM.getSurfaceCoordinates(), DACheckMesh.mesh, and PYDAFOAM.mesh.

Here is the call graph for this function:

◆ setEvalFuncs()

def setEvalFuncs (   self,
  evalFuncs 
)

Definition at line 1520 of file pyDAFoam.py.

References DAOption.getOption(), and PYDAFOAM.getOption().

Here is the call graph for this function:

◆ getSurfaceConnectivity()

def getSurfaceConnectivity (   self,
  groupName = None 
)
Return the connectivity of the coordinates at which the forces (or tractions) are
defined. This is the complement of getForces() which returns
the forces at the locations returned in this routine.

Parameters
----------
groupName : str
    Group identifier to get only forces cooresponding to the
    desired group. The group must be a family or a user-supplied
    group of families. The default is None which corresponds to
    all wall-type surfaces.

Definition at line 1529 of file pyDAFoam.py.

References PYDAFOAM.allWallsGroup, PYDAFOAM.basicFamilies, and PYDAFOAM.families.

Referenced by PYDAFOAM.getTriangulatedMeshSurface(), PYDAFOAM.setMesh(), and PYDAFOAM.writeSurfaceSensitivityMap().

Here is the caller graph for this function:

◆ getTriangulatedMeshSurface()

def getTriangulatedMeshSurface (   self,
  groupName = None,
**  kwargs 
)
This function returns a trianguled verision of the surface
mesh on all processors. The intent is to use this for doing
constraints in DVConstraints.
Returns
-------
surf : list
   List of points and vectors describing the surface. This may
   be passed directly to DVConstraint setSurface() function.

Definition at line 1578 of file pyDAFoam.py.

References PYDAFOAM.allWallsGroup, DAFoamBuilder.comm, PYDAFOAM.comm, OptFuncs.comm, PYDAFOAM.getSurfaceConnectivity(), and PYDAFOAM.getSurfaceCoordinates().

Here is the call graph for this function:

◆ printFamilyList()

def printFamilyList (   self)
Print a nicely formatted dictionary of the family names

Definition at line 1644 of file pyDAFoam.py.

References PYDAFOAM.families.

◆ setDesignVars()

def setDesignVars (   self,
  x 
)
Set the internal design variables.
At the moment we don't have any internal DVs to set.

Definition at line 1650 of file pyDAFoam.py.

Referenced by PYDAFOAM.setdXvdFFDMat().

Here is the caller graph for this function:

◆ writeFieldSensitivityMap()

def writeFieldSensitivityMap (   self,
  objFuncName,
  designVarName,
  solutionTime,
  fieldType,
  sensVec 
)
Save the field sensitivity dObjFunc/dDesignVar map to disk.

Parameters
----------

objFuncName : str
    Name of the objective function
designVarName : str
    Name of the design variable
solutionTime : float
    The solution time where the sensitivity will be save
fieldType : str
    The type of the field, either scalar or vector
sensVec : petsc vec
    The Petsc vector that contains the sensitivity

Definition at line 1729 of file pyDAFoam.py.

Referenced by PYDAFOAM.solveAdjoint().

Here is the caller graph for this function:

◆ writeSurfaceSensitivityMap()

def writeSurfaceSensitivityMap (   self,
  objFuncName,
  designVarName,
  solutionTime 
)
Save the sensitivity dObjFunc/dXs map to disk. where Xs is the wall surface mesh coordinate

Parameters
----------

objFuncName : str
    Name of the objective function
designVarName : str
    Name of the design variable
solutionTime : float
    The solution time where the sensitivity will be save

Definition at line 1801 of file pyDAFoam.py.

References PYDAFOAM._writeOpenFoamHeader(), PYDAFOAM.allWallsGroup, PYDAFOAM.getSurfaceConnectivity(), PYDAFOAM.getSurfaceCoordinates(), PYDAFOAM.mapVector(), DACheckMesh.mesh, PYDAFOAM.mesh, PYDAFOAM.parallel, and PYDAFOAM.rank.

Referenced by PYDAFOAM.solveAdjoint().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writePetscVecMat()

def writePetscVecMat (   self,
  name,
  vecMat,
  mode = "Binary" 
)
Write Petsc vectors or matrices

Definition at line 1946 of file pyDAFoam.py.

Referenced by PYDAFOAM.solveAdjoint().

Here is the caller graph for this function:

◆ readPetscVecMat()

def readPetscVecMat (   self,
  name,
  vecMat 
)
Read Petsc vectors or matrices

Definition at line 1962 of file pyDAFoam.py.

◆ solvePrimal()

def solvePrimal (   self)
Run primal solver to compute state variables and objectives

Input:
------
xvVec: vector that contains all the mesh point coordinates

Output:
-------
wVec: vector that contains all the state variables

self.primalFail: if the primal solution fails, assigns 1, otherwise 0

Definition at line 1971 of file pyDAFoam.py.

References PYDAFOAM.deletePrevPrimalSolTime(), DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.nSolvePrimals, PYDAFOAM.primalFail, PYDAFOAM.renameSolution(), PYDAFOAM.solver, PYDAFOAM.solverAD, DAOPTION.writeDeformedFFDs, PYDAFOAM.writeDeformedFFDs(), PYDAFOAM.wVec, and PYDAFOAM.xvVec.

Here is the call graph for this function:

◆ solveAdjoint()

def solveAdjoint (   self)
Run adjoint solver to compute the adjoint vector psiVec

Input:
------
xvVec: vector that contains all the mesh point coordinates

wVec: vector that contains all the state variables

Output:
-------
self.adjTotalDeriv: the dict contains all the total derivative vectors

self.adjointFail: if the adjoint solution fails, assigns 1, otherwise 0
Info("Saving the xvVec and wVec vectors to disk....")
self.comm.Barrier()
viewerXv = PETSc.Viewer().createBinary("xvVec_%03d.bin" % self.nSolveAdjoints, mode="w", comm=PETSc.COMM_WORLD)
viewerXv(self.xvVec)
viewerW = PETSc.Viewer().createBinary("wVec_%03d.bin" % self.nSolveAdjoints, mode="w", comm=PETSc.COMM_WORLD)
viewerW(self.wVec)

Definition at line 2004 of file pyDAFoam.py.

References PYDAFOAM.adjointFail, PYDAFOAM.adjTotalDeriv, PYDAFOAM.adjVectors, PYDAFOAM.calcdFdAOAAnalytical(), PYDAFOAM.calcTotalDeriv(), PYDAFOAM.dR00dW00TPsi, PYDAFOAM.dR00dW0TPsi, PYDAFOAM.dR0dW00TPsi, PYDAFOAM.dR0dW0TPsi, PYDAFOAM.dRdW00TPsi, PYDAFOAM.dRdW0TPsi, PYDAFOAM.dRdWTPC, PYDAFOAM.dtype, PYDAFOAM.DVGeo, PYDAFOAM.getNLocalAdjointStates(), DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.mapdXvTodFFD(), PYDAFOAM.nSolveAdjoints, PYDAFOAM.objFuncNames4Adj, PYDAFOAM.renameSolution(), DAPartDeriv.setdXvdFFDMat(), DASolvers.setdXvdFFDMat(), DASolver.setdXvdFFDMat(), PYDAFOAM.setdXvdFFDMat(), DAOption.setOption(), PYDAFOAM.setOption(), PYDAFOAM.solver, PYDAFOAM.solverAD, DAOption.updateDAOption(), DASolvers.updateDAOption(), DASolver.updateDAOption(), PYDAFOAM.updateDAOption(), PYDAFOAM.writeFieldSensitivityMap(), PYDAFOAM.writePetscVecMat(), PYDAFOAM.writeSurfaceSensitivityMap(), PYDAFOAM.wVec, PYDAFOAM.xv, and PYDAFOAM.xvVec.

Here is the call graph for this function:

◆ mapdXvTodFFD()

def mapdXvTodFFD (   self,
  totalDerivXv 
)
Map the Xv derivative (volume derivative) to the FFD derivatives (design variables)
Essentially, we first map the Xv (volume) to Xs (surface) using IDWarp, then, we
further map Xs (surface) to FFD using pyGeo

Input:
------
totalDerivXv: total derivative dFdXv vector

Output:
------
dFdFFD: the mapped total derivative with respect to FFD variables

Definition at line 2489 of file pyDAFoam.py.

References PYDAFOAM.allWallsGroup, DAFoamBuilder.comm, PYDAFOAM.comm, OptFuncs.comm, PYDAFOAM.designSurfacesGroup, PYDAFOAM.dtype, PYDAFOAM.DVGeo, PYDAFOAM.mapVector(), DACheckMesh.mesh, PYDAFOAM.mesh, PYDAFOAM.ptSetName, and PYDAFOAM.xv.

Referenced by PYDAFOAM.solveAdjoint().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getForces()

def getForces (   self,
  groupName = None 
)
Return the forces on this processor on the families defined by groupName.
Parameters
----------
groupName : str
    Group identifier to get only forces cooresponding to the
    desired group. The group must be a family or a user-supplied
    group of families. The default is None which corresponds to
    design surfaces.

Returns
-------
forces : array (N,3)
    Forces on this processor. Note that N may be 0, and an
    empty array of shape (0, 3) can be returned.

Definition at line 2521 of file pyDAFoam.py.

References PYDAFOAM._getSurfaceSize(), DAFoamBuilder.comm, PYDAFOAM.comm, OptFuncs.comm, PYDAFOAM.couplingSurfacesGroup, and PYDAFOAM.solver.

Here is the call graph for this function:

◆ getAcousticData()

def getAcousticData (   self,
  groupName = None 
)
Return the acoustic data on this processor.
Parameters
----------
groupName : str
    Group identifier to get only data cooresponding to the
    desired group. The group must be a family or a user-supplied
    group of families. The default is None which corresponds to
    design surfaces.

Returns
-------
position : array (N,3)
    Face positions on this processor. Note that N may be 0, and an
    empty array of shape (0, 3) can be returned.
normal : array (N,3)
    Face normals on this processor. Note that N may be 0, and an
    empty array of shape (0, 3) can be returned.
area : array (N)
    Face areas on this processor. Note that N may be 0, and an
    empty array of shape (0) can be returned.
forces : array (N,3)
    Face forces on this processor. Note that N may be 0, and an
    empty array of shape (0, 3) can be returned.

Definition at line 2587 of file pyDAFoam.py.

References PYDAFOAM._getSurfaceSize(), and PYDAFOAM.solver.

Here is the call graph for this function:

◆ calcTotalDeriv()

def calcTotalDeriv (   self,
  dRdX,
  dFdX,
  psi,
  totalDeriv 
)
Compute total derivative

Input:
------
dRdX, dFdX, and psi

Output:
------
totalDeriv = dFdX - [dRdX]^T * psi

Definition at line 2693 of file pyDAFoam.py.

Referenced by PYDAFOAM.solveAdjoint().

Here is the caller graph for this function:

◆ calcdFdAOAAnalytical()

def calcdFdAOAAnalytical (   self,
  objFuncName,
  dFdAOA 
)
This function computes partials derivatives dFdAlpha with alpha being the angle of attack (AOA)
We use the analytical method:
CD = Fx * cos(alpha) + Fy * sin(alpha)
CL = - Fx * sin(alpha) + Fy * cos(alpha)
So:
dCD/dAlpha = - Fx * sin(alpha) + Fy * cos(alpha) = CL
dCL/dAlpha = - Fx * cos(alpha) - Fy * sin(alpha) = - CD
NOTE: we need to convert the unit from radian to degree

Definition at line 2710 of file pyDAFoam.py.

References DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.parallelFlag, PYDAFOAM.solver, PYDAFOAM.solverInitialized, and PYDAFOAM.solverRegistry.

Referenced by PYDAFOAM.solveAdjoint().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ runColoring()

def runColoring (   self)
Run coloring solver

Definition at line 2842 of file pyDAFoam.py.

References DAOption.getOption(), PYDAFOAM.getOption(), DAFoamBuilder.options, PYDAFOAM.options, PYDAFOAM.parallelFlag, and PYDAFOAM.solverRegistry.

Here is the call graph for this function:

◆ runDecomposePar()

def runDecomposePar (   self)
Run decomposePar to parallel run

Definition at line 2879 of file pyDAFoam.py.

References PYDAFOAM._writeDecomposeParDict(), DAFoamBuilder.comm, PYDAFOAM.comm, and OptFuncs.comm.

Here is the call graph for this function:

◆ deletePrevPrimalSolTime()

def deletePrevPrimalSolTime (   self)
Delete the previous primal solution time folder

Definition at line 2900 of file pyDAFoam.py.

References DAFoamBuilder.comm, PYDAFOAM.comm, OptFuncs.comm, PYDAFOAM.parallel, and PYDAFOAM.solver.

Referenced by PYDAFOAM.solvePrimal().

Here is the caller graph for this function:

◆ renameSolution()

def renameSolution (   self,
  solIndex 
)
Rename the primal solution folder to specific format for post-processing. The renamed time has the
format like 0.00000001, 0.00000002, etc. One can load these intermediate shapes and fields and
plot them in paraview.
The way it is implemented is that we sort the solution folder and consider the largest time folder
as the solution folder and rename it

Parameters
----------
solIndex: int
    The major interation index

Definition at line 2925 of file pyDAFoam.py.

References DAFoamBuilder.comm, PYDAFOAM.comm, OptFuncs.comm, and PYDAFOAM.parallel.

Referenced by PYDAFOAM.solveAdjoint(), and PYDAFOAM.solvePrimal().

Here is the caller graph for this function:

◆ calcFFD2XvSeedVec()

def calcFFD2XvSeedVec (   self)
Calculate the FFD2XvSeedVec vector:
Given a FFD seed xDvDot, run pyGeo and IDWarp and propagate the seed to Xv seed xVDot:
    xSDot = \\frac{dX_{S}}{dX_{DV}}\\xDvDot
    xVDot = \\frac{dX_{V}}{dX_{S}}\\xSDot

Then, we assign this vector to FFD2XvSeedVec in DASolver
This will be used in forward mode AD runs

Definition at line 2980 of file pyDAFoam.py.

References PYDAFOAM.allSurfacesGroup, PYDAFOAM.designSurfacesGroup, PYDAFOAM.dtype, PYDAFOAM.DVGeo, DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.mapVector(), DACheckMesh.mesh, PYDAFOAM.mesh, PYDAFOAM.ptSetName, PYDAFOAM.solverAD, PYDAFOAM.xs0, and PYDAFOAM.xvVec.

Here is the call graph for this function:

◆ setdXvdFFDMat()

def setdXvdFFDMat (   self,
  designVarName,
  deltaVPointThreshold = 1.0e-16 
)
Perturb each design variable and save the delta volume point coordinates
to a mat, this will be used to calculate dRdFFD and dFdFFD in DAFoam

Parameters
----------
deltaVPointThreshold: float
    A threshold, any delta volume coordinates smaller than this value will be ignored

Definition at line 3029 of file pyDAFoam.py.

References PYDAFOAM.DVGeo, DAOption.getOption(), PYDAFOAM.getOption(), DACheckMesh.mesh, PYDAFOAM.mesh, PYDAFOAM.setDesignVars(), PYDAFOAM.solver, and PYDAFOAM.updateVolumePoints().

Referenced by PYDAFOAM.solveAdjoint().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateVolumePoints()

def updateVolumePoints (   self)
Update the vol mesh point coordinates based on the current values of design variables

Definition at line 3101 of file pyDAFoam.py.

References PYDAFOAM.allSurfacesGroup, PYDAFOAM.designSurfacesGroup, PYDAFOAM.DVGeo, PYDAFOAM.mapVector(), DACheckMesh.mesh, PYDAFOAM.mesh, PYDAFOAM.pointsSet, PYDAFOAM.ptSetName, PYDAFOAM.setSurfaceCoordinates(), and PYDAFOAM.xs0.

Referenced by PYDAFOAM.setdXvdFFDMat().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setSurfaceCoordinates()

def setSurfaceCoordinates (   self,
  coordinates,
  groupName = None 
)
Set the updated surface coordinates for a particular group.
Parameters
----------
coordinates : numpy array
    Numpy array of size Nx3, where N is the number of coordinates on this processor.
    This array must have the same shape as the array obtained with getSurfaceCoordinates()
groupName : str
    Name of family or group of families for which to return coordinates for.

Definition at line 3135 of file pyDAFoam.py.

References PYDAFOAM._updateGeomInfo, PYDAFOAM.allWallsGroup, PYDAFOAM.getSurfaceCoordinates(), PYDAFOAM.mapVector(), DACheckMesh.mesh, and PYDAFOAM.mesh.

Referenced by PYDAFOAM.updateVolumePoints().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getSurfaceCoordinates()

def getSurfaceCoordinates (   self,
  groupName = None 
)
Return the coordinates for the surfaces defined by groupName.

Parameters
----------
groupName : str
    Group identifier to get only coordinates cooresponding to
    the desired group. The group must be a family or a
    user-supplied group of families. The default is None which
    corresponds to all wall-type surfaces.

Output
------
xs: numpy array of size nPoints * 3 for surface points

Definition at line 3164 of file pyDAFoam.py.

References PYDAFOAM._getSurfaceSize(), PYDAFOAM.allSurfacesGroup, PYDAFOAM.allWallsGroup, PYDAFOAM.basicFamilies, PYDAFOAM.dtype, PYDAFOAM.families, and PYDAFOAM.xv.

Referenced by PYDAFOAM.getTriangulatedMeshSurface(), PYDAFOAM.setMesh(), PYDAFOAM.setSurfaceCoordinates(), and PYDAFOAM.writeSurfaceSensitivityMap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setPrimalBoundaryConditions()

def setPrimalBoundaryConditions (   self,
  printInfo = 1,
  printInfoAD = 0 
)
Assign the boundary condition defined in primalBC to the OF fields

Definition at line 3228 of file pyDAFoam.py.

References DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.solver, and PYDAFOAM.solverAD.

Here is the call graph for this function:

◆ getPointSetName()

def getPointSetName (   self)
Take the apName and return the mangled point set name.

Definition at line 3312 of file pyDAFoam.py.

◆ getSolverMeshIndices()

def getSolverMeshIndices (   self)
Get the list of indices to pass to the mesh object for the
volume mesh mapping

Definition at line 3318 of file pyDAFoam.py.

References DAFoamBuilder.comm, PYDAFOAM.comm, and OptFuncs.comm.

Referenced by PYDAFOAM.setMesh().

Here is the caller graph for this function:

◆ mapVector()

def mapVector (   self,
  vec1,
  groupName1,
  groupName2,
  vec2 = None 
)
This is the main workhorse routine of everything that deals with
families in pyDAFoam. The purpose of this routine is to convert a
vector 'vec1' (of size Nx3) that was evaluated with
'groupName1' and expand or contract it (and adjust the
ordering) to produce 'vec2' evaluated on groupName2.

A little ascii art might help. Consider the following "mesh"
. Family 'fam1' has 9 points, 'fam2' has 10 pts and 'fam3' has
5 points.  Consider that we have also also added two
additional groups: 'f12' containing 'fam1' and 'fma2' and a
group 'f23' that contains families 'fam2' and 'fam3'. The vector
we want to map is 'vec1'. It is length 9+10. All the 'x's are
significant values.

The call: mapVector(vec1, 'f12', 'f23')

will produce the "returned vec" array, containing the
significant values from 'fam2', where the two groups overlap,
and the new values from 'fam3' set to zero. The values from
fam1 are lost. The returned vec has size 15.

    fam1     fam2      fam3
|---------+----------+------|

|xxxxxxxxx xxxxxxxxxx|        <- vec1
  |xxxxxxxxxx 000000| <- returned vec (vec2)

Parameters
----------
vec1 : Numpy array
    Array of size Nx3 that will be mapped to a different family set.

groupName1 : str
    The family group where the vector vec1 is currently defined

groupName2 : str
    The family group where we want to the vector to mapped into

vec2 : Numpy array or None
    Array containing existing values in the output vector we want to keep.
    If this vector is not given, the values will be filled with zeros.

Returns
-------
vec2 : Numpy array
    The input vector mapped to the families defined in groupName2.

Definition at line 3336 of file pyDAFoam.py.

References PYDAFOAM._getSurfaceSize(), PYDAFOAM.allSurfacesGroup, PYDAFOAM.basicFamilies, PYDAFOAM.dtype, PYDAFOAM.families, PYDAFOAM.getNLocalAdjointStates(), DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.solver, PYDAFOAM.wVec, PYDAFOAM.xv, PYDAFOAM.xv2XvVec(), and PYDAFOAM.xvVec.

Referenced by PYDAFOAM.__call__(), PYDAFOAM.calcFFD2XvSeedVec(), PYDAFOAM.mapdXvTodFFD(), PYDAFOAM.setSurfaceCoordinates(), PYDAFOAM.updateVolumePoints(), and PYDAFOAM.writeSurfaceSensitivityMap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xv2XvVec()

def xv2XvVec (   self,
  xv,
  xvVec 
)
Convert a Nx3 mesh point numpy array to a Petsc xvVec

Definition at line 3468 of file pyDAFoam.py.

References PYDAFOAM.solver.

Referenced by PYDAFOAM.mapVector().

Here is the caller graph for this function:

◆ xvFlatten2XvVec()

def xvFlatten2XvVec (   self,
  xv,
  xvVec 
)
Convert a 3Nx1 mesh point numpy array to a Petsc xvVec

Definition at line 3485 of file pyDAFoam.py.

References DAFoamBuilder.comm, PYDAFOAM.comm, OptFuncs.comm, and PYDAFOAM.solver.

◆ setOption()

def setOption (   self,
  name,
  value 
)
Set a value to options.
NOTE: calling this function will only change the values in self.options
It will NOT change values for allOptions_ in DAOption. To make the options changes
from pyDAFoam to DASolvers, call self.updateDAOption()

Parameters
----------
name : str
   Name of option to set. Not case sensitive
value : varies
   Value to set. Type is checked for consistency.

Examples
--------
If self.options reads:
self.options =
{
    'solverName': [str, 'DASimpleFoam'],
    'flowEndTime': [float, 1.0]
}
Then, calling self.options('solverName', 'DARhoSimpleFoam') will give:
self.options =
{
    'solverName': [str, 'DARhoSimpleFoam'],
    'flowEndTime': [float, 1.0]
}


NOTE: if 'value' is of dict type, we will set all the subKey values in
'value' dict to self.options, instead of overiding it. This works for
only THREE levels of subDicts

For example, if self.options reads
self.options =
{
    'objFunc': [dict, {
'name': 'CD',
'direction': [1.0, 0.0, 0.0],
'scale': 1.0}]
}

Then, calling self.setOption('objFunc', {'name': 'CL'}) will give:

self.options =
{
    'objFunc': [dict, {
'name': 'CL',
'direction': [1.0, 0.0, 0.0],
'scale': 1.0}]
}

INSTEAD OF

self.options =
{
    'objFunc': [dict, {'name': 'CL'}]
}

Definition at line 3540 of file pyDAFoam.py.

References PYDAFOAM.defaultOptions, PYDAFOAM.imOptions, PYDAFOAM.name, DAFoamBuilder.options, and PYDAFOAM.options.

Referenced by PYDAFOAM.solveAdjoint(), and PYDAFOAM.zeroTimeAccurateAdjointVectors().

Here is the caller graph for this function:

◆ setFieldValue4GlobalCellI()

def setFieldValue4GlobalCellI (   self,
  fieldName,
  val,
  globalCellI,
  compI = 0 
)
Set the field value based on the global cellI. This is usually
used if the state variables are design variables, e.g., betaSA
The reason to use global cell index, instead of local one, is
because this index is usually provided by the optimizer. Optimizer
uses global cell index as the design variable

Parameters
----------
fieldName : str
   Name of the flow field to set, e.g., U, p, nuTilda
val : float
   The value to set
globalCellI : int
   The global cell index to set the value
compI : int
   The component index to set the value (for vectorField only)

Definition at line 3683 of file pyDAFoam.py.

References DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.solver, and PYDAFOAM.solverAD.

Here is the call graph for this function:

◆ setFieldValue4LocalCellI()

def setFieldValue4LocalCellI (   self,
  fieldName,
  val,
  localCellI,
  compI = 0 
)
Set the field value based on the local cellI.

Parameters
----------
fieldName : str
   Name of the flow field to set, e.g., U, p, nuTilda
val : float
   The value to set
localCellI : int
   The global cell index to set the value
compI : int
   The component index to set the value (for vectorField only)

Definition at line 3708 of file pyDAFoam.py.

References DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.solver, and PYDAFOAM.solverAD.

Here is the call graph for this function:

◆ updateBoundaryConditions()

def updateBoundaryConditions (   self,
  fieldName,
  fieldType 
)
Update the boundary condition for a field

Parameters
----------
fieldName : str
   Name of the flow field to update, e.g., U, p, nuTilda
fieldType : str
   Type of the flow field: scalar or vector

Definition at line 3729 of file pyDAFoam.py.

References DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.solver, and PYDAFOAM.solverAD.

Here is the call graph for this function:

◆ getOption()

def getOption (   self,
  name 
)

◆ updateDAOption()

def updateDAOption (   self)
Update the allOptions_ in DAOption based on the latest self.options in
pyDAFoam. This will pass the changes of self.options from pyDAFoam
to DASolvers. NOTE: need to call this function after calling
self.initSolver

Definition at line 3766 of file pyDAFoam.py.

References DAOption.getOption(), PYDAFOAM.getOption(), DAFoamBuilder.options, PYDAFOAM.options, PYDAFOAM.solver, PYDAFOAM.solverAD, PYDAFOAM.solverInitialized, DAFvSource.syncDAOptionToActuatorDVs(), DASolvers.syncDAOptionToActuatorDVs(), DASolver.syncDAOptionToActuatorDVs(), and PYDAFOAM.syncDAOptionToActuatorDVs().

Referenced by PYDAFOAM.solveAdjoint().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ syncDAOptionToActuatorDVs()

def syncDAOptionToActuatorDVs (   self)
Synchronize the values in DAOption and actuatorDiskDVs_. We need to synchronize the values
defined in fvSource from DAOption to actuatorDiskDVs_ in the C++ layer
NOTE: we need to call this function whenever we change the actuator design variables
during optimization.

Definition at line 3785 of file pyDAFoam.py.

References DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.solver, and PYDAFOAM.solverAD.

Referenced by PYDAFOAM.updateDAOption().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getNLocalAdjointStates()

def getNLocalAdjointStates (   self)
Get number of local adjoint states

Definition at line 3798 of file pyDAFoam.py.

References PYDAFOAM.solver.

Referenced by PYDAFOAM.getResiduals(), PYDAFOAM.getStates(), PYDAFOAM.initTimeInstanceMats(), PYDAFOAM.mapVector(), and PYDAFOAM.solveAdjoint().

Here is the caller graph for this function:

◆ getDVsCons()

def getDVsCons (   self)
Return the list of design variable names
NOTE: constraints are not implemented yet

Definition at line 3804 of file pyDAFoam.py.

References PYDAFOAM.DVGeo.

◆ getStates()

def getStates (   self)
Return the adjoint state array owns by this processor

Definition at line 3824 of file pyDAFoam.py.

References PYDAFOAM.dtype, PYDAFOAM.getNLocalAdjointStates(), PYDAFOAM.solver, and PYDAFOAM.wVec.

Here is the call graph for this function:

◆ getResiduals()

def getResiduals (   self)
Return the residual array owns by this processor

Definition at line 3837 of file pyDAFoam.py.

References PYDAFOAM.dtype, PYDAFOAM.getNLocalAdjointStates(), PYDAFOAM.solver, and PYDAFOAM.wVec.

Here is the call graph for this function:

◆ setStates()

def setStates (   self,
  states 
)
Set the state to the OpenFOAM field

Definition at line 3855 of file pyDAFoam.py.

References DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.solver, PYDAFOAM.solverAD, and PYDAFOAM.wVec.

Here is the call graph for this function:

◆ convertMPIVec2SeqArray()

def convertMPIVec2SeqArray (   self,
  mpiVec 
)
Convert a MPI vector to a seq array

Definition at line 3874 of file pyDAFoam.py.

References PYDAFOAM.dtype, and PYDAFOAM.solver.

◆ vec2Array()

def vec2Array (   self,
  vec 
)
Convert a Petsc vector to numpy array

Definition at line 3888 of file pyDAFoam.py.

References PYDAFOAM.dtype.

◆ array2Vec()

def array2Vec (   self,
  array1 
)
Convert a numpy array to Petsc vector

Definition at line 3901 of file pyDAFoam.py.

◆ array2VecSeq()

def array2VecSeq (   self,
  array1 
)
Convert a numpy array to Petsc vector in serial mode

Definition at line 3922 of file pyDAFoam.py.

◆ vec2ArraySeq()

def vec2ArraySeq (   self,
  vec 
)
Convert a Petsc vector to numpy array in serial mode

Definition at line 3939 of file pyDAFoam.py.

References PYDAFOAM._writeOpenFoamHeader(), DAFoamBuilder.comm, PYDAFOAM.comm, OptFuncs.comm, PYDAFOAM.dtype, DAOption.getOption(), PYDAFOAM.getOption(), PYDAFOAM.nProcs, DAFoamBuilder.options, and PYDAFOAM.options.

Here is the call graph for this function:

Member Data Documentation

◆ version

version

Definition at line 696 of file pyDAFoam.py.

◆ name

name

Definition at line 705 of file pyDAFoam.py.

Referenced by PYDAFOAM.setOption().

◆ families

families

◆ dtype

dtype

◆ ptSetName

ptSetName

◆ solverInitialized

solverInitialized

Definition at line 742 of file pyDAFoam.py.

Referenced by PYDAFOAM.calcdFdAOAAnalytical(), and PYDAFOAM.updateDAOption().

◆ nSolvePrimals

nSolvePrimals

Definition at line 746 of file pyDAFoam.py.

Referenced by PYDAFOAM.solvePrimal().

◆ nSolveAdjoints

nSolveAdjoints

◆ primalFail

primalFail

Definition at line 750 of file pyDAFoam.py.

Referenced by PYDAFOAM.evalFunctions(), and PYDAFOAM.solvePrimal().

◆ adjointFail

adjointFail

Definition at line 751 of file pyDAFoam.py.

Referenced by PYDAFOAM.evalFunctionsSens(), and PYDAFOAM.solveAdjoint().

◆ xvVec

xvVec

◆ wVec

wVec

◆ allSurfacesGroup

allSurfacesGroup

◆ allWallsGroup

allWallsGroup

◆ designSurfacesGroup

designSurfacesGroup

◆ couplingSurfacesGroup

couplingSurfacesGroup

Definition at line 791 of file pyDAFoam.py.

Referenced by PYDAFOAM.getForces().

◆ xs0

xs0

◆ mesh

mesh

◆ DVGeo

DVGeo

◆ objFuncValuePrevIter

objFuncValuePrevIter

Definition at line 817 of file pyDAFoam.py.

Referenced by PYDAFOAM.evalFunctions().

◆ objFuncNames4Adj

objFuncNames4Adj

Definition at line 820 of file pyDAFoam.py.

Referenced by PYDAFOAM.solveAdjoint(), and PYDAFOAM.zeroTimeAccurateAdjointVectors().

◆ adjTotalDeriv

adjTotalDeriv

Definition at line 824 of file pyDAFoam.py.

Referenced by PYDAFOAM.evalFunctionsSens(), and PYDAFOAM.solveAdjoint().

◆ dRdWTPC

dRdWTPC

Definition at line 827 of file pyDAFoam.py.

Referenced by PYDAFOAM.solveAdjoint().

◆ ksp

ksp

Definition at line 830 of file pyDAFoam.py.

◆ surfGeoDisp

surfGeoDisp

Definition at line 836 of file pyDAFoam.py.

◆ adjVectors

adjVectors

Definition at line 839 of file pyDAFoam.py.

Referenced by PYDAFOAM.solveAdjoint().

◆ solverRegistry

solverRegistry

Definition at line 862 of file pyDAFoam.py.

Referenced by PYDAFOAM.calcdFdAOAAnalytical(), and PYDAFOAM.runColoring().

◆ pointsSet

pointsSet

Definition at line 884 of file pyDAFoam.py.

Referenced by PYDAFOAM.updateVolumePoints().

◆ dRdW0TPsi

dRdW0TPsi

Definition at line 1006 of file pyDAFoam.py.

Referenced by PYDAFOAM.solveAdjoint(), and PYDAFOAM.zeroTimeAccurateAdjointVectors().

◆ dRdW00TPsi

dRdW00TPsi

Definition at line 1007 of file pyDAFoam.py.

Referenced by PYDAFOAM.solveAdjoint(), and PYDAFOAM.zeroTimeAccurateAdjointVectors().

◆ dR0dW0TPsi

dR0dW0TPsi

Definition at line 1008 of file pyDAFoam.py.

Referenced by PYDAFOAM.solveAdjoint(), and PYDAFOAM.zeroTimeAccurateAdjointVectors().

◆ dR0dW00TPsi

dR0dW00TPsi

Definition at line 1009 of file pyDAFoam.py.

Referenced by PYDAFOAM.solveAdjoint(), and PYDAFOAM.zeroTimeAccurateAdjointVectors().

◆ dR00dW0TPsi

dR00dW0TPsi

Definition at line 1010 of file pyDAFoam.py.

Referenced by PYDAFOAM.solveAdjoint(), and PYDAFOAM.zeroTimeAccurateAdjointVectors().

◆ dR00dW00TPsi

dR00dW00TPsi

Definition at line 1011 of file pyDAFoam.py.

Referenced by PYDAFOAM.solveAdjoint(), and PYDAFOAM.zeroTimeAccurateAdjointVectors().

◆ stateMat

stateMat

Definition at line 1194 of file pyDAFoam.py.

Referenced by PYDAFOAM.setTimeInstanceVar().

◆ stateBCMat

stateBCMat

Definition at line 1200 of file pyDAFoam.py.

Referenced by PYDAFOAM.setTimeInstanceVar().

◆ timeVec

timeVec

Definition at line 1206 of file pyDAFoam.py.

Referenced by PYDAFOAM.setTimeInstanceVar().

◆ timeIdxVec

timeIdxVec

Definition at line 1207 of file pyDAFoam.py.

Referenced by PYDAFOAM.setTimeInstanceVar().

◆ imOptions

imOptions

Definition at line 1675 of file pyDAFoam.py.

Referenced by PYDAFOAM.setOption().

◆ defaultOptions

defaultOptions

Definition at line 1678 of file pyDAFoam.py.

Referenced by PYDAFOAM.getOption(), and PYDAFOAM.setOption().

◆ options

options

◆ comm

comm

◆ parallel

parallel

◆ rank

rank

Definition at line 1715 of file pyDAFoam.py.

Referenced by PYDAFOAM.writeSurfaceSensitivityMap().

◆ nProcs

nProcs

Definition at line 1716 of file pyDAFoam.py.

Referenced by PYDAFOAM.vec2ArraySeq().

◆ parallelFlag

parallelFlag

Definition at line 1719 of file pyDAFoam.py.

Referenced by PYDAFOAM.calcdFdAOAAnalytical(), and PYDAFOAM.runColoring().

◆ solver

solver

◆ solverAD

solverAD

◆ neighbours

neighbours

Definition at line 3130 of file pyDAFoam.py.

◆ xv

xv

◆ basicFamilies

basicFamilies

◆ wallList

wallList

Definition at line 3246 of file pyDAFoam.py.

◆ wVecMPList

wVecMPList

Definition at line 3460 of file pyDAFoam.py.

Referenced by PYDAFOAM.saveMultiPointField(), and PYDAFOAM.setMultiPointField().


The documentation for this class was generated from the following file: