Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
Loading...
Searching...
No Matches
topology_optimization_user_module Module Reference

Module designed to setup the topology optimization user interface for Neko. This module should initialize, finalize, and run the time dependent operations of our topology optimization problem. More...

Functions/Subroutines

subroutine, public neko_user_init (neko_case)
 Assign user conditions for the neko case.
 
subroutine set_material_properties (t, tstep, rho, mu, cp, lambda, params)
 Initialize the material properties, unfortunately required from Neko.
 

Detailed Description

This should include, but not be limited to:

  1. Setting the material properties (Required by Neko when using the user interface)
  2. Setting the initial conditions for the scalar field
  3. Assigning the user defined force for the fluid
  4. Define the adjoint and sensitivity analysis
  5. Define the objective function
  6. Define the constraints

Currently the computations should be setup in the "user_check" subroutine. This is a hacky way to run the physics and adjoint physics, but it works.

Function/Subroutine Documentation

◆ neko_user_init()

subroutine, public topology_optimization_user_module::neko_user_init ( type(case_t), intent(inout neko_case)
Parameters
[in,out]neko_caseThe neko case to setup the user interface for
Todo:
We use a hacky way to run the physics and adjoint physics. This should be replaced with a more robust way to run the physics and adjoint physics.

Definition at line 42 of file user_module.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_material_properties()

subroutine topology_optimization_user_module::set_material_properties ( real(kind=rp), intent(in t,
integer, intent(in tstep,
real(kind=rp), intent(inout rho,
real(kind=rp), intent(inout mu,
real(kind=rp), intent(inout cp,
real(kind=rp), intent(inout lambda,
type(json_file), intent(inout params 
)
private

Definition at line 52 of file user_module.f90.

Here is the caller graph for this function: