35 use json_module,
only : json_file
44 type(
field_t),
pointer :: reg_coeff => null()
45 type(
coef_t),
pointer :: coef => null()
50 procedure(
reg_init), pass(this),
deferred :: init
51 procedure(
reg_free), pass(this),
deferred :: free
56 subroutine reg_init(this, json, coef, dof, reg_coeff)
59 type(json_file),
intent(inout) :: json
60 type(
coef_t),
intent(in),
target :: coef
61 type(
dofmap_t),
intent(in),
target :: dof
62 type(
field_t),
intent(in),
target :: reg_coeff
82 module subroutine regularization_factory(object, type_name, json, &
84 class(regularization_t),
allocatable,
intent(inout) :: object
85 character(len=*),
intent(in) :: type_name
86 type(json_file),
intent(inout) :: json
87 type(
coef_t),
intent(in),
target :: coef
88 type(
dofmap_t),
intent(in),
target :: dof
89 type(
field_t),
intent(in),
target :: reg_coeff
90 end subroutine regularization_factory
93 public :: regularization_factory
97 subroutine regularization_init_base(this, json, coef, dof, reg_coeff)
98 class(regularization_t),
intent(inout) :: this
99 type(json_file),
intent(inout) :: json
100 type(
coef_t),
intent(in),
target :: coef
101 type(
dofmap_t),
intent(in),
target :: dof
102 type(
field_t),
intent(in),
target :: reg_coeff
106 this%reg_coeff => reg_coeff
108 end subroutine regularization_init_base
110 subroutine regularization_free_base(this)
111 class(regularization_t),
intent(inout) :: this
115 nullify(this%reg_coeff)
117 end subroutine regularization_free_base
Defines a mapping of the degrees of freedom.
integer, parameter, public rp
Global precision used in computations.
subroutine regularization_init_base(this, json, coef, dof, reg_coeff)
subroutine regularization_free_base(this)
Module with things related to the simulation time.
Coefficients defined on a given (mesh, ) tuple. Arrays use indices (i,j,k,e): element e,...
A struct that contains all info about the time, expand as needed.