• Sonuç bulunamadı

5. DEĞERLENDİRME

5.2. Plan ve Mimari Özellikler

O pacote MaterialMedia cont´em interfaces e classes necess´arias para represen- tar da forma mais geral poss´ıvel a constitui¸c˜ao f´ısica dos elementos finitos.

A interface Material (Figura 5.12) possui os m´etodos necess´arios para obter informa¸c˜oes sobre as propriedades dos diferentes materiais, sejam elas propriedades secantes, tangentes ou de descarregamento. Os diferentes materiais s˜ao representa- dos pelas classes que implementam a interface Material, e que tˆem como atributos seu label e uma cole¸c˜ao do tipo HashMap com os valores necess´arios para caracterizar aquele material. A figura 5.12 mostra o diagrama de classe da interface Material e algumas de suas sub-classes implementadas para diversos tipos de materiais.

Existe, ainda, a classe MaterialPoint (Figura 5.13) que tem o papel de repre- sentar um ponto no meio material e que tem como propriedades um label, um objeto IPoint3d, que o representa como um ponto no espa¸co, um objeto IVolume, que representa sua propriedade geom´etrica, um objeto Material, um objeto Analysis- Modele um objeto ConstitutiveModel. Possui ainda duas cole¸c˜oes do tipo HashMap que armazenam dois tipos de vari´aveis dependentes do seu modelo constitutivo: as vari´aveis constitutivas atuais e as vari´aveis constitutivas pr´evias.

82 PolarVonMises LinearMaterial LinearElasticOrthotropic ElastoPlasticMaterial BilinearPlasticIsotropic MicroplaneMaterial VonMises LinearPlasticIsotropic

ConcreteEC2 ConcreteIzzudin2002 ConcreteNB1 Ozbolt ConcreteSun1993 Steel StretchPolarLinearElasticIsotropic ConcreteCarreira LinearElasticIsotropic Concrete PolarLinearElasticIsotropic Leukart MicromorphicMaterial Anisotropic

br.ufmg.dees.insane.materialMedia.materialPoint

pkg

+ getPreviousVariables() : HashMap<Object,Object> + getConstitutiveVariables() : HashMap<Object,Object> + getDualInternalVariables(v : IVector) : IVector + clone() : Object + update() : void + init() : void - label : String MaterialPoint + getNormal() : IVector + clone() : Object + init() : void MicroplaneMaterialPoint - material 1 - cm 1 - point 1 - previousVariables 1 - constitutiveVariables 1 - volume 1 - continuousPointModel 1 ContinuousPointModel IVolume HashMap<Object,Object> IPoint3d ConstitutiveModel Material <<interface>> Cloneable HashMap<Object,Object>

Figura 5.13: Diagrama de classe para MaterialPoint.

Estas duas cole¸c˜oes s˜ao capazes de informar, durante a an´alise, o estado do ponto material no momento corrente e no passo anterior. Um objeto MaterialPoint im- plementa a interface java.lang.Cloneable, possuindo a propriedade de ser clonado de forma seletiva. Esta propriedade permite a c´opia de somente alguns atributos de um objeto MaterialPoint, atrav´es da implementa¸c˜ao do m´etodo clone().

