Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
Loading...
Searching...
No Matches
dummy_constraint.f90
Go to the documentation of this file.
1
34!
36! $C = -1$
37! $dC/dx = 0$
39 use constraint, only: constraint_t
40 use json_module, only: json_file
41
42 use design, only: design_t
43
44 use num_types, only: rp
45 use vector_math, only: vector_add2, vector_cmult
46
47 implicit none
48 private
49
51 type, public, extends(constraint_t) :: dummy_constraint_t
52 private
53 contains
55 procedure, public, pass(this) :: init_json => &
58 procedure, public, pass(this) :: init_from_attributes => &
59 dummy_constraint_init_attributes
61 procedure, public, pass(this) :: free => dummy_constraint_free
63 procedure, public, pass(this) :: update_value => &
64 dummy_constraint_update_value
66 procedure, public, pass(this) :: update_sensitivity => &
67 dummy_constraint_update_sensitivity
68
69 end type dummy_constraint_t
70
71contains
72
74 subroutine dummy_constraint_init_json(this, json, design)
75 class(dummy_constraint_t), intent(inout) :: this
76 type(json_file), intent(inout) :: json
77 class(design_t), intent(in) :: design
78 call this%init_from_attributes(design)
79 end subroutine dummy_constraint_init_json
80
82 subroutine dummy_constraint_init_attributes(this, design)
83 class(dummy_constraint_t), intent(inout) :: this
84 class(design_t), intent(in) :: design
85
86 ! Initialize the base class
87 call this%init_base("dummy_constraint", design%size())
88
89 ! ------------------------------------------------------------------------ !
90 ! Initialize the value of constraint
91
92 this%value = -1.0_rp
93
94 ! ------------------------------------------------------------------------ !
95 ! Initialize the sensitivity value
96
97 this%sensitivity = 0.0_rp
98
99 end subroutine dummy_constraint_init_attributes
100
102 subroutine dummy_constraint_free(this)
103 class(dummy_constraint_t), intent(inout) :: this
104
105 call this%free_base()
106 end subroutine dummy_constraint_free
107
109 subroutine dummy_constraint_update_value(this, design)
110 class(dummy_constraint_t), intent(inout) :: this
111 class(design_t), intent(in) :: design
112 end subroutine dummy_constraint_update_value
113
115 subroutine dummy_constraint_update_sensitivity(this, design)
116 class(dummy_constraint_t), intent(inout) :: this
117 class(design_t), intent(in) :: design
118 end subroutine dummy_constraint_update_sensitivity
119end module dummy_constraint
Implements the constraint_t type.
Implements the design_t.
Definition design.f90:36
Implements the dummy_constraint_t type.
subroutine dummy_constraint_init_json(this, json, design)
The common constructor using a JSON object.
The abstract constraint type.
An abstract design type.
Definition design.f90:54