|
Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|

Public Member Functions | |
| generic, public | init init_from_json |
| Interface for initializing the MMA object. | |
| generic, public | init init_from_components |
| Interface for initializing the MMA object. | |
| procedure, pass(this), public | init_from_json (this, x, n, m, json, scale, auto_scale) |
| CPU update function, runs one iteration of MMA. | |
| procedure, pass(this), public | init_from_components (this, x, n, m, a0, a, c, d, xmin, xmax, max_iter, epsimin, asyinit, asyincr, asydecr, bcknd, subsolver) |
| Initialize the mma object based on the attributes from the json file. | |
| procedure, pass(this), public | free (this) |
| Deallocate mma object. | |
| procedure, pass(this), public | get_n (this) |
| Get the number of design variables (nloc) | |
| procedure, pass(this), public | get_m (this) |
| Get the number of constriants. | |
| procedure, pass(this), public | get_residumax (this) |
| Get L^{inf} norm (Max Norm) of the KKT conditions. | |
| procedure, pass(this), public | get_residunorm (this) |
| Get L^{2} norm (Euclidean Norm) of the KKT conditions. | |
| procedure, pass(this), public | get_max_iter (this) |
| Get the maximum number of iterations for the mma_subsolve inner loop. | |
| generic, public | update update_vector |
| generic, public | update update_cpu |
| generic, public | update update_device |
| procedure, pass(this) | update_vector (this, iter, x, df0dx, fval, dfdx) |
| Call the update function based on the backend. | |
| procedure, pass(this) | update_cpu mma_update_cpu |
| procedure, pass(this) | update_device mma_update_device |
| generic, public | kkt kkt_vector |
| generic, public | kkt kkt_cpu |
| generic, public | kkt kkt_device |
| procedure, pass(this) | kkt_vector (this, x, df0dx, fval, dfdx) |
| Call the KKT ckeck function based on the backend. | |
| procedure, pass(this) | kkt_cpu mma_kkt_cpu |
| procedure, pass(this) | kkt_device mma_kkt_device |
Public Attributes | |
| integer | m |
| integer | max_iter |
| real(kind=rp) | a0 |
| real(kind=rp) | f0val |
| real(kind=rp) | asyinit |
| real(kind=rp) | asyincr |
| real(kind=rp) | asydecr |
| real(kind=rp) | epsimin |
| real(kind=rp) | residumax |
| real(kind=rp) | residunorm |
| type(vector_t) | xold1 |
| type(vector_t) | xold2 |
| type(vector_t) | low |
| type(vector_t) | upp |
| type(vector_t) | alpha |
| type(vector_t) | beta |
| type(vector_t) | a |
| type(vector_t) | c |
| type(vector_t) | d |
| type(vector_t) | xmax |
| type(vector_t) | xmin |
| logical | is_initialized = .false. |
| logical | is_updated = .false. |
| character(len=:), allocatable | bcknd |
| character(len=:), allocatable | subsolver |
| type(vector_t) | p0j |
| type(vector_t) | q0j |
| type(matrix_t) | pij |
| type(matrix_t) | qij |
| type(vector_t) | bi |
| real(kind=rp) | z |
| real(kind=rp) | zeta |
| type(vector_t) | y |
| type(vector_t) | lambda |
| type(vector_t) | s |
| type(vector_t) | mu |
| type(vector_t) | xsi |
| type(vector_t) | eta |
| procedure, pass(this), public mma::mma_t::free | ( | class(mma_t), intent(inout) | this | ) |
| procedure, pass(this), public mma::mma_t::get_m | ( | class(mma_t), intent(in) | this | ) |
| procedure, pass(this), public mma::mma_t::get_max_iter | ( | class(mma_t), intent(in) | this | ) |
| procedure, pass(this), public mma::mma_t::get_n | ( | class(mma_t), intent(in) | this | ) |
| procedure, pass(this), public mma::mma_t::get_residumax | ( | class(mma_t), intent(in) | this | ) |
| procedure, pass(this), public mma::mma_t::get_residunorm | ( | class(mma_t), intent(in) | this | ) |
| procedure, pass(this), public mma::mma_t::init_from_components | ( | class(mma_t), intent(inout) | this, |
| real(kind=rp), dimension(n), intent(in) | x, | ||
| integer, intent(in) | n, | ||
| integer, intent(in) | m, | ||
| real(kind=rp), intent(in) | a0, | ||
| real(kind=rp), dimension(m), intent(in) | a, | ||
| real(kind=rp), dimension(m), intent(in) | c, | ||
| real(kind=rp), dimension(m), intent(in) | d, | ||
| real(kind=rp), dimension(n), intent(in) | xmin, | ||
| real(kind=rp), dimension(n), intent(in) | xmax, | ||
| integer, intent(in), optional | max_iter, | ||
| real(kind=rp), intent(in), optional | epsimin, | ||
| real(kind=rp), intent(in), optional | asyinit, | ||
| real(kind=rp), intent(in), optional | asyincr, | ||
| real(kind=rp), intent(in), optional | asydecr, | ||
| character(len=:), intent(in), allocatable | bcknd, | ||
| character(len=:), intent(in), allocatable | subsolver | ||
| ) |
| procedure, pass(this), public mma::mma_t::init_from_json | ( | class(mma_t), intent(inout) | this, |
| real(kind=rp), dimension(n), intent(in) | x, | ||
| integer, intent(in) | n, | ||
| integer, intent(in) | m, | ||
| type(json_file), intent(inout) | json, | ||
| real(kind=rp), intent(out) | scale, | ||
| logical, intent(out) | auto_scale | ||
| ) |
| procedure, pass(this) mma::mma_t::kkt_vector | ( | class(mma_t), intent(inout) | this, |
| type(vector_t), intent(inout) | x, | ||
| type(vector_t), intent(inout) | df0dx, | ||
| type(vector_t), intent(inout) | fval, | ||
| type(matrix_t), intent(inout) | dfdx | ||
| ) |
| procedure, pass(this) mma::mma_t::update_vector | ( | class(mma_t), intent(inout) | this, |
| integer, intent(in) | iter, | ||
| type(vector_t), intent(inout) | x, | ||
| type(vector_t), intent(inout) | df0dx, | ||
| type(vector_t), intent(inout) | fval, | ||
| type(matrix_t), intent(inout) | dfdx | ||
| ) |