A figura 5.14 mostra o diagrama de classe da interface ConstitutiveModel, res- pons´avel por montar as matrizes constitutivas e calcular as tens˜oes das degenera¸c˜oes e dos pontos materiais atrav´es de informa¸c˜oes de seus materiais e modelos de an´alise. Em sua hierarquia, est˜ao implementados alguns modelos constitutivos dispon´ıveis na literatura ou oriundos de recentes pesquisas. Um objeto do tipo Constitutive- Modelmonta tanto as matrizes constitutivas secantes e tangentes quanto o vetor de tens˜oes referentes `as vari´aveis de estado correntes. ´E importante ressaltar a impor- tˆancia da dependˆencia do modelo constitutivo quanto aos materiais e modelos de an´alise, pois sem essas informa¸c˜oes n˜ao ´e poss´ıvel obter as matrizes constitutivas.

Finalmente, a classe Degeneration (Figura 5.15) representa a degenera¸c˜ao na geometria do elemento. As degenera¸c˜oes s˜ao compostas por uma lista de pontos ma- teriais e s˜ao representadas por objetos do tipo Representation. O tipo mais simple de degenera¸c˜ao ´e a PrescribedDegeneration, em que as propriedades geom´etricas

br.ufmg.dees.insane.materialMedia.constitutiveModel

pkg br.ufmg.dees.insane.materialMedia.constitutiveModel pkg

MicroplaneConstModelLeukart

+ init(previous : HashMap<Object,Object>, cv : HashMap<Object,Object>, am : ContinuousPointModel, mat : Material) : void + init(previous : HashMap<Object,Object>, cv : HashMap<Object,Object>, am : AnalysisModel, mat : Material) : void

+ update(previous : HashMap<Object,Object>, cv : HashMap<Object,Object>) : void

+ mountDualInternalVariableVector(e : IVector, am : AnalysisModel, mat : Material, cv : HashMap<Object,Object>, previous : HashMap<Object,Object>) : IVector + mountCs(am : AnalysisModel, mat : Material, cv : HashMap<Object,Object>) : IMatrix

+ mountCt(am : AnalysisModel, mat : Material, cv : HashMap<Object,Object>) : IMatrix + mountC(am : AnalysisModel, mat : Material, cv : HashMap<Object,Object>) : IMatrix

ConstitutiveModel

VonMisesConstModel

OnePointConstModel ElastoPlasticConstModel LinearElasticConstModel MicroplaneConstModel PolarVonMisesConstModel

MicroplaneConstModelOzbolt

Figura 5.14: Diagrama de classe para ConstitutiveModel.

s˜ao prescritas pelo usu´ario.

br.ufmg.dees.insane.materialMedia.degeneration pkg br.ufmg.dees.insane.materialMedia.degeneration pkg MicroplaneDegenerationOzbolt Thickness MicroplaneDegenerationLeukart + getDegenerationValues() : HashMap<String,Double> + getGeometricProperties() : GeometricProperties + init() : void + update() : void

+ getMPDualInternalVariables(mplabel : String, mpintvar : IVector) : IVector + getMPInternalVariables(mplabel : String, dgintvar : IVector) : IVector + nonLinearInternalVariableOperatorModifier(b : IMatrix) : IMatrix

+ mountDualInternalVariableVector(v : IVector) : IVector + mountCs() : IMatrix + mountCt() : IMatrix + mountC() : IMatrix + getGeometricPoints() : ArrayList<IGeometricPoint> + getMaterial() : Material + getMaterialPoints() : ArrayList<MaterialPoint> + setRepresentation(representation : Representation) : void + getRepresentation() : Representation - label : String Degeneration - degenerationValues 1 - representation 0..1 - materialPoints * ArrayList<MaterialPoint> + update() : void + init() : void - weight : double Representation HashMap<String,Double>

Solid MicroplaneDegeneration CrossSection PrescribedDegeneration

Figura 5.15: Diagrama de classe para Degeneration.

Outro exemplo de Degeneration ´e a classe CrossSection que representa a de- genera¸c˜ao causada pela discretiza¸c˜ao em elementos finitos unidimensionais, na qual simplifica-se uma geometria tridimensional em apenas uma linha. Perdem-se as in- forma¸c˜oes sobre a se¸c˜ao transversal (as duas dimens˜oes que foram simplificadas), principalmente se ela for de geometria qualquer e composta. A classe CrossSec- tion cont´em uma lista de pontos materiais, fornecida pelo usu´ario, que descreve

de maneira aproximada a geometria e a composi¸c˜ao da se¸c˜ao, permitindo que o modelo constitutivo dessa degenera¸c˜ao seja aproximado pelo somat´orio da contri- bui¸c˜ao de cada um dos pontos. Para cada ponto de integra¸c˜ao do elemento h´a uma degenera¸c˜ao, o que permite aproximar o modelo constitutivo ao longo do elemento. Um objeto Representation, para representar uma degenera¸c˜ao, possui um mo- delo constitutivo, um modelo de an´alise e duas cole¸c˜oes do tipo HashMap que arma- zenam suas vari´aveis constitutivas atuais e pr´evias. Estes atributos dizem respeito `a degenera¸c˜ao como um todo, representando o comportamento do conjunto de pontos materiais da referida degenera¸c˜ao. A representa¸c˜ao cumpre ainda o papel de ponto de integra¸c˜ao, possuindo os atributos necess´arios `a integra¸c˜ao num´erica.

Quando solicitado por seu elemento, um objeto Degeneration monta, atrav´es de sua lista de pontos materiais e de sua representa¸c˜ao, tanto as suas matrizes constitutivas secante e tangente quanto o seu vetor de tens˜oes referente `as vari´aveis de estado correntes.

Benzer Belgeler