1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
% Copyright (C) 2017-2020 Yves Renard.
%
% This file is a part of GetFEM++
%
% GetFEM++ is free software; you can redistribute it and/or modify it
% under the terms of the GNU Lesser General Public License as published
% by the Free Software Foundation; either version 3 of the License, or
% (at your option) any later version along with the GCC Runtime Library
% Exception either version 3.1 or (at your option) any later version.
% This program is distributed in the hope that it will be useful, but
% WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
% or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
% License and GCC Runtime Library Exception for more details.
% You should have received a copy of the GNU Lesser General Public License
% along with this program; if not, write to the Free Software Foundation,
% Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
% -*- matlab -*- (enables emacs matlab mode)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% parameters for program heat equation %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
LX = 1.0; LY = LX; LZ = LX; % sizes of the domain.
INCLINE = 0; % Incline of the mesh.
N = 2; % domain in dimension N
QUAD = 0; % use quadrilaterons or not
NX = 30; % space step.
MESH_NOISED = 0; % "shake" the mesh or not
DIRICHLET_VERSION = 0; % 0 = With Lagrange multipliers
% 1 = penalization.
DIRICHLET_COEFFICIENT = 1E10; % Penalization coefficient.
FT = 5; % parameter for the exact solution.
C = 0.1; % Wave velocity
SQRTN = 1.4142135623730951; % N = 2
% SQRTN = 1.7320508075688772; % N = 3
T = 5/(2*SQRTN*FT*C); % Final time (1.5 period)
DT = T/125; % Time step
SCHEME = 3; % Time integration scheme
% 1 = Theta-method
% 2 = Midpoint
% 3 = Newmark
THETA = 0.5; % Theta method parameter
BETA = 0.25; GAMMA = 0.5; % Newmark scheme parameters
if (N == 1)
MESH_TYPE = 'GT_PK(1,1)'; % segments
FEM_TYPE = 'FEM_PK(1,2)'; % P1 for segments
% FEM_TYPE = 'FEM_HERMITE(1)'; DATA_FEM_TYPE = 'FEM_PK(1,3)';
INTEGRATION = 'IM_GAUSS1D(6)'; % Gauss-Legendre integration on segments
end
if (N == 2 && ~QUAD)
MESH_TYPE = 'GT_PK(2,1)'; % triangles
FEM_TYPE = 'FEM_PK(2,2)'; % P1 for triangles
%FEM_TYPE = 'FEM_REDUCED_HCT_TRIANGLE'; DATA_FEM_TYPE = 'FEM_PK(2,3)';
%INTEGRATION = 'IM_HCT_COMPOSITE(IM_TRIANGLE(6))';
%FEM_TYPE = 'FEM_HERMITE(2)'; DATA_FEM_TYPE = 'FEM_PK(2,2)';
%FEM_TYPE = 'FEM_ARGYRIS'; DATA_FEM_TYPE = 'FEM_PK(2,5)';
INTEGRATION = 'IM_TRIANGLE(6)'; % quadrature rule for polynomials up
% to degree 6 on triangles
end
if (N == 2 && QUAD)
if (MESH_NOISED)
MESH_TYPE = 'GT_QK(2,1)'; % quadrilaterons
else
MESH_TYPE = 'GT_LINEAR_QK(2)'; % quadrilaterons (linear transformation)
end
FEM_TYPE = 'FEM_QK(2,2)'; % Q1 for quadrilaterons
INTEGRATION = 'IM_GAUSS_PARALLELEPIPED(2,6)';
end
if (N == 3 && ~QUAD)
MESH_TYPE = 'GT_PK(3,1)'; % tetrahedrons
FEM_TYPE = 'FEM_PK(3,2)'; % P1 for tetrahedrons
INTEGRATION = 'IM_TETRAHEDRON(2)'; % quadrature rule for polynomials up
% to degree 6 on tetrahedrons
end
if (N == 3 && QUAD)
if (MESH_NOISED)
MESH_TYPE = 'GT_QK(3,1)'; % hexahedrons
else
MESH_TYPE = 'GT_LINEAR_QK(3)'; % hexahedrons (linear transformation)
end
FEM_TYPE = 'FEM_QK(3,2)'; % Q1 for hexahedrons
INTEGRATION = 'IM_GAUSS_PARALLELEPIPED(3,6)';
end
if (N > 3)
error('Correct the parameter file for N > 3');
end
RESIDUAL = 1E-9; % residual for conjugate gradient.
ROOTFILENAME = 'wave' % Root of data files.
EXPORT_SOLUTION = 1;
|