mdolab / adflow

ADflow is a finite volume RANS solver tailored for gradient-based aerodynamic design optimization.
Other
229 stars 100 forks source link

Design surface family assignment for Aerodynamic optimisation #333

Closed AbhijithMoni closed 11 months ago

AbhijithMoni commented 11 months ago

Description

Steps to reproduce issue

 Options = {
    # I/O Parameters
    "gridFile": args.gridFile,
    "outputDirectory": args.output,
    "monitorvariables": ["resrho", "cl", "cd"],
    "writeTecplotSurfaceSolution": True,
    # Physics Parameters
    "equationType": "RANS",
    # Solver Parameters
    "smoother": "DADI",
    "MGCycle": "sg",
    "infchangecorrection": True,
    # ANK Solver Parameters
    "useANKSolver": True,
    # NK Solver Parameters
    "useNKSolver": True,
    "nkswitchtol": 1.0e-3,
    # Termination Criteria
    "L2Convergence": 1e-6,
    "L2ConvergenceCoarse": 1e-2,
    "nCycles": 10000,
    # Adjoint Parameters
    "adjointL2Convergence": 1e-6,
    "designSurfaceFamily":"wingu",
}

Current behavior

In the options, there is only a possibility to assign either a string or None to the designSurfaceFamily source. When I try to assign multiple surfaces I get an error which is expected based on the documentation.

baseclasses.utils.error.Error:
 | Error: Datatype for option designSurfaceFamily is not valid. Expected data   |
| type (<class 'str'>, <class 'NoneType'>). Received data type is <class       |
| 'list'>

Expected behavior

In my CGNS mesh, the wing geometry that I would like to optimize contains multiple components which consist of surfaces namely: "wingu", "wingLE", "wingTE", "wingb". And fuselage and tail which are not a part of optimisation.

I would like to know if there is a workaround to solve this problem of assigning multiple design surfaces to the solver at once.

Code versions

Docker image: [mdolab/public:u18-gcc-ompi-latest]()