OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
tr1_2d_supg_axi.h
Go to the documentation of this file.
1 /*
2  *
3  * ##### ##### ###### ###### ### ###
4  * ## ## ## ## ## ## ## ### ##
5  * ## ## ## ## #### #### ## # ##
6  * ## ## ## ## ## ## ## ##
7  * ## ## ## ## ## ## ## ##
8  * ##### ##### ## ###### ## ##
9  *
10  *
11  * OOFEM : Object Oriented Finite Element Code
12  *
13  * Copyright (C) 1993 - 2013 Borek Patzak
14  *
15  *
16  *
17  * Czech Technical University, Faculty of Civil Engineering,
18  * Department of Structural Mechanics, 166 29 Prague, Czech Republic
19  *
20  * This library is free software; you can redistribute it and/or
21  * modify it under the terms of the GNU Lesser General Public
22  * License as published by the Free Software Foundation; either
23  * version 2.1 of the License, or (at your option) any later version.
24  *
25  * This program is distributed in the hope that it will be useful,
26  * but WITHOUT ANY WARRANTY; without even the implied warranty of
27  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
28  * Lesser General Public License for more details.
29  *
30  * You should have received a copy of the GNU Lesser General Public
31  * License along with this library; if not, write to the Free Software
32  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
33  */
34 
35 #ifndef tr1_2d_supg_axi_h
36 #define tr1_2d_supg_axi_h
37 
38 #include "tr1_2d_supg.h"
39 
40 #define _IFT_TR1_2D_SUPG_AXI_Name "tr1supgaxi"
41 
42 namespace oofem {
53 {
54 protected:
56  double rc;
57 
58 public:
59  TR1_2D_SUPG_AXI(int n, Domain * d);
60  virtual ~TR1_2D_SUPG_AXI();
61 
62  virtual void computeAccelerationTerm_MB(FloatMatrix &answer, TimeStep *tStep);
63  virtual void computeAdvectionTerm_MB(FloatArray &answer, TimeStep *tStep);
64  virtual void computeAdvectionDerivativeTerm_MB(FloatMatrix &answer, TimeStep *tStep);
65  virtual void computeDiffusionTerm_MB(FloatArray &answer, TimeStep *tStep);
66  virtual void computeDiffusionDerivativeTerm_MB(FloatMatrix &answer, MatResponseMode mode, TimeStep *tStep);
67  virtual void computePressureTerm_MB(FloatMatrix &answer, TimeStep *tStep);
68  virtual void computeLSICStabilizationTerm_MB(FloatMatrix &answer, TimeStep *tStep);
69  virtual void computeLinearAdvectionTerm_MC(FloatMatrix &answer, TimeStep *tStep);
70  virtual void computeAdvectionTerm_MC(FloatArray &answer, TimeStep *tStep);
71  virtual void computeAdvectionDerivativeTerm_MC(FloatMatrix &answer, TimeStep *tStep);
72  virtual void computeDiffusionDerivativeTerm_MC(FloatMatrix &answer, TimeStep *tStep);
73  virtual void computeDiffusionTerm_MC(FloatArray &answer, TimeStep *tStep);
74  virtual void computeAccelerationTerm_MC(FloatMatrix &answer, TimeStep *tStep);
75  virtual void computePressureTerm_MC(FloatMatrix &answer, TimeStep *tStep);
76 
77  virtual void updateStabilizationCoeffs(TimeStep *tStep);
78  virtual void computeBCRhsTerm_MB(FloatArray &answer, TimeStep *tStep);
79  virtual void computeBCRhsTerm_MC(FloatArray &answer, TimeStep *tStep);
80  virtual void computeLoadVector(FloatArray &answer, BodyLoad *load, CharType type, ValueModeType mode, TimeStep *tStep);
81 
82  virtual void computeSlipWithFrictionBCTerm_MB(FloatMatrix &answer, Load *load, int side, TimeStep *tStep);
83  virtual void computePenetrationWithResistanceBCTerm_MB(FloatMatrix &answer, Load *load, int side, TimeStep *tStep);
84  virtual void computeOutFlowBCTerm_MB(FloatMatrix &answer, int side, TimeStep *tStep);
85  virtual void computeBCLhsTerm_MB(FloatMatrix &answer, TimeStep *tStep);
86  virtual void computeBCLhsPressureTerm_MB(FloatMatrix &answer, TimeStep *tStep);
87 
88  virtual double computeVolumeAround(GaussPoint *gp);
89  virtual void LS_PCS_computeVOFFractions(FloatArray &answer, FloatArray &fi);
90 
91  // definition
92  virtual const char *giveClassName() const { return "TR1_2D_SUPG_AXI"; }
93  virtual const char *giveInputRecordName() const { return _IFT_TR1_2D_SUPG_AXI_Name; }
94  virtual MaterialMode giveMaterialMode() { return _2dAxiFlow; }
95 
96 protected:
97  virtual void computeGaussPoints();
98  virtual void computeDeviatoricStrain(FloatArray &answer, GaussPoint *gp, TimeStep *tStep);
99  virtual void computeDeviatoricStress(FloatArray &answer, GaussPoint *gp, TimeStep *tStep);
100  virtual void initGeometry();
101  virtual double computeRadiusAt(GaussPoint *gp);
102  virtual void computeBMtrx(FloatMatrix &answer, GaussPoint *gp);
103  void computeNVector(FloatArray &answer, GaussPoint *gp);
104 };
105 } // end namespace oofem
106 #endif // tr1_2d_supg_axi_h
virtual void computePressureTerm_MB(FloatMatrix &answer, TimeStep *tStep)
Computes pressure terms for momentum balance equations(s).
Class and object Domain.
Definition: domain.h:115
virtual void computeDiffusionDerivativeTerm_MB(FloatMatrix &answer, MatResponseMode mode, TimeStep *tStep)
Computes the derivative of diffusion terms for momentum balance equations(s) with respect to nodal ve...
virtual MaterialMode giveMaterialMode()
Returns material mode for receiver integration points.
virtual void computeAccelerationTerm_MC(FloatMatrix &answer, TimeStep *tStep)
Computes acceleration terms for mass conservation equation.
virtual void computeAdvectionTerm_MB(FloatArray &answer, TimeStep *tStep)
Computes nonlinear advection terms for momentum balance equations(s).
virtual void computeDiffusionTerm_MC(FloatArray &answer, TimeStep *tStep)
Computes diffusion terms for mass conservation equation.
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
Definition: valuemodetype.h:78
Class implementing element body load, acting over whole element volume (e.g., the dead weight)...
Definition: bodyload.h:49
virtual void computeDeviatoricStress(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
virtual void updateStabilizationCoeffs(TimeStep *tStep)
Updates the stabilization coefficients used for CBS and SUPG algorithms.
MaterialMode
Type representing material mode of integration point.
Definition: materialmode.h:89
virtual void computeAdvectionTerm_MC(FloatArray &answer, TimeStep *tStep)
Computes advection terms for mass conservation equation.
MatResponseMode
Describes the character of characteristic material matrix.
virtual void LS_PCS_computeVOFFractions(FloatArray &answer, FloatArray &fi)
Returns VOF fractions for each material on element according to nodal values of level set function (p...
virtual double computeRadiusAt(GaussPoint *gp)
virtual void computeBCLhsTerm_MB(FloatMatrix &answer, TimeStep *tStep)
Computes Lhs terms due to boundary conditions - velocity.
#define _IFT_TR1_2D_SUPG_AXI_Name
virtual void computeSlipWithFrictionBCTerm_MB(FloatMatrix &answer, Load *load, int side, TimeStep *tStep)
Computes Lhs term due to applied slip with friction bc.
virtual void computeAdvectionDerivativeTerm_MC(FloatMatrix &answer, TimeStep *tStep)
Computes the derivative of advection terms for mass conservation equation with respect to nodal veloc...
virtual void computeOutFlowBCTerm_MB(FloatMatrix &answer, int side, TimeStep *tStep)
Computes Lhs contribution due to outflow BC.
TR1_2D_SUPG_AXI(int n, Domain *d)
virtual void computeBMtrx(FloatMatrix &answer, GaussPoint *gp)
virtual void computeBCLhsPressureTerm_MB(FloatMatrix &answer, TimeStep *tStep)
Computes Lhs terms due to boundary conditions - pressure.
virtual void computeAccelerationTerm_MB(FloatMatrix &answer, TimeStep *tStep)
Computes acceleration terms (generalized mass matrix with stabilization terms) for momentum balance e...
Class representing 2d linear axisymmetric triangular element for solving incompressible fluid with SU...
virtual void computeDiffusionDerivativeTerm_MC(FloatMatrix &answer, TimeStep *tStep)
Computes diffusion derivative terms for mass conservation equation.
virtual void computeLoadVector(FloatArray &answer, BodyLoad *load, CharType type, ValueModeType mode, TimeStep *tStep)
Computes the contribution of the given body load (volumetric).
virtual void computeLSICStabilizationTerm_MB(FloatMatrix &answer, TimeStep *tStep)
Computes SLIC stabilization term for momentum balance equation(s).
Class representing vector of real numbers.
Definition: floatarray.h:82
virtual void computeBCRhsTerm_MB(FloatArray &answer, TimeStep *tStep)
Computes Rhs terms due to boundary conditions.
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
virtual void computePressureTerm_MC(FloatMatrix &answer, TimeStep *tStep)
Computes pressure terms for mass conservation equation.
virtual const char * giveInputRecordName() const
virtual void computeDeviatoricStrain(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
virtual void computeAdvectionDerivativeTerm_MB(FloatMatrix &answer, TimeStep *tStep)
Computes the derivative of advection terms for momentum balance equations(s) with respect to nodal ve...
virtual double computeVolumeAround(GaussPoint *gp)
Returns volume related to given integration point.
CharType
Definition: chartype.h:87
void computeNVector(FloatArray &answer, GaussPoint *gp)
virtual void computeLinearAdvectionTerm_MC(FloatMatrix &answer, TimeStep *tStep)
Computes the linear advection term for mass conservation equation.
virtual void computeDiffusionTerm_MB(FloatArray &answer, TimeStep *tStep)
Computes diffusion terms for momentum balance equations(s).
double rc
Radius at element center.
virtual void computeBCRhsTerm_MC(FloatArray &answer, TimeStep *tStep)
Computes Rhs terms due to boundary conditions.
Class representing 2d linear triangular element for solving incompressible fluid with SUPG solver...
Definition: tr1_2d_supg.h:68
Load is base abstract class for all loads.
Definition: load.h:61
virtual const char * giveClassName() const
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual void initGeometry()
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
virtual void computePenetrationWithResistanceBCTerm_MB(FloatMatrix &answer, Load *load, int side, TimeStep *tStep)
Computes Lhs contribution due to applied Penetration bc.
virtual void computeGaussPoints()
Initializes the array of integration rules member variable.

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:32 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011