v2.2.0 - Adjoint flow and cleaning of tbox
Compare changes
Files
169+ 0
− 4
Pour rappel, le service sera inaccessible ce lundi 05/05/25 midi pour raison de mise à jour.
This release adds a first version of a validated adjoint solver for flow. It enables the computation of gradients with respect to lots of design variables (such as the mesh coordinates), for a low cost. Additionally, the way of building element matrices for the different modules have been reviewed, and several classes have been refactored or cleaned accordingly.
Element/Mem
build()
methods that were specific to a given physics have been removed from the Element
class. These methods have been move to their respective module in ...Term
, ...Residual
and ...Functional
classes. Additionally, the methods are now static.Element
now only stores geometric and basic computational information. Accordingly, all the data previously stored in the Mem
class gave been gathered into Element
, and Mem
has been removed. The data (Jacobian, normal vector, etc.) must be initialized before any computation can be carried out. This action is performed using the initValues()
method. Additionally, the order of integration for the Gaussian quadrature can be set using this method. Since the gradients of some data (Jacobian, etc.) is required for some computations, they can be initialized using a separate method initGradients()
. Once all the data have been initialized, the can be updated as before using the update()
method.Functions
F0El
, etc.) are now specific to this module. Additionally, they derive from the new Observer
class and are not wrapped in python anymore.Observer
class has been added to fwk. It provides a mechanism for self-updating, based on changes occurring in a given class.Fct0
, etc.) are now smart pointers (40171e0c (comment 5682) has been fixed). Note that these functions are only used in heat and could be moved outside of tbox.Tests are passing on ubuntu20.04 (python 3.8.2), and msys2 (python 3.8.1).