Giter VIP home page Giter VIP logo

Comments (11)

kejacobson avatar kejacobson commented on September 24, 2024 1

Updated results with 'L2convergence' = 1e-12. With and without OpenMDAO are identical:
CL = 0.4176802775988083
CD = 0.01680860053911218

from mphys.

kejacobson avatar kejacobson commented on September 24, 2024

Since the flow solver is tightly connected to the warping, the first implementation will have a single solver component that does the warping and flow solver.

There will be a 4 total components:

  1. AdflowMesh (ExplicitComponent) - gets the partitioned aerodynamic surface mesh to pass to the transfer schemes and potentially a shape parameterization component.
  2. AdflowSolver (ImplicitComponent) - does the warping then solves the flow
  3. AdflowForces(ExplicitComponent) - integrates the forces on the aerodynamic surface
  4. AdflowFunctions (ExplicitComponent)- should be able to use the adflow function evaluator from the adflow repo.

from mphys.

kejacobson avatar kejacobson commented on September 24, 2024

This work being done on the 'adflow_comp' branch

from mphys.

kejacobson avatar kejacobson commented on September 24, 2024
  • Run the aero machtutorial wing case with the OpenMDAO components
  • Run the aerostructural mach tutorial case with the OpenMDAO components
  • Verify sensitivities

from mphys.

kejacobson avatar kejacobson commented on September 24, 2024

Since all the pieces for a warper component appear to be accessible in the python apart from setting the volume coordinates into the solver, I'm going to go ahead and split the warping component out from the solver. The set of components is then:

  1. AdflowMesh (ExplicitComponent) - gets the partitioned aerodynamic surface mesh to pass to the transfer schemes and potentially a shape parameterization component.
  2. AdflowWarper(ExplicitComponent - mesh warping given a new surface
  3. AdflowSolver (ImplicitComponent) - flow solve given a volume mesh
  4. AdflowForces(ExplicitComponent) - integrates the forces on the aerodynamic surface
  5. AdflowFunctions (ExplicitComponent)- should be able to use the adflow function evaluator from the adflow repo.

For now it will be assumed that the volume coordinates are not changed between calls to the warper and flow solver.

from mphys.

kejacobson avatar kejacobson commented on September 24, 2024

Commit 04b3537:

aero_run.py with 8 procs and use_openmdao = False:
{'wing_cl': 0.4176863998629372, 'wing_cd': 0.01681025059103742}

aero_run.py with 8 procs and use_openmdao = True:
cl = [0.4176864] cd = [0.01681025]

from mphys.

kejacobson avatar kejacobson commented on September 24, 2024

Aerostructural mach tutorial with commit 6db2199. Run with 24 procs:

TACS: max(v0) = 0.391799
ADflow: cl = [0.34983174] cd = [0.01405941]

Coupled problem not fully converge but first 5 digits of cl remain constant over final 80 of 100 iterations.

Edit: This example is located at OMFSI/examples/mach_tutorials/aerostruct/ on the adflow_comp branch

from mphys.

nbons avatar nbons commented on September 24, 2024

I ran the aero and aerostructural cases and got the following results:

Aero:
'wing_cl': '0.41769439414361414'
'wing_cd': '0.01680817039694992'

Aerostruct (with RLT):
'wing_cd': 0.019027053809616334,
'wing_cl': 0.342365355345908

from mphys.

nbons avatar nbons commented on September 24, 2024

With 'L2convergence' = 1e-12, I get the following results for aero_opt on 4 procs:
'wing_cl': 0.4176802774726952
'wing_cd': 0.01680860054180563

I made a pull request with this change.

from mphys.

kejacobson avatar kejacobson commented on September 24, 2024

Sensitivity verification

Some of the TACS and FUNtoFEM components do not have forward mode matrix vector products implemented. Currently the ADflow volume mesh only changes through the warping component affecting the FD results for x_g derivatives.

Most of the derivatives seem okay apart from the adflow forces and d(lift or drag)/d(mach).

Notes from examples/check_partials_adflow_funtofem_tacs/as_openmdao.py with e76afd6:

  • disp_xfer - good agreement between rev and FD

  • geo_disps - good agreement

  • adflow deformer - good agreement

  • adflow solver - matching forward and rev but finite difference has some discrepancies. Likely do to real-valued FD and large sensitivity of extremely small mesh.

  • adflow forces - all values are zero on rev side. Also have zeros for design variables: alpha and mach. Alpha seems like it should be zero, but I think the dimensionalization should be affected by Mach number.

  • load_xfer - good agreement between rev and FD

  • tacs - not really good agreement. Maybe due to 4 element mesh sensitivity because the tacs sensitivities have been verified against complex step of tacs outside of OpenMDAO.

  • tacs struct_funcs - pretty good agreement. Also verified with complex step outside of OpenMDAO.

  • adflow aero_funcs - agreement between forward and reverse. Mach number derivatives are zero.

from mphys.

camader avatar camader commented on September 24, 2024

Fbar had a bug in ADflow. There is a fix posted as a pull request that fixes it.

from mphys.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.