evalFuncs = [] DASolver.setEvalFuncs(evalFuncs) # DVCon DVCon = DVConstraints() DVCon.setDVGeo(DVGeo) [p0, v1, v2] = DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily")) surf = [p0, v1, v2] DVCon.setSurface(surf) # optFuncs optFuncs.DASolver = DASolver optFuncs.DVGeo = DVGeo optFuncs.DVCon = DVCon optFuncs.evalFuncs = evalFuncs optFuncs.gcomm = gcomm # Run if calcFDSens == 1: optFuncs.calcFDSens(objFun=optFuncs.calcObjFuncValues, fileName="sensFD.txt") else: DASolver.runColoring() xDV = DVGeo.getValues() funcs = {} funcs, fail = optFuncs.calcObjFuncValues(xDV) funcsSens = {} funcsSens, fail = optFuncs.calcObjFuncSens(xDV, funcs) if gcomm.rank == 0: reg_write_dict(funcs, 1e-8, 1e-10) reg_write_dict(funcsSens, 1e-6, 1e-8)
funcsSensCombined[objFunc][dv] += funcsSens[objFunc][dv] / nTimeInstances funcsSensCombined["fail"] = False if gcomm.rank == 0: print(funcsSensCombined) return optFuncs.DASolver = DASolver optFuncs.DVGeo = DVGeo optFuncs.DVCon = DVCon optFuncs.evalFuncs = evalFuncs optFuncs.gcomm = gcomm optFuncs.setHybridAdjointObjFuncs = setHybridAdjointObjFuncs optFuncs.setHybridAdjointObjFuncsSens = setHybridAdjointObjFuncsSens # Run if calcFDSens == 1: optFuncs.calcFDSens(objFun=optFuncs.calcObjFuncValuesHybridAdjoint, fileName="sensFD.txt") else: DASolver.runColoring() xDV = DVGeo.getValues() funcs = {} funcs, fail = optFuncs.calcObjFuncValuesHybridAdjoint(xDV) funcsSens = {} funcsSens, fail = optFuncs.calcObjFuncSensHybridAdjoint(xDV, funcs) if gcomm.rank == 0: reg_write_dict(funcs, 1e-8, 1e-10) reg_write_dict(funcsSens, 1e-6, 1e-8)