Home
last modified time | relevance | path

Searched full:dim (Results 1 – 25 of 269) sorted by relevance

1234567891011

/libCEED/julia/LibCEED.jl/examples/
H A Dex2-surface.jl5 function transform_mesh_coords!(dim, mesh_size, mesh_coords) argument
12 exact_sa = (dim == 1 ? 2 : dim == 2 ? 4 : 6)
15 function run_ex2(; ceed_spec, dim, mesh_order, sol_order, num_qpts, prob_size, gallery) argument
16 ncompx = dim
24 create_tensor_h1_lagrange_basis(ceed, dim, ncompx, mesh_order + 1, num_qpts, GAUSS)
26 create_tensor_h1_lagrange_basis(ceed, dim, 1, sol_order + 1, num_qpts, GAUSS)
28 nxyz = get_cartesian_mesh_size(dim, sol_order, prob_size)
35 dim,
44 dim,
47 div(dim*(dim + 1), 2),
[all …]
H A Dex3-volume.jl5 function transform_mesh_coords!(dim, mesh_size, mesh_coords) argument
7 if dim == 1
14 num_nodes = mesh_size÷dim
31 function run_ex3(; ceed_spec, dim, mesh_order, sol_order, num_qpts, prob_size) argument
32 ncompx = dim
37 create_tensor_h1_lagrange_basis(ceed, dim, ncompx, mesh_order + 1, num_qpts, GAUSS)
39 create_tensor_h1_lagrange_basis(ceed, dim, 1, sol_order + 1, num_qpts, GAUSS)
42 nxyz = get_cartesian_mesh_size(dim, sol_order, prob_size)
48 build_cartesian_restriction(ceed, dim, nxyz, mesh_order, ncompx, num_qpts)
49 num_q_comp = 1 + div(dim*(dim + 1), 2)
[all …]
/libCEED/tests/
H A Dt522-operator.c30 …CeedInt num_elem_tet = 6, p_tet = 6, q_tet = 4, num_elem_hex = 6, p_hex = 3, q_hex = 4, dim in main() local
35 CeedScalar q_ref[dim * q_tet], q_weight[q_tet]; in main()
36 CeedScalar interp[p_tet * q_tet], grad[dim * p_tet * q_tet]; in main()
41 CeedVectorCreate(ceed, dim * num_dofs, &x); in main()
43 CeedScalar x_array[dim * num_dofs]; in main()
55 CeedVectorCreate(ceed, num_qpts_tet * dim * (dim + 1) / 2, &q_data_tet); in main()
56 CeedVectorCreate(ceed, num_qpts_hex * dim * (dim + 1) / 2, &q_data_hex); in main()
79 …CeedElemRestrictionCreate(ceed, num_elem_tet, p_tet, dim, num_dofs, dim * num_dofs, CEED_MEM_HOST,… in main()
83 CeedInt strides_q_data_tet[3] = {1, q_tet, q_tet * dim * (dim + 1) / 2}; in main()
84 …CeedElemRestrictionCreateStrided(ceed, num_elem_tet, q_tet, dim * (dim + 1) / 2, dim * (dim + 1) /… in main()
[all …]
H A Dt313-basis.c8 static CeedScalar Eval(CeedInt dim, const CeedScalar x[]) { in Eval() argument
10 for (CeedInt d = 0; d < dim; d++) { in Eval()
22 for (CeedInt dim = 1; dim <= 3; dim++) { in main() local
25 CeedInt q = 10, q_dim = CeedIntPow(q, dim), x_dim = CeedIntPow(2, dim); in main()
27 CeedVectorCreate(ceed, x_dim * dim, &x); in main()
29 CeedScalar x_array[x_dim * dim]; in main()
31 for (CeedInt d = 0; d < dim; d++) { in main()
36 CeedVectorCreate(ceed, q_dim * dim, &x_q); in main()
42 CeedBasisCreateTensorH1Lagrange(ceed, dim, dim, 2, q, CEED_GAUSS_LOBATTO, &basis_x_lobatto); in main()
43 CeedBasisCreateTensorH1Lagrange(ceed, dim, 1, q, q, CEED_GAUSS_LOBATTO, &basis_u_lobatto); in main()
[all …]
H A Dt318-basis.c8 static CeedScalar Eval(CeedInt dim, const CeedScalar x[]) { in Eval() argument
10 for (CeedInt d = 0; d < dim; d++) { in Eval()
21 for (CeedInt dim = 1; dim <= 3; dim++) { in main() local
24 CeedInt q = 11, q_dim = CeedIntPow(q, dim), x_dim = CeedIntPow(2, dim); in main()
26 CeedVectorCreate(ceed, x_dim * dim, &x); in main()
28 CeedScalar x_array[x_dim * dim]; in main()
30 for (CeedInt d = 0; d < dim; d++) { in main()
35 CeedVectorCreate(ceed, q_dim * dim, &x_q); in main()
41 CeedBasisCreateTensorH1Lagrange(ceed, dim, dim, 2, q, CEED_GAUSS_LOBATTO, &basis_x_lobatto); in main()
42 CeedBasisCreateTensorH1Lagrange(ceed, dim, 1, q, q, CEED_GAUSS_LOBATTO, &basis_u_lobatto); in main()
[all …]
H A Dt356-basis.c8 static CeedScalar Eval(CeedInt dim, const CeedScalar x[]) { in Eval() argument
10 for (CeedInt d = 0; d < dim; d++) { in Eval()
17 static CeedScalar EvalGrad(CeedInt dim, const CeedScalar x[], CeedInt direction) { in EvalGrad() argument
19 for (CeedInt d = 0; d < dim; d++) { in EvalGrad()
32 for (CeedInt dim = 1; dim <= 3; dim++) { in main() local
35 …const CeedInt p = 9, q = 9, num_points = 4, x_dim = CeedIntPow(2, dim), p_dim = CeedIntPow(p, dim); in main()
37 CeedVectorCreate(ceed, x_dim * dim, &x); in main()
38 CeedVectorCreate(ceed, p_dim * dim, &x_nodes); in main()
39 CeedVectorCreate(ceed, num_points * dim, &x_points); in main()
41 CeedVectorCreate(ceed, num_points * dim, &v); in main()
[all …]
H A Dt319-basis.c9 static CeedScalar Eval(CeedInt dim, const CeedScalar x[]) { in Eval() argument
11 if (dim > 1) result += (x[1] + 0.2) * (x[1] + 0.2); in Eval()
12 if (dim > 2) result += -(x[2] + 0.3) * (x[2] + 0.3); in Eval()
16 static CeedScalar EvalGrad(CeedInt dim, const CeedScalar x[]) { in EvalGrad() argument
17 switch (dim) { in EvalGrad()
27 static CeedScalar GetTolerance(CeedScalarType scalar_type, int dim) { in GetTolerance() argument
30 if (dim == 3) tol = 1.e-4; in GetTolerance()
38 static void VerifyProjectedBasis(CeedBasis basis_project, CeedInt dim, CeedInt p_to_dim, CeedInt p_… in VerifyProjectedBasis() argument
46 tol = GetTolerance(scalar_type, dim); in VerifyProjectedBasis()
56 CeedScalar coord[dim]; in VerifyProjectedBasis()
[all …]
H A Dt361-basis.c8 static CeedScalar Eval(CeedInt dim, const CeedScalar x[]) { in Eval() argument
10 if (dim > 1) result += atan(x[1] + 0.2); in Eval()
11 if (dim > 2) result += exp(-(x[2] + 0.3) * (x[2] + 0.3)); in Eval()
15 static CeedScalar GetTolerance(CeedScalarType scalar_type, int dim) { in GetTolerance() argument
18 if (dim == 3) tol = 0.05; in GetTolerance()
31 for (CeedInt dim = 1; dim <= 3; dim++) { in main() local
34 …eedInt p = 8, q = 10, p_dim = CeedIntPow(p, dim), q_dim = CeedIntPow(q, dim), x_dim = CeedIntPo… in main()
37 CeedVectorCreate(ceed, x_dim * dim, &x); in main()
39 CeedScalar x_array[x_dim * dim]; in main()
41 for (CeedInt d = 0; d < dim; d++) { in main()
[all …]
H A Dt315-basis.c8 static CeedScalar Eval(CeedInt dim, const CeedScalar x[]) { in Eval() argument
10 if (dim > 1) result += atan(x[1] + 0.2); in Eval()
11 if (dim > 2) result += exp(-(x[2] + 0.3) * (x[2] + 0.3)); in Eval()
15 static CeedScalar GetTolerance(CeedScalarType scalar_type, int dim) { in GetTolerance() argument
18 if (dim == 3) tol = 5.e-3; in GetTolerance()
31 for (CeedInt dim = 1; dim <= 3; dim++) { in main() local
34 …CeedInt p = 8, q = 8, p_dim = CeedIntPow(p, dim), q_dim = CeedIntPow(q, dim), x_dim = CeedIntPo… in main()
37 CeedVectorCreate(ceed, x_dim * dim, &x); in main()
39 CeedScalar x_array[x_dim * dim]; in main()
41 for (CeedInt d = 0; d < dim; d++) { in main()
[all …]
H A Dt314-basis.c8 static CeedScalar Eval(CeedInt dim, const CeedScalar x[]) { in Eval() argument
10 if (dim > 1) result += atan(x[1] + 0.2); in Eval()
11 if (dim > 2) result += exp(-(x[2] + 0.3) * (x[2] + 0.3)); in Eval()
15 static CeedScalar GetTolerance(CeedScalarType scalar_type, int dim) { in GetTolerance() argument
18 if (dim == 3) tol = 0.05; in GetTolerance()
31 for (CeedInt dim = 1; dim <= 3; dim++) { in main() local
34 …eedInt p = 8, q = 10, p_dim = CeedIntPow(p, dim), q_dim = CeedIntPow(q, dim), x_dim = CeedIntPo… in main()
37 CeedVectorCreate(ceed, x_dim * dim, &x); in main()
39 CeedScalar x_array[x_dim * dim]; in main()
41 for (CeedInt d = 0; d < dim; d++) { in main()
[all …]
H A Dt316-basis.c8 static CeedScalar Eval(CeedInt dim, const CeedScalar x[]) { in Eval() argument
10 if (dim > 1) result += atan(x[1] + 0.2); in Eval()
11 if (dim > 2) result += exp(-(x[2] + 0.3) * (x[2] + 0.3)); in Eval()
15 static CeedScalar GetTolerance(CeedScalarType scalar_type, int dim) { in GetTolerance() argument
18 if (dim == 3) tol = 0.005; in GetTolerance()
31 for (CeedInt dim = 1; dim <= 3; dim++) { in main() local
34 …CeedInt p = 8, q = 7, p_dim = CeedIntPow(p, dim), q_dim = CeedIntPow(q, dim), x_dim = CeedIntPo… in main()
37 CeedVectorCreate(ceed, x_dim * dim, &x); in main()
39 CeedScalar x_array[x_dim * dim]; in main()
41 for (CeedInt d = 0; d < dim; d++) { in main()
[all …]
H A Dt365-basis.c8 static CeedScalar Eval(CeedInt dim, const CeedScalar x[]) { in Eval() argument
10 if (dim > 1) result += atan(x[1] + 0.2); in Eval()
11 if (dim > 2) result += exp(-(x[2] + 0.3) * (x[2] + 0.3)); in Eval()
15 static CeedScalar GetTolerance(CeedScalarType scalar_type, int dim) { in GetTolerance() argument
18 if (dim == 3) tol = 0.005; in GetTolerance()
31 for (CeedInt dim = 1; dim <= 3; dim++) { in main() local
34 …const CeedInt p = 9, q = 9, num_points = 4, x_dim = CeedIntPow(2, dim), p_dim = CeedIntPow(p, dim); in main()
37 CeedVectorCreate(ceed, x_dim * dim, &x); in main()
38 CeedVectorCreate(ceed, p_dim * dim, &x_nodes); in main()
39 CeedVectorCreate(ceed, num_points * dim, &x_points); in main()
[all …]
H A Dt357-basis.c8 static CeedScalar Eval(CeedInt dim, const CeedScalar x[]) { in Eval() argument
10 if (dim > 1) result += atan(x[1] + 0.2); in Eval()
11 if (dim > 2) result += exp(-(x[2] + 0.3) * (x[2] + 0.3)); in Eval()
15 static CeedScalar GetTolerance(CeedScalarType scalar_type, int dim) { in GetTolerance() argument
18 if (dim == 3) tol = 0.005; in GetTolerance()
31 for (CeedInt dim = 1; dim <= 3; dim++) { in main() local
34 …const CeedInt p = 9, q = 9, num_points = 4, x_dim = CeedIntPow(2, dim), p_dim = CeedIntPow(p, dim); in main()
37 CeedVectorCreate(ceed, x_dim * dim, &x); in main()
38 CeedVectorCreate(ceed, p_dim * dim, &x_nodes); in main()
39 CeedVectorCreate(ceed, num_points * dim, &x_points); in main()
[all …]
H A Dt415-qfunction.c19 for (CeedInt dim = 1; dim <= 3; dim++) { in main() local
20 CeedInt num_qpts = CeedIntPow(q, dim); in main()
22 CeedVectorCreate(ceed, num_qpts * dim * dim, &dx); in main()
24 CeedVectorCreate(ceed, num_qpts * dim * num_comp, &du); in main()
26 … CeedScalar dx_array[num_qpts * dim * dim], w_array[num_qpts], du_array[num_qpts * dim * num_comp]; in main()
31 for (CeedInt d = 0; d < dim; d++) { in main()
32 for (CeedInt g = 0; g < dim; g++) { in main()
34 dx_array[i + (g * dim + d) * num_qpts] = d == g; in main()
39 for (CeedInt g = 0; g < dim; g++) { in main()
50 CeedVectorCreate(ceed, num_qpts * dim * (dim + 1) / 2, &q_data); in main()
[all …]
H A Dt351-basis.c8 static CeedScalar Eval(CeedInt dim, const CeedScalar x[]) { in Eval() argument
10 for (CeedInt d = 0; d < dim; d++) { in Eval()
22 for (CeedInt dim = 1; dim <= 3; dim++) { in main() local
25 …onst CeedInt p = 9, q = 10, num_points = 4, x_dim = CeedIntPow(2, dim), p_dim = CeedIntPow(p, dim); in main()
27 CeedVectorCreate(ceed, x_dim * dim, &x); in main()
28 CeedVectorCreate(ceed, p_dim * dim, &x_nodes); in main()
29 CeedVectorCreate(ceed, num_points * dim, &x_points); in main()
34 CeedBasisCreateTensorH1Lagrange(ceed, dim, dim, 2, p, CEED_GAUSS_LOBATTO, &basis_x); in main()
36 CeedScalar x_array[x_dim * dim]; in main()
38 for (CeedInt d = 0; d < dim; d++) { in main()
[all …]
H A Dt352-basis.c8 static CeedScalar Eval(CeedInt dim, CeedScalar scale, const CeedScalar x[]) { in Eval() argument
10 for (CeedInt d = 0; d < dim; d++) { in Eval()
22 for (CeedInt dim = 1; dim <= 3; dim++) { in main() local
25 …p = 9, q = 9, num_comp = 3, num_points = 4, x_dim = CeedIntPow(2, dim), p_dim = CeedIntPow(p, dim); in main()
27 CeedVectorCreate(ceed, x_dim * dim, &x); in main()
28 CeedVectorCreate(ceed, p_dim * dim, &x_nodes); in main()
29 CeedVectorCreate(ceed, num_points * dim, &x_points); in main()
34 CeedBasisCreateTensorH1Lagrange(ceed, dim, dim, 2, p, CEED_GAUSS_LOBATTO, &basis_x); in main()
36 CeedScalar x_array[x_dim * dim]; in main()
38 for (CeedInt d = 0; d < dim; d++) { in main()
[all …]
H A Dt354-basis.c8 static CeedScalar Eval(CeedInt dim, const CeedScalar x[]) { in Eval() argument
10 for (CeedInt d = 0; d < dim; d++) { in Eval()
22 for (CeedInt dim = 1; dim <= 3; dim++) { in main() local
25 …const CeedInt p = 9, q = 9, num_points = 4, x_dim = CeedIntPow(2, dim), p_dim = CeedIntPow(p, dim); in main()
27 CeedVectorCreate(ceed, x_dim * dim, &x); in main()
28 CeedVectorCreate(ceed, p_dim * dim, &x_nodes); in main()
29 CeedVectorCreate(ceed, num_points * dim, &x_points); in main()
30 CeedVectorCreate(ceed, dim, &x_point); in main()
38 CeedBasisCreateTensorH1Lagrange(ceed, dim, dim, 2, p, CEED_GAUSS_LOBATTO, &basis_x); in main()
40 CeedScalar x_array[x_dim * dim]; in main()
[all …]
H A Dt531-operator.c18 CeedInt num_elem = 6, p = 3, q = 4, dim = 2; in main() local
26 CeedVectorCreate(ceed, dim * num_dofs, &x); in main()
28 CeedScalar x_array[dim * num_dofs]; in main()
52 CeedVectorCreate(ceed, num_qpts * dim * (dim + 1) / 2, &q_data); in main()
64 …CeedElemRestrictionCreate(ceed, num_elem, p * p, dim, num_dofs, dim * num_dofs, CEED_MEM_HOST, CEE… in main()
67 CeedInt strides_q_data[3] = {1, q * q, q * q * dim * (dim + 1) / 2}; in main()
68 …CeedElemRestrictionCreateStrided(ceed, num_elem, q * q, dim * (dim + 1) / 2, dim * (dim + 1) / 2 *… in main()
72 CeedBasisCreateTensorH1Lagrange(ceed, dim, dim, p, q, CEED_GAUSS, &basis_x); in main()
73 CeedBasisCreateTensorH1Lagrange(ceed, dim, 1, p, q, CEED_GAUSS, &basis_u); in main()
77 CeedQFunctionAddInput(qf_setup, "dx", dim * dim, CEED_EVAL_GRAD); in main()
[all …]
H A Dt597-operator.c22 CeedInt p = 3, q = 4, dim = 2; in main() local
31 CeedVectorCreate(ceed, dim * num_points, &x_points); in main()
33 CeedScalar x_array[dim * num_points]; in main()
36 for (CeedInt d = 0; d < dim; d++) { in main()
37 x_array[num_points_per_elem * (e * dim + d) + 0] = 0.25; in main()
38 x_array[num_points_per_elem * (e * dim + d) + 1] = d == 0 ? -0.25 : 0.25; in main()
39 x_array[num_points_per_elem * (e * dim + d) + 2] = d == 0 ? 0.25 : -0.25; in main()
40 x_array[num_points_per_elem * (e * dim + d) + 3] = 0.25; in main()
50 …CeedElemRestrictionCreateAtPoints(ceed, num_elem, num_points, dim, num_points * dim, CEED_MEM_HOST… in main()
52 …RestrictionCreateAtPoints(ceed, num_elem, num_points, dim * (dim + 1) / 2, num_points * dim * (dim in main()
[all …]
H A Dt534-operator.c18 CeedInt num_elem = 6, p = 3, q = 4, dim = 2; in main() local
27 CeedVectorCreate(ceed, dim * num_dofs, &x); in main()
29 CeedScalar x_array[dim * num_dofs]; in main()
41 CeedVectorCreate(ceed, num_qpts * dim * (dim + 1) / 2, &q_data); in main()
53 …CeedElemRestrictionCreate(ceed, num_elem, p * p, dim, num_dofs, dim * num_dofs, CEED_MEM_HOST, CEE… in main()
56 CeedInt strides_q_data[3] = {1, q * q, q * q * dim * (dim + 1) / 2}; in main()
57 …CeedElemRestrictionCreateStrided(ceed, num_elem, q * q, dim * (dim + 1) / 2, dim * (dim + 1) / 2 *… in main()
61 CeedBasisCreateTensorH1Lagrange(ceed, dim, dim, p, q, CEED_GAUSS, &basis_x); in main()
62 CeedBasisCreateTensorH1Lagrange(ceed, dim, 1, p, q, CEED_GAUSS, &basis_u); in main()
66 CeedQFunctionAddInput(qf_setup, "dx", dim * dim, CEED_EVAL_GRAD); in main()
[all …]
/libCEED/examples/deal.II/
H A Dbps-kokkos.h41 template <int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number>
46 operator()(Portable::FEEvaluation<dim, fe_degree, n_q_points_1d, n_components, Number> *fe_eval, in operator()
55 template <int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number>
60 operator()(Portable::FEEvaluation<dim, fe_degree, n_q_points_1d, n_components, Number> *fe_eval, in operator()
69 template <int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number>
74 operator()(const typename Portable::MatrixFree<dim, Number>::Data *data, in operator()
78 Portable::FEEvaluation<dim, fe_degree, n_q_points_1d, n_components, Number> fe_eval(data); in operator()
82 OperatorDealiiMassQuad<dim, fe_degree, n_q_points_1d, n_components, Number>()); in operator()
87 static const unsigned int n_local_dofs = Utilities::pow(fe_degree + 1, dim) * n_components;
88 static const unsigned int n_q_points = Utilities::pow(n_q_points_1d, dim);
[all …]
/libCEED/examples/ceed/
H A Dex3-volume.c47 int GetCartesianMeshSize(CeedInt dim, CeedInt degree, CeedInt prob_size, CeedInt num_xyz[dim
48 int BuildCartesianRestriction(Ceed ceed, CeedInt dim, CeedInt num_xyz[dim], CeedInt degree, …
50 int SetCartesianMeshCoords(CeedInt dim, CeedInt num_xyz[dim], CeedInt mesh_degree, CeedVecto…
51 CeedScalar TransformMeshCoords(CeedInt dim, CeedInt mesh_size, CeedVector mesh_coords);
56 CeedInt dim = 3; // dimension of the mesh in main() local
73 parse_error = next_arg ? dim = atoi(argv[++ia]), 0 : 1; in main()
74 num_comp_x = dim; in main()
101 printf(" Mesh dimension [-d] : %" CeedInt_FMT "\n", dim); in main()
123 …CeedBasisCreateTensorH1Lagrange(ceed, dim, num_comp_x, mesh_degree + 1, num_qpts, CEED_GAUSS, &mes… in main()
124 CeedBasisCreateTensorH1Lagrange(ceed, dim, 1, sol_degree + 1, num_qpts, CEED_GAUSS, &sol_basis); in main()
[all …]
H A Dex2-surface.c48 int GetCartesianMeshSize(CeedInt dim, CeedInt degree, CeedInt prob_size, CeedInt num_xyz[3]);
49 int BuildCartesianRestriction(Ceed ceed, CeedInt dim, CeedInt num_xyz[3], CeedInt degree, Ce…
51 int SetCartesianMeshCoords(CeedInt dim, CeedInt num_xyz[3], CeedInt mesh_degree, CeedVector …
52 CeedScalar TransformMeshCoords(CeedInt dim, CeedInt mesh_size, CeedVector mesh_coords);
57 CeedInt dim = 3; // dimension of the mesh in main() local
74 parse_error = next_arg ? dim = atoi(argv[++ia]), 0 : 1; in main()
75 num_comp_x = dim; in main()
97 if (prob_size < 0) prob_size = test ? 16 * 16 * dim * dim : 256 * 1024; in main()
108 printf(" Mesh dimension [-d] : %" CeedInt_FMT "\n", dim); in main()
130 …CeedBasisCreateTensorH1Lagrange(ceed, dim, num_comp_x, mesh_degree + 1, num_qpts, CEED_GAUSS, &mes… in main()
[all …]
/libCEED/examples/python/
H A Dex2_surface.py41 dim = args.dim
45 …problem_size = args.problem_size if args.problem_size > 0 else (500 * dim * dim if args.test else …
46 ncomp_x = dim # Number of coordinate components
52 print(f" Mesh dimension [-d] : {dim}")
65 dim, ncomp_x, mesh_degree + 1, num_qpts, libceed.GAUSS)
69 dim, 1, sol_degree + 1, num_qpts, libceed.GAUSS)
73 num_xyz = common.get_cartesian_mesh_size(dim, sol_degree, problem_size)
76 if dim > 1:
78 if dim > 2:
83 num_q_comp = dim * (dim + 1) // 2
[all …]
H A Dtutorial-3-basis.ipynb59 "def eval(dim, x):\n",
61 " for d in range(dim):\n",
93 " dim=1, # topological dimension\n",
194 "for dim in range(1, 4):\n",
196 " Q_dim = Q**dim\n",
197 " X_dim = 2**dim\n",
198 " x = np.empty(X_dim*dim, dtype=\"float64\")\n",
201 " for d in range(dim):\n",
203 " x[d*X_dim + i] = 1 if (i % (2**(dim-d))) // (2**(dim-d-1)) else -1\n",
205 " X = ceed.Vector(X_dim*dim)\n",
[all …]

1234567891011