Lines Matching full:1

8 ! libCEED Example 1
11 ! Arbitrary mesh and solution degrees in 1D, 2D and 3D are supported from the same code.
28 ! Test in 1D-3D
29 ! TESTARGS(name = "1D User QFunction") -ceed {ceed_resource} -d 1 -t
32 ! TESTARGS(name = "1D Gallery QFunction") -ceed {ceed_resource} -d 1 -t -g
58 do while (num_elem > 1)
60 s = s + 1
64 do d = 1, fe_dim
67 sd = sd + 1
68 r = r - 1
70 num_xyz(d) = ISHFT(1, sd)
104 p = degree + 1
107 num_elem = 1
108 scalar_size = 1
110 do i = 1, fe_dim
112 nd(i) = num_xyz(i) * (p - 1) + 1
116 ! elem: 0 1 n-1
118 ! num_nodes: 0 1 p-1 p p+1 2*p n*p
122 do i = 1, num_elem
123 e_xyz(1) = 1
124 e_xyz(2) = 1
125 e_xyz(3) = 1
126 re = i - 1
128 do j = 1, fe_dim
133 do j = 1, num_nodes
135 g_nodes_stride = 1
136 r_nodes = j - 1
138 do k = 1, fe_dim
139 g_nodes = g_nodes + (e_xyz(k) * (p - 1) + mod(r_nodes, p)) * g_nodes_stride
143 elem_nodes((i - 1) * num_nodes + j) = g_nodes
174 case (1)
175 do i = 1, scalar_size
176 coords(i) = 0.5d0 + (1.d0/sqrt(3.d0)) * sin((2.d0/3.d0) * m_pi * (coords(i) - 0.5d0))
178 exact_volume = 1.d0
181 do i = 1, scalar_size
182 u = 1.d0 + coords(i)
214 p = mesh_degree + 1
215 scalar_size = 1
217 do i = 1, fe_dim
218 nd(i) = num_xyz(i) * (p - 1) + 1
230 do i = 1, p
234 do i = 1, scalar_size
235 r_nodes = i - 1
237 do j = 1, fe_dim
239 … coords(scalar_size * (j - 1) + i) = ((d_1d/(p - 1)) + nodes(mod(d_1d, p - 1) + 1))/num_xyz(j)
288 prob_size = -1
297 do i = 1, num_args
303 help = 1
306 call get_command_argument(i + 1, ceed_spec)
309 call get_command_argument(i + 1, arg_value)
314 call get_command_argument(i + 1, arg_value)
318 call get_command_argument(i + 1, arg_value)
322 call get_command_argument(i + 1, arg_value)
326 call get_command_argument(i + 1, arg_value)
330 call get_command_argument(i + 1, arg_value)
335 test = 1
338 gallery = 1
343 if (test == 1) then
351 if ((test /= 1) .OR. (help == 1)) then
358 write (*, *) ' Num. 1D quadrature pts [-q] : ', num_qpts
360 if (gallery == 1) then
365 if (help == 1) then
379 …call ceedbasiscreatetensorh1lagrange(ceed, fe_dim, num_comp_x, mesh_degree + 1, num_qpts, ceed_gau…
381 …call ceedbasiscreatetensorh1lagrange(ceed, fe_dim, 1, sol_degree + 1, num_qpts, ceed_gauss, sol_ba…
387 write (*, '(A16, I8)', advance='no') 'Mesh size: nx = ', num_xyz(1)
388 if (num_comp_x > 1) then
401 …call buildcartesianrestriction(ceed, fe_dim, num_xyz, sol_degree, 1, sol_size, num_qpts, sol_restr…
417 build_ctx_data(1) = fe_dim
426 if (gallery == 1) then
428 case (1)
438 call ceedqfunctioncreateinterior(ceed, 1, build_mass,&
442 call ceedqfunctionaddinput(qf_build, 'weights', 1, ceed_eval_weight, err)
443 call ceedqfunctionaddoutput(qf_build, 'qdata', 1, ceed_eval_none, err)
454 num_elem = 1
456 do i = 1, fe_dim
463 if (gallery == 1) then
466 call ceedqfunctioncreateinterior(ceed, 1, apply_mass,&
469 call ceedqfunctionaddinput(qf_apply, 'u', 1, ceed_eval_interp, err)
470 call ceedqfunctionaddinput(qf_apply, 'qdata', 1, ceed_eval_none, err)
471 call ceedqfunctionaddoutput(qf_apply, 'v', 1, ceed_eval_interp, err)
492 call ceedvectorsetvalue(u, 1.d0, err)
494 ! Compute the mesh volume using the mass operator: volume = 1^T \cdot M \cdot 1
498 if (test /= 1 .AND. benchmark /= 0) then
503 do i = 1, benchmark
513 do i = 1, sol_size
518 if (test /= 1) then
526 if (fe_dim == 1) then
527 if (abs(exact_volume - computed_volume) > 200.d0 * 1e-15) then
533 if (abs(exact_volume - computed_volume) > 1e-5) then