OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
simpletransportcrosssection.C
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 
36 #include "transportmaterial.h"
37 #include "dynamicinputrecord.h"
38 #include "classfactory.h"
39 
40 namespace oofem {
41 REGISTER_CrossSection(SimpleTransportCrossSection);
42 
44 
46 
47 
50 {
51  IRResultType result; // Required by IR_GIVE_FIELD macro
52 
54  this->propertyDictionary.clear();
56  double thickness;
58  this->propertyDictionary.add(CS_Thickness, thickness);
59  }
60 
62 }
63 
64 
65 void
67 {
69 
71 }
72 
73 
74 int
76 {
77  Material *mat = dynamic_cast< TransportMaterial * >( this->domain->giveMaterial(this->matNumber) );
78  if ( !mat ) {
79  return 0;
80  }
82 }
83 
84 
87 {
88  return dynamic_cast< TransportMaterial * >( this->domain->giveMaterial(this->matNumber) );
89 }
90 
91 Material *
93 {
94  return this->domain->giveMaterial(this->matNumber);
95 }
96 
97 
98 int
100 {
101  return this->domain->giveMaterial(this->matNumber)->giveIPValue(answer, ip, type, tStep);
102 }
103 
104 
105 bool
107 {
108  return this->domain->giveMaterial(this->matNumber)->isCharacteristicMtrxSymmetric(rMode);
109 }
110 
111 
112 int
114 {
115  return this->domain->giveMaterial(this->matNumber)->packUnknowns(buff, tStep, gp);
116 }
117 
118 int
120 {
121  return this->domain->giveMaterial(this->matNumber)->unpackAndUpdateUnknowns(buff, tStep, gp);
122 }
123 
124 int
126 {
127  return this->domain->giveMaterial(this->matNumber)->estimatePackSize(buff, gp);
128 }
129 
130 } // end namespace oofem
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
void setField(int item, InputFieldType id)
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Definition: crosssection.C:67
Class and object Domain.
Definition: domain.h:115
Domain * domain
Link to domain object, useful for communicating with other FEM components.
Definition: femcmpnn.h:82
virtual int packUnknowns(DataStream &buff, TimeStep *tStep, GaussPoint *ip)
Pack all necessary data of integration point (according to element parallel_mode) into given communic...
Definition: material.h:285
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
Definition: datastream.h:54
Transort cross-section.
virtual bool isCharacteristicMtrxSymmetric(MatResponseMode rMode)
Check for symmetry of stiffness matrix.
virtual bool hasField(InputFieldType id)=0
Returns true if record contains field identified by idString keyword.
REGISTER_CrossSection(EmptyCS)
#define _IFT_SimpleTransportCrossSection_material
SimpleTransportCrossSection(int n, Domain *d)
Constructor.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
Definition: crosssection.C:82
MatResponseMode
Describes the character of characteristic material matrix.
virtual int estimatePackSize(DataStream &buff, GaussPoint *gp)
Estimates the necessary pack size to hold all packed data of receiver.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
#define _IFT_SimpleTransportCrossSection_thickness
Dictionary propertyDictionary
Dictionary for storing cross section parameters (like dimensions).
Definition: crosssection.h:115
Material * giveMaterial(int n)
Service for accessing particular domain material model.
Definition: domain.C:281
virtual int checkConsistency()
Allows programmer to test some internal data, before computation begins.
Definition: femcmpnn.C:94
virtual bool isCharacteristicMtrxSymmetric(MatResponseMode rMode)
Returns true if stiffness matrix of receiver is symmetric Default implementation returns true...
Definition: material.h:129
virtual TransportMaterial * giveMaterial()
Temporary function that hands out the material. Must be removed for future layered support...
virtual int checkConsistency()
Allows programmer to test some internal data, before computation begins.
void clear()
Clears the receiver.
Definition: dictionary.C:52
virtual int packUnknowns(DataStream &buff, TimeStep *tStep, GaussPoint *gp)
Pack all necessary data of integration point (according to element parallel_mode) into given communic...
Abstract base class for all material models.
Definition: material.h:95
Pair * add(int aKey, double value)
Adds a new Pair with given keyword and value into receiver.
Definition: dictionary.C:81
Class representing vector of real numbers.
Definition: floatarray.h:82
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
virtual int unpackAndUpdateUnknowns(DataStream &buff, TimeStep *tStep, GaussPoint *gp)
Unpack and updates all necessary data of given integration point (according to element parallel_mode)...
Class representing the general Input Record.
Definition: inputrecord.h:101
Abstract base class for all constitutive models for transport problems.
Class representing the a dynamic Input Record.
virtual int estimatePackSize(DataStream &buff, GaussPoint *ip)
Estimates the necessary pack size to hold all packed data of receiver.
Definition: material.h:298
virtual int giveIPValue(FloatArray &answer, GaussPoint *ip, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in Reduced form.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual int unpackAndUpdateUnknowns(DataStream &buff, TimeStep *tStep, GaussPoint *ip)
Unpack and updates all necessary data of given integration point (according to element parallel_mode)...
Definition: material.h:294
#define IR_GIVE_FIELD(__ir, __value, __id)
Macro facilitating the use of input record reading methods.
Definition: inputrecord.h:69
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in Reduced form.
Definition: material.C:142

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:31 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011