Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
Loading...
Searching...
No Matches
dummy_constraint.f90
1! Copyright (c) 2023, The Neko Authors
2! All rights reserved.
3!
4! Redistribution and use in source and binary forms, with or without
5! modification, are permitted provided that the following conditions
6! are met:
7!
8! * Redistributions of source code must retain the above copyright
9! notice, this list of conditions and the following disclaimer.
10!
11! * Redistributions in binary form must reproduce the above
12! copyright notice, this list of conditions and the following
13! disclaimer in the documentation and/or other materials provided
14! with the distribution.
15!
16! * Neither the name of the authors nor the names of its
17! contributors may be used to endorse or promote products derived
18! from this software without specific prior written permission.
19!
20! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21! "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22! LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23! FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24! COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25! INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26! BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27! LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28! CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29! LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30! ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31! POSSIBILITY OF SUCH DAMAGE.
32!
34! $C = -1$
35! $dC/dx = 0$
37 use constraint, only: constraint_t
38 use json_module, only: json_file
39
40 use design, only: design_t
41
42 use num_types, only: rp
43 use vector_math, only: vector_add2, vector_cmult
44
45 implicit none
46 private
47
49 type, public, extends(constraint_t) :: dummy_constraint_t
50 private
51 contains
53 procedure, public, pass(this) :: init_json => &
54 dummy_constraint_init_json
56 procedure, public, pass(this) :: init_from_attributes => &
57 dummy_constraint_init_attributes
59 procedure, public, pass(this) :: free => dummy_constraint_free
61 procedure, public, pass(this) :: update_value => &
62 dummy_constraint_update_value
64 procedure, public, pass(this) :: update_sensitivity => &
65 dummy_constraint_update_sensitivity
66
67 end type dummy_constraint_t
68
69contains
70
72 subroutine dummy_constraint_init_json(this, json, design)
73 class(dummy_constraint_t), intent(inout) :: this
74 type(json_file), intent(inout) :: json
75 class(design_t), intent(in) :: design
76 call this%init_from_attributes(design)
77 end subroutine dummy_constraint_init_json
78
80 subroutine dummy_constraint_init_attributes(this, design)
81 class(dummy_constraint_t), intent(inout) :: this
82 class(design_t), intent(in) :: design
83
84 ! Initialize the base class
85 call this%init_base("dummy_constraint", design%size())
86
87 ! ------------------------------------------------------------------------ !
88 ! Initialize the value of constraint
89
90 this%value = -1.0_rp
91
92 ! ------------------------------------------------------------------------ !
93 ! Initialize the sensitivity value
94
95 this%sensitivity = 0.0_rp
96
97 end subroutine dummy_constraint_init_attributes
98
100 subroutine dummy_constraint_free(this)
101 class(dummy_constraint_t), intent(inout) :: this
102
103 call this%free_base()
104 end subroutine dummy_constraint_free
105
107 subroutine dummy_constraint_update_value(this, design)
108 class(dummy_constraint_t), intent(inout) :: this
109 class(design_t), intent(in) :: design
110 end subroutine dummy_constraint_update_value
111
113 subroutine dummy_constraint_update_sensitivity(this, design)
114 class(dummy_constraint_t), intent(inout) :: this
115 class(design_t), intent(in) :: design
116 end subroutine dummy_constraint_update_sensitivity
117end module dummy_constraint
Implements the constraint_t type.
Implements the design_t.
Definition design.f90:34
Implements the dummy_constraint_t type.
The abstract constraint type.
An abstract design type.
Definition design.f90:52