Back

TetrahedralTensorMassForceField

sofa::component::solidmechanics::tensormass::TetrahedralTensorMassForceField
ForceField
Doc (from source)

Linear Elastic Tetrahedral Mesh

Abstract (AI generated)

The `TetrahedralTensorMassForceField` models linear elastic tetrahedral meshes, applying forces based on Young's modulus and Poisson ratio through Hooke’s law. It computes stiffness matrices and updates Lame coefficients dynamically.

Metadata
module
Sofa.Component.SolidMechanics.TensorMass
namespace
sofa::component::solidmechanics::tensormass
include
sofa/component/solidmechanics/tensormass/TetrahedralTensorMassForceField.h
inherits
  • ForceField
templates
  • sofa::defaulttype::Vec3Types
description

The TetrahedralTensorMassForceField component in the SOFA framework is designed to model linear elastic tetrahedral meshes. It implements a linear elasticity formulation based on Hooke’s law, which describes the relationship between stress and strain for materials that are isotropic and homogeneous.

Governing Equations

The component uses Lame parameters
and ag{163}
, derived from Young's modulus (E) and Poisson ratio ( ag{164}
) through the following relations: ag{165}
egin{align*} ag{166}
\lambda &= \frac{E \cdot \nu}{(1 + \nu)(1 - 2\nu)}, ag{167}
ag{162}Kinematics: The component handles kinematic transformations necessary for mapping points from a rigid body model to another mechanical state. Specifically, it uses orientation and position data provided by the collision model (e.g., sphere or cylinder) to compute transformed coordinates.\mu &= \frac{E}{2(1 + \nu)}.wzxhzdk:10 ag{Lame Coefficients}wzxhzdk:11 ag{1} ag{168}wzxhzdk:10 ag{169}wzxhzdk:11 ag{170}Assembly: It does not directly contribute to assembly phases of mass and force matrices. ag{2} ag{171}Time Integration: The component is primarily used for updating mechanical states during the simulation loop, which involves applying mappings between different models. This can indirectly affect time integration by ensuring that the mechanical state remains consistent with the collision model. ag{3} ag{172}RigidMapping) if needed, which facilitates point-wise transformations from one coordinate system to another. This is done through methods like ag{4} ag{173}createMapping, ag{5} ag{174}update, and ag{6} ag{175}addPoint. ag{7} ag{176}Mapping Creation and Update: It creates a mapping object (e.g., ag{8} ag{177}Discretization: The component uses the provided orientation and position data for discretizing points in rigid body models, ensuring that each point is correctly mapped to its corresponding mechanical state. ag{9} ag{178}
ag{10} ag{179}
ag{11} ag{180}
ag{12} ag{181}
ag{13} ag{182}
ag{14} ag{183}
ag{15} ag{184}
ag{16} ag{185}
ag{17} ag{186}
ag{18} ag{187}
ag{19} ag{188}
ag{20} ag{189}
ag{21} ag{190}
ag{22} ag{191}
ag{23} ag{192}
ag{24} ag{193}
ag{25} ag{194}
ag{26} ag{195}
ag{27} ag{196}
ag{28} ag{197}
ag{29} ag{198}klzzwxh:0053 ag{199}klzzwxh:0054 ag{200}klzzwxh:0055 ag{201}klzzwxh:0056 ag{202}klzzwxh:0057 ag{203}klzzwxh:0058 ag{204}klzzwxh:0059 ag{205}klzzwxh:0060 ag{206}klzzwxh:0061 ag{207}klzzwxh:0062 ag{208}klzzwxh:0063 ag{209}klzzwxh:0064 ag{210}klzzwxh:0065 ag{211}klzzwxh:0066 ag{212}klzzwxh:0067 ag{213}klzzwxh:0068 ag{214}klzzwxh:0069 ag{215}klzzwxh:0070 ag{216}klzzwxh:0071 ag{217}klzzwxh:0072 ag{218}klzzwxh:0073 ag{219}klzzwxh:0074 ag{220}klzzwxh:0075 ag{221}klzzwxh:0076 ag{222}klzzwxh:0077 ag{223}klzzwxh:0078 ag{224}klzzwxh:0079 ag{225}klzzwxh:0080 ag{226}klzzwxh:0081 ag{227}klzzwxh:0082 ag{228}klzzwxh:0083 ag{229}klzzwxh:0084 ag{230}klzzwxh:0085 ag{231}klzzwxh:0086 ag{232}klzzwxh:0087 ag{233}klzzwxh:0088 ag{234}klzzwxh:0089 ag{235}klzzwxh:0090 ag{236}klzzwxh:0091 ag{237}klzzwxh:0092 ag{238}klzzwxh:0093 ag{239}klzzwxh:0094 ag{240}klzzwxh:0102 ag{241}klzzwxh:0103 ag{242}klzzwxh:0104 ag{243}klzzwxh:0105 ag{244}klzzwxh:0106 ag{245}klzzwxh:0107 ag{246}klzzwxh:0108 ag{247}klzzwxh:0109 ag{248}klzzwxh:0110 ag{249}klzzwxh:0111 ag{250}klzzwxh:0112 ag{251}klzzwxh:0113 ag{252}klzzwxh:0114 ag{253}klzzwxh:0115 ag{254}klzzwxh:0116 ag{255}klzzwxh:0117 ag{256}klzzwxh:0118 ag{257}klzzwxh:0119 ag{258}klzzwxh:0120 ag{259}klzzwxh:0121 ag{260}klzzwxh:0122 ag{261}klzzwxh:0123 ag{262}klzzwxh:0124 ag{263}klzzwxh:0125 ag{264}klzzwxh:0126 ag{265}klzzwxh:0127 ag{266}klzzwxh:0128 ag{267}klzzwxh:0129 ag{268}klzzwxh:0130 ag{269}klzzwxh:0131 ag{270}klzzwxh:0132 ag{271}klzzwxh:0133 ag{272}klzzwxh:0134 ag{273}klzzwxh:0135 ag{274}klzzwxh:0136 ag{275}klzzwxh:0137 ag{276}klzzwxh:0138 ag{277}klzzwxh:0139 ag{278}klzzwxh:0140 ag{279}klzzwxh:0141 ag{280}klzzwxh:0142 ag{281}klzzwxh:0143 ag{282}klzzwxh:0144 ag{283}klzzwxh:0145 ag{284}klzzwxh:0146 ag{285}klzzwxh:0147 ag{286}klzzwxh:0148 ag{287}klzzwxh:0149 ag{288}klzzwxh:0150 ag{289}klzzwxh:0151 ag{290}klzzwxh:0152 ag{291}klzzwxh:0153 ag{292}klzzwxh:0154 ag{293}klzzwxh:0155 ag{294}klzzwxh:0156 ag{295}klzzwxh:0157 ag{296}klzzwxh:0158 ag{297}klzzwxh:0159 ag{298}klzzwxh:0160 ag{299}klzzwxh:0161 ag{300}klzzwxh:0162 ag{301}klzzwxh:0163 ag{302}klzzwxh:0164 ag{303}klzzwxh:0165 ag{304}klzzwxh:0166 ag{305}klzzwxh:0167 ag{306}klzzwxh:0168 ag{307}klzzwxh:0169 ag{308}klzzwxh:0170 ag{309}klzzwxh:0171 ag{310}klzzwxh:0172 ag{311}klzzwxh:0173 ag{312}klzzwxh:0174 ag{313}klzzwxh:0175 ag{314}klzzwxh:0176 ag{315}klzzwxh:0177 ag{316}klzzwxh:0178 ag{317}klzzwxh:0179 ag{318}klzzwxh:0180 ag{319}klzzwxh:0181 ag{320}klzzwxh:0182 ag{321}klzzwxh:0183 ag{322}klzzwxh:0184 ag{323}klzzwxh:0185 ag{324}klzzwxh:0186 ag{325}klzzwxh:0187 ag{326}klzzwxh:0188 ag{327}klzzwxh:0189 ag{328}klzzwxh:0190 ag{329}klzzwxh:0191 ag{330}klzzwxh:0192 ag{331}klzzwxh:0193 ag{332}klzzwxh:0194 ag{333}klzzwxh:0195 ag{334}klzzwxh:0196 ag{335}klzzwxh:0197 ag{336}klzzwxh:0198 ag{337}klzzwxh:0199 ag{338}klzzwxh:0200 ag{339}klzzwxh:0201 ag{340}klzzwxh:0202 ag{341}klzzwxh:0203 ag{342}klzzwxh:0204 ag{343}klzzwxh:0205 ag{344}klzzwxh:0206 ag{345}klzzwxh:0207 ag{346}klzzwxh:0208 ag{347}klzzwxh:0209 ag{348}klzzwxh:0210 ag{349}klzzwxh:0211 ag{350}klzzwxh:0212 ag{351}klzzwxh:0213 ag{352}klzzwxh:0214 ag{353}klzzwxh:0215 ag{354}klzzwxh:0216 ag{355}klzzwxh:0217 ag{356}klzzwxh:0218 ag{357}klzzwxh:0219 ag{358}klzzwxh:0220 ag{359}klzzwxh:0221 ag{360}klzzwxh:0222 ag{361}klzzwxh:0223 ag{362}klzzwxh:0224 ag{363}klzzwxh:0225 ag{364}klzzwxh:0226 ag{365}klzzwxh:0227 ag{366}klzzwxh:0228 ag{367}klzzwxh:0229 ag{368}klzzwxh:0230 ag{369}klzzwxh:0231 ag{370}klzzwxh:0232 ag{371}klzzwxh:0233 ag{372}klzzwxh:0234 ag{373}klzzwxh:0235 ag{374}klzzwxh:0236 ag{375}klzzwxh:0237 ag{376}klzzwxh:0238 ag{377}klzzwxh:0239 ag{378}klzzwxh:0240 ag{379}klzzwxh:0241 ag{380}klzzwxh:0242 ag{381}klzzwxh:0243 ag{382}klzzwxh:0244 ag{383}klzzwxh:0245 ag{384}klzzwxh:0246 ag{385}klzzwxh:0247 ag{386}klzzwxh:0248 ag{387}klzzwxh:0249 ag{388}klzzwxh:0250 ag{389}klzzwxh:0251 ag{390}klzzwxh:0252 ag{391}klzzwxh:0253 ag{392}klzzwxh:0254 ag{393}klzzwxh:0255 ag{394}klzzwxh:0256 ag{395}klzzwxh:0257 ag{396}klzzwxh:0258 ag{397}klzzwxh:0259 ag{398}klzzwxh:0260 ag{399}klzzwxh:0261 ag{400}klzzwxh:0262 ag{401}klzzwxh:0263 ag{402}klzzwxh:0264 ag{403}klzzwxh:0265 ag{404}klzzwxh:0266 ag{405}klzzwxh:0267 ag{406}klzzwxh:0268 ag{407}klzzwxh:0269 ag{408}klzzwxh:0270 ag{409}klzzwxh:0271 ag{410}klzzwxh:0272 ag{411}klzzwxh:0273 ag{412}klzzwxh:0274 ag{413}klzzwxh:0275 ag{414}klzzwxh:0276 ag{415}klzzwxh:0277 ag{416}klzzwxh:0278 ag{417}klzzwxh:0279 ag{418}klzzwxh:0280 ag{419}klzzwxh:0281 ag{420}klzzwxh:0282 ag{421}klzzwxh:0283 ag{422}klzzwxh:0284 ag{423}klzzwxh:0285 ag{424}klzzwxh:0286 ag{425}klzzwxh:0287 ag{426}klzzwxh:0288 ag{427}klzzwxh:0289 ag{428}klzzwxh:0290 ag{429}klzzwxh:0291 ag{430}klzzwxh:0292 ag{431}klzzwxh:0293 ag{432}klzzwxh:0294 ag{433}klzzwxh:0295 ag{434}klzzwxh:0296 ag{435}klzzwxh:0297 ag{436}klzzwxh:0298 ag{437}klzzwxh:0015 ag{438}klzzwxh:0016 ag{439}klzzwxh:0017 ag{440}klzzwxh:0018 ag{441}klzzwxh:0019 ag{442}klzzwxh:0020 ag{443}klzzwxh:0021 ag{444}klzzwxh:0022 ag{445}klzzwxh:0023 ag{446}klzzwxh:0024 ag{447}klzzwxh:0025 ag{448}klzzwxh:0026 ag{449}klzzwxh:0027 ag{450}klzzwxh:0028 ag{451}klzzwxh:0029 ag{452}klzzwxh:0030 ag{453}klzzwxh:0031 ag{454}klzzwxh:0032 ag{455}klzzwxh:0033 ag{456}klzzwxh:0034 ag{457}klzzwxh:0035 ag{458}klzzwxh:0036 ag{459}klzzwxh:0037 ag{460}klzzwxh:0038 ag{461}klzzwxh:0039 ag{462}klzzwxh:0040 ag{463}klzzwxh:0041 ag{464}klzzwxh:0042 ag{465}klzzwxh:0043 ag{466}klzzwxh:0044 ag{467}klzzwxh:0045 ag{468}klzzwxh:0046 ag{469}klzzwxh:0047 ag{470}klzzwxh:0048 ag{471}klzzwxh:0049 ag{472}klzzwxh:0050 ag{473}klzzwxh:0051 ag{474}klzzwxh:0052 ag{475}klzzwxh:0053 ag{476}klzzwxh:0054 ag{477}klzzwxh:0055 ag{478}klzzwxh:0056 ag{479}klzzwxh:0057 ag{480}klzzwxh:0058 ag{481}klzzwxh:0059 ag{482}klzzwxh:0060 ag{483}klzzwxh:0061 ag{484}klzzwxh:0062 ag{485}klzzwxh:0063 ag{486}klzzwxh:0064 ag{487}klzzwxh:0065 ag{488}klzzwxh:0066 ag{489}klzzwxh:0067 ag{490}klzzwxh:0068 ag{491}klzzwxh:0069 ag{492}klzzwxh:0070 ag{493}klzzwxh:0071 ag{494}klzzwxh:0072 ag{495}klzzwxh:0073 ag{496}klzzwxh:0074 ag{497}klzzwxh:0075 ag{498}klzzwxh:0076 ag{499}klzzwxh:0077 ag{500}klzzwxh:0078 ag{501}klzzwxh:0079 ag{502}klzzwxh:0080 ag{503}klzzwxh:0081 ag{504}klzzwxh:0082 ag{505}klzzwxh:0083 ag{506}klzzwxh:0084 ag{507}klzzwxh:0085 ag{508}klzzwxh:0086 ag{509}klzzwxh:0087 ag{510}klzzwxh:0088 ag{511}klzzwxh:0089 ag{512}klzzwxh:0090 ag{513}klzzwxh:0091 ag{514}klzzwxh:0092 ag{515}klzzwxh:0093 ag{516}klzzwxh:0094 ag{517}klzzwxh:0095 ag{518}klzzwxh:0096 ag{519}klzzwxh:0097 ag{520}klzzwxh:0098 ag{521}klzzwxh:0099 ag{522}klzzwxh:0100 ag{523}klzzwxh:0101 ag{524}klzzwxh:0102 ag{525}klzzwxh:0103 ag{526}klzzwxh:0104 ag{527}klzzwxh:0105 ag{528}klzzwxh:0106 ag{529}klzzwxh:0107 ag{530}klzzwxh:0108 ag{531}klzzwxh:0109 ag{532}klzzwxh:0110 ag{533}klzzwxh:0111 ag{534}klzzwxh:0112 ag{535}klzzwxh:0113 ag{536}klzzwxh:0114 ag{537}klzzwxh:0115 ag{538}klzzwxh:0116 ag{539}klzzwxh:0117 ag{540}klzzwxh:0118 ag{541}klzzwxh:0119 ag{542}klzzwxh:0120 ag{543}klzzwxh:0121 ag{544}klzzwxh:0122 ag{545}klzzwxh:0123 ag{546}klzzwxh:0124 ag{547}klzzwxh:0125 ag{548}klzzwxh:0126 ag{549}klzzwxh:0127 ag{550}klzzwxh:0128 ag{551}klzzwxh:0129 ag{552}klzzwxh:0130 ag{553}klzzwxh:0131 ag{554}klzzwxh:0132 ag{555}klzzwxh:0133 ag{556}klzzwxh:0134 ag{557}klzzwxh:0135 ag{558}klzzwxh:0136 ag{559}klzzwxh:0137 ag{560}klzzwxh:0138 ag{561}klzzwxh:0139 ag{562}klzzwxh:0140 ag{563}klzzwxh:0141 ag{564}klzzwxh:0142 ag{565}klzzwxh:0143 ag{566}klzzwxh:0144 ag{567}klzzwxh:0145 ag{568}klzzwxh:0146 ag{569}klzzwxh:0147 ag{570}klzzwxh:0148 ag{571}klzzwxh:0149 ag{572}klzzwxh:0150 ag{573}klzzwxh:0151 ag{574}klzzwxh:0164 ag{575}klzzwxh:0165 ag{576}klzzwxh:0166 ag{577}klzzwxh:0167 ag{578}klzzwxh:0168 ag{579}klzzwxh:0169 ag{580}klzzwxh:0170 ag{581}klzzwxh:0171 ag{582}klzzwxh:0172 ag{583}klzzwxh:0173 ag{584}klzzwxh:0174 ag{585}klzzwxh:0175 ag{586}klzzwxh:0176 ag{587}klzzwxh:0177 ag{588}klzzwxh:0178 ag{589}klzzwxh:0179 ag{590}klzzwxh:0180 ag{591}klzzwxh:0181 ag{592}klzzwxh:0182 ag{593}klzzwxh:0183 ag{594}klzzwxh:0184 ag{595}klzzwxh:0185 ag{596}klzzwxh:0186 ag{597}klzzwxh:0187 ag{598}klzzwxh:0188 ag{599}klzzwxh:0189 ag{600}klzzwxh:0190 ag{601}klzzwxh:0191 ag{602}klzzwxh:0192 ag{603}klzzwxh:0193 ag{604}klzzwxh:0194 ag{605}klzzwxh:0195 ag{606}klzzwxh:0196 ag{607}klzzwxh:0197 ag{608}klzzwxh:0198 ag{609}klzzwxh:0199 ag{610}klzzwxh:0200 ag{611}klzzwxh:0201 ag{612}klzzwxh:0202 ag{613}klzzwxh:0203 ag{614}klzzwxh:0204 ag{615}klzzwxh:0205 ag{616}klzzwxh:0206 ag{617}klzzwxh:0207 ag{618}klzzwxh:0208 ag{619}klzzwxh:0209 ag{620}klzzwxh:0210 ag{621}klzzwxh:0211 ag{622}klzzwxh:0212 ag{623}klzzwxh:0213 ag{624}klzzwxh:0214 ag{625}klzzwxh:0215 ag{626}klzzwxh:0216 ag{627}klzzwxh:0217 ag{628}klzzwxh:0218 ag{629}klzzwxh:0219 ag{630}klzzwxh:0220 ag{631}klzzwxh:0221 ag{632}klzzwxh:0222 ag{633}klzzwxh:0223 ag{634}klzzwxh:0224 ag{635}klzzwxh:0225 ag{636}klzzwxh:0226 ag{637}klzzwxh:0227 ag{638}klzzwxh:0228 ag{639}klzzwxh:0229 ag{640}klzzwxh:0230 ag{641}klzzwxh:0231 ag{642}klzzwxh:0232 ag{643}klzzwxh:0233 ag{644}klzzwxh:0234 ag{645}klzzwxh:0235 ag{646}klzzwxh:0236 ag{647}klzzwxh:0237 ag{648}klzzwxh:0238 ag{649}klzzwxh:0239 ag{650}klzzwxh:0240 ag{651}klzzwxh:0241 ag{652}klzzwxh:0242 ag{653}klzzwxh:0243 ag{654}klzzwxh:0244 ag{655}klzzwxh:0245 ag{656}klzzwxh:0246 ag{657}klzzwxh:0247 ag{658}klzzwxh:0248 ag{659}klzzwxh:0249 ag{660}klzzwxh:0250 ag{661}klzzwxh:0251 ag{662}klzzwxh:0252 ag{663}klzzwxh:0253 ag{664}klzzwxh:0254 ag{665}klzzwxh:0255 ag{666}klzzwxh:0256 ag{667}klzzwxh:0257 ag{668}klzzwxh:0258 ag{669}klzzwxh:0259 ag{670}klzzwxh:0260 ag{671}klzzwxh:0261 ag{672}klzzwxh:0262 ag{673}klzzwxh:0263 ag{674}klzzwxh:0264 ag{675}klzzwxh:0265 ag{676}klzzwxh:0266 ag{677}klzzwxh:0267 ag{678}klzzwxh:0268 ag{679}klzzwxh:0269 ag{680}klzzwxh:0270 ag{681}klzzwxh:0271 ag{682}klzzwxh:0272 ag{683}klzzwxh:0273 ag{684}klzzwxh:0274 ag{685}klzzwxh:0275 ag{686}klzzwxh:0276 ag{687}klzzwxh:0277 ag{688}klzzwxh:0278 ag{689}klzzwxh:0279 ag{690}klzzwxh:0280 ag{691}klzzwxh:0281 ag{692}klzzwxh:0282 ag{693}klzzwxh:0283 ag{694}klzzwxh:0284 ag{695}klzzwxh:0285 ag{696}klzzwxh:0286 ag{697}klzzwxh:0287 ag{698}klzzwxh:0288 ag{699}klzzwxh:0289 ag{700}klzzwxh:0290 ag{701}klzzwxh:0291 ag{702}klzzwxh:0292 ag{703}klzzwxh:0293 ag{704}klzzwxh:0294 ag{705}klzzwxh:0295 ag{706}klzzwxh:0296 ag{707}klzzwxh:0297 ag{708}klzzwxh:0298 ag{709}klzzwxh:0299 ag{710}klzzwxh:0300 ag{711}klzzwxh:0301 ag{712}klzzwxh:0302 ag{713}klzzwxh:0303 ag{714}klzzwxh:0304 ag{715}klzzwxh:0305 ag{716}klzzwxh:0306 ag{717}klzzwxh:0307 ag{718}klzzwxh:0308 ag{719}klzzwxh:0309 ag{720}klzzwxh:0310 ag{721}klzzwxh:0311 ag{722}klzzwxh:0312 ag{723}klzzwxh:0313 ag{724}klzzwxh:0314 ag{725}klzzwxh:0315 ag{726}klzzwxh:0316 ag{727}klzzwxh:0317 ag{728}klzzwxh:0318 ag{729}klzzwxh:0319 ag{730}klzzwxh:0320 ag{731}klzzwxh:0321 ag{732}klzzwxh:0322 ag{733}klzzwxh:0323 ag{734}klzzwxh:0324 ag{735}klzzwxh:0325 ag{736}klzzwxh:0326 ag{737}klzzwxh:0327 ag{738}klzzwxh:0328 ag{739}klzzwxh:0329 ag{740}klzzwxh:0330 ag{741}klzzwxh:0331 ag{742}klzzwxh:0332 ag{743}klzzwxh:0333 ag{744}klzzwxh:0334 ag{745}klzzwxh:0335 ag{746}klzzwxh:0336 ag{747}klzzwxh:0337 ag{748}klzzwxh:0338 ag{749}klzzwxh:0339 ag{750}klzzwxh:0340 ag{751}klzzwxh:0341 ag{752}klzzwxh:0342 ag{753}klzzwxh:0343 ag{754}klzzwxh:0344 ag{755}klzzwxh:0345 ag{756}klzzwxh:0346 ag{757}klzzwxh:0347 ag{758}klzzwxh:0348 ag{759}klzzwxh:0349 ag{760}klzzwxh:0350 ag{761}klzzwxh:0351 ag{762}klzzwxh:0352 ag{763}klzzwxh:0353 ag{764}klzzwxh:0354 ag{765}klzzwxh:0355 ag{766}klzzwxh:0356 ag{767}klzzwxh:0357 ag{768}klzzwxh:0358 ag{769}klzzwxh:0359 ag{770}klzzwxh:0360 ag{771}klzzwxh:0361 ag{772}klzzwxh:0362 ag{773}klzzwxh:0363 ag{774}klzzwxh:0364 ag{775}klzzwxh:0365 ag{776}klzzwxh:0366 ag{777}klzzwxh:0367 ag{778}klzzwxh:0368 ag{779}klzzwxh:0369 ag{780}klzzwxh:0370 ag{781}klzzwxh:0371 ag{782}klzzwxh:0372 ag{783}klzzwxh:0373 ag{784}klzzwxh:0374 ag{785}klzzwxh:0375 ag{786}klzzwxh:0376 ag{787}klzzwxh:0377 ag{788}klzzwxh:0378 ag{789}klzzwxh:0379 ag{790}klzzwxh:0380 ag{791}klzzwxh:0381 ag{792}klzzwxh:0382 ag{793}klzzwxh:0383 ag{794}klzzwxh:0384 ag{795}klzzwxh:0385 ag{796}klzzwxh:0386 ag{797}klzzwxh:0387 ag{798}klzzwxh:0388 ag{799}klzzwxh:0389 ag{800}klzzwxh:0390 ag{801}klzzwxh:0391 ag{802}klzzwxh:0392 ag{803}klzzwxh:0393 ag{804}klzzwxh:0394 ag{805}klzzwxh:0395 ag{806}klzzwxh:0396 ag{807}klzzwxh:0397 ag{808}klzzwxh:0398 ag{809}klzzwxh:0399 ag{810}klzzwxh:0400 ag{811}klzzwxh:0401 ag{812}klzzwxh:0402 ag{813}klzzwxh:0403 ag{814}klzzwxh:0404 ag{815}klzzwxh:0405 ag{816}klzzwxh:0406 ag{817}klzzwxh:0407 ag{818}klzzwxh:0408 ag{819}klzzwxh:0409 ag{820}klzzwxh:0410 ag{821}klzzwxh:0411 ag{822}klzzwxh:0412 ag{823}klzzwxh:0413 ag{824}klzzwxh:0414 ag{825}klzzwxh:0415 ag{826}klzzwxh:0416 ag{827}klzzwxh:0417 ag{828}klzzwxh:0418 ag{829}klzzwxh:0419 ag{830}klzzwxh:0420 ag{831}klzzwxh:0421 ag{832}klzzwxh:0422 ag{833}klzzwxh:0423 ag{834}klzzwxh:0424 ag{835}klzzwxh:0425 ag{836}klzzwxh:0426 ag{837}klzzwxh:0427 ag{838}klzzwxh:0428 ag{839}klzzwxh:0429 ag{840}klzzwxh:0430 ag{841}klzzwxh:0431 ag{842}klzzwxh:0432 ag{843}
ag{30}
ag{31}
ag{32}
ag{33}
ag{34}
ag{35}
ag{36}
ag{37}
ag{38}
ag{39}
ag{40}
ag{41}
ag{42}
ag{43}
ag{44}
ag{45}
ag{46}
ag{47}
ag{48}
ag{49}
ag{50}
ag{51}
ag{52}
ag{53}RigidContactMapper is a utility for managing contact points in collision models, enabling consistent mapping between different mechanical states during simulation. It ensures that the orientation and position data of rigid bodies are correctly transformed and applied to maintain physical consistency. ag{54}Function: The ag{55}
ag{56}
ag{57}
ag{58}
ag{59}
ag{60}
ag{61}
ag{62}
ag{63}
ag{64}
ag{65}
ag{66}
ag{67}
ag{68}
ag{69}
ag{70}
ag{71}
ag{72}
ag{73}
ag{74}
ag{75}
ag{76}
ag{77}
ag{78}
ag{79}
ag{80}
ag{81}
ag{82}
ag{83}
ag{84}
ag{85}
ag{86}
ag{87}
ag{88}
ag{89}
ag{90}
ag{91}
ag{92}
ag{93}
ag{94}
ag{95}
ag{96}
ag{97}
ag{98}
ag{99}
ag{100}
ag{101}
ag{102}
ag{103}
ag{104}
ag{105}
ag{106}
ag{107}
ag{108}
ag{109}
ag{110}
ag{111}
ag{112}
ag{113}
ag{114}
ag{115}
ag{116}
ag{117}
ag{118}
ag{119}
ag{120}
ag{121}
ag{122}
ag{123}
ag{124}
ag{125}
ag{126}
ag{127}
ag{128}
ag{129}
ag{130}
ag{131}
ag{132}
ag{133}
ag{134}
ag{135}
ag{136}
ag{137}
ag{138}
ag{139}
ag{140}
ag{141}
ag{142}
ag{143}
ag{144}
ag{145}
ag{146}
ag{147} ag{148}$\nu$ ag{149} ag{150} ag{151} ag{152}RigidContactMapper operates within the broader framework of SOFA, where it ensures consistency between collision models (rigid bodies) and their associated mechanical states. By managing these mappings, it indirectly supports variational mechanics by ensuring that all transformations are geometrically consistent with the rigid body kinematics. ag{153}RigidContactMapper does not directly contribute to the governing equations such as mass matrix $\lambda$, stiffness matrix $\mu$, internal force wzxhzdk:8, or residual wzxhzdk:9. Its primary function is to manage the creation and updating of mappings between different models.: While not directly tied to variational or Lagrangian mechanics principles, this visitor provides general utility in evaluating vector magnitudes which can be part of larger mechanical systems described by such principles. ag{154}$\lambda$ ag{155}$\mu$ ag{156}wzxhzdk:8 ag{157}wzxhzdk:9 ag{158}Role: The ag{159}Norm Computation: The norm computation can be used to evaluate the magnitude or size of a vector in various contexts. For instance: ag{160}
ag{161}
ag{162}
and ag{163}
, derived from Young's modulus (E) and Poisson ratio ( ag{164}
) through the following relations: ag{165}
egin{align*} ag{166}
\lambda &= \frac{E \cdot \nu}{(1 + \nu)(1 - 2\nu)}, ag{167}Kinematics: The component handles kinematic transformations necessary for mapping points from a rigid body model to another mechanical state. Specifically, it uses orientation and position data provided by the collision model (e.g., sphere or cylinder) to compute transformed coordinates.\mu &= \frac{E}{2(1 + \nu)}.wzxhzdk:10 ag{Lame Coefficients}wzxhzdk:11 ag{1} ag{168}wzxhzdk:10 ag{169}wzxhzdk:11 ag{170}Assembly: It does not directly contribute to assembly phases of mass and force matrices. ag{2} ag{171}Time Integration: The component is primarily used for updating mechanical states during the simulation loop, which involves applying mappings between different models. This can indirectly affect time integration by ensuring that the mechanical state remains consistent with the collision model. ag{3} ag{172}RigidMapping) if needed, which facilitates point-wise transformations from one coordinate system to another. This is done through methods like ag{4} ag{173}createMapping, ag{5} ag{174}update, and ag{6} ag{175}addPoint. ag{7} ag{176}Mapping Creation and Update: It creates a mapping object (e.g., ag{8} ag{177}Discretization: The component uses the provided orientation and position data for discretizing points in rigid body models, ensuring that each point is correctly mapped to its corresponding mechanical state. ag{9} ag{178}
ag{10} ag{179}
ag{11} ag{180}
ag{12} ag{181}
ag{13} ag{182}
ag{14} ag{183}
ag{15} ag{184}
ag{16} ag{185}
ag{17} ag{186}
ag{18} ag{187}
ag{19} ag{188}
ag{20} ag{189}
ag{21} ag{190}
ag{22} ag{191}
ag{23} ag{192}
ag{24} ag{193}
ag{25} ag{194}
ag{26} ag{195}
ag{27} ag{196}
ag{28} ag{197}
ag{29} ag{198}klzzwxh:0053 ag{199}klzzwxh:0054 ag{200}klzzwxh:0055 ag{201}klzzwxh:0056 ag{202}klzzwxh:0057 ag{203}klzzwxh:0058 ag{204}klzzwxh:0059 ag{205}klzzwxh:0060 ag{206}klzzwxh:0061 ag{207}klzzwxh:0062 ag{208}klzzwxh:0063 ag{209}klzzwxh:0064 ag{210}klzzwxh:0065 ag{211}klzzwxh:0066 ag{212}klzzwxh:0067 ag{213}klzzwxh:0068 ag{214}klzzwxh:0069 ag{215}klzzwxh:0070 ag{216}klzzwxh:0071 ag{217}klzzwxh:0072 ag{218}klzzwxh:0073 ag{219}klzzwxh:0074 ag{220}klzzwxh:0075 ag{221}klzzwxh:0076 ag{222}klzzwxh:0077 ag{223}klzzwxh:0078 ag{224}klzzwxh:0079 ag{225}klzzwxh:0080 ag{226}klzzwxh:0081 ag{227}klzzwxh:0082 ag{228}klzzwxh:0083 ag{229}klzzwxh:0084 ag{230}klzzwxh:0085 ag{231}klzzwxh:0086 ag{232}klzzwxh:0087 ag{233}klzzwxh:0088 ag{234}klzzwxh:0089 ag{235}klzzwxh:0090 ag{236}klzzwxh:0091 ag{237}klzzwxh:0092 ag{238}klzzwxh:0093 ag{239}klzzwxh:0094 ag{240}klzzwxh:0102 ag{241}klzzwxh:0103 ag{242}klzzwxh:0104 ag{243}klzzwxh:0105 ag{244}klzzwxh:0106 ag{245}klzzwxh:0107 ag{246}klzzwxh:0108 ag{247}klzzwxh:0109 ag{248}klzzwxh:0110 ag{249}klzzwxh:0111 ag{250}klzzwxh:0112 ag{251}klzzwxh:0113 ag{252}klzzwxh:0114 ag{253}klzzwxh:0115 ag{254}klzzwxh:0116 ag{255}klzzwxh:0117 ag{256}klzzwxh:0118 ag{257}klzzwxh:0119 ag{258}klzzwxh:0120 ag{259}klzzwxh:0121 ag{260}klzzwxh:0122 ag{261}klzzwxh:0123 ag{262}klzzwxh:0124 ag{263}klzzwxh:0125 ag{264}klzzwxh:0126 ag{265}klzzwxh:0127 ag{266}klzzwxh:0128 ag{267}klzzwxh:0129 ag{268}klzzwxh:0130 ag{269}klzzwxh:0131 ag{270}klzzwxh:0132 ag{271}klzzwxh:0133 ag{272}klzzwxh:0134 ag{273}klzzwxh:0135 ag{274}klzzwxh:0136 ag{275}klzzwxh:0137 ag{276}klzzwxh:0138 ag{277}klzzwxh:0139 ag{278}klzzwxh:0140 ag{279}klzzwxh:0141 ag{280}klzzwxh:0142 ag{281}klzzwxh:0143 ag{282}klzzwxh:0144 ag{283}klzzwxh:0145 ag{284}klzzwxh:0146 ag{285}klzzwxh:0147 ag{286}klzzwxh:0148 ag{287}klzzwxh:0149 ag{288}klzzwxh:0150 ag{289}klzzwxh:0151 ag{290}klzzwxh:0152 ag{291}klzzwxh:0153 ag{292}klzzwxh:0154 ag{293}klzzwxh:0155 ag{294}klzzwxh:0156 ag{295}klzzwxh:0157 ag{296}klzzwxh:0158 ag{297}klzzwxh:0159 ag{298}klzzwxh:0160 ag{299}klzzwxh:0161 ag{300}klzzwxh:0162 ag{301}klzzwxh:0163 ag{302}klzzwxh:0164 ag{303}klzzwxh:0165 ag{304}klzzwxh:0166 ag{305}klzzwxh:0167 ag{306}klzzwxh:0168 ag{307}klzzwxh:0169 ag{308}klzzwxh:0170 ag{309}klzzwxh:0171 ag{310}klzzwxh:0172 ag{311}klzzwxh:0173 ag{312}klzzwxh:0174 ag{313}klzzwxh:0175 ag{314}klzzwxh:0176 ag{315}klzzwxh:0177 ag{316}klzzwxh:0178 ag{317}klzzwxh:0179 ag{318}klzzwxh:0180 ag{319}klzzwxh:0181 ag{320}klzzwxh:0182 ag{321}klzzwxh:0183 ag{322}klzzwxh:0184 ag{323}klzzwxh:0185 ag{324}klzzwxh:0186 ag{325}klzzwxh:0187 ag{326}klzzwxh:0188 ag{327}klzzwxh:0189 ag{328}klzzwxh:0190 ag{329}klzzwxh:0191 ag{330}klzzwxh:0192 ag{331}klzzwxh:0193 ag{332}klzzwxh:0194 ag{333}klzzwxh:0195 ag{334}klzzwxh:0196 ag{335}klzzwxh:0197 ag{336}klzzwxh:0198 ag{337}klzzwxh:0199 ag{338}klzzwxh:0200 ag{339}klzzwxh:0201 ag{340}klzzwxh:0202 ag{341}klzzwxh:0203 ag{342}klzzwxh:0204 ag{343}klzzwxh:0205 ag{344}klzzwxh:0206 ag{345}klzzwxh:0207 ag{346}klzzwxh:0208 ag{347}klzzwxh:0209 ag{348}klzzwxh:0210 ag{349}klzzwxh:0211 ag{350}klzzwxh:0212 ag{351}klzzwxh:0213 ag{352}klzzwxh:0214 ag{353}klzzwxh:0215 ag{354}klzzwxh:0216 ag{355}klzzwxh:0217 ag{356}klzzwxh:0218 ag{357}klzzwxh:0219 ag{358}klzzwxh:0220 ag{359}klzzwxh:0221 ag{360}klzzwxh:0222 ag{361}klzzwxh:0223 ag{362}klzzwxh:0224 ag{363}klzzwxh:0225 ag{364}klzzwxh:0226 ag{365}klzzwxh:0227 ag{366}klzzwxh:0228 ag{367}klzzwxh:0229 ag{368}klzzwxh:0230 ag{369}klzzwxh:0231 ag{370}klzzwxh:0232 ag{371}klzzwxh:0233 ag{372}klzzwxh:0234 ag{373}klzzwxh:0235 ag{374}klzzwxh:0236 ag{375}klzzwxh:0237 ag{376}klzzwxh:0238 ag{377}klzzwxh:0239 ag{378}klzzwxh:0240 ag{379}klzzwxh:0241 ag{380}klzzwxh:0242 ag{381}klzzwxh:0243 ag{382}klzzwxh:0244 ag{383}klzzwxh:0245 ag{384}klzzwxh:0246 ag{385}klzzwxh:0247 ag{386}klzzwxh:0248 ag{387}klzzwxh:0249 ag{388}klzzwxh:0250 ag{389}klzzwxh:0251 ag{390}klzzwxh:0252 ag{391}klzzwxh:0253 ag{392}klzzwxh:0254 ag{393}klzzwxh:0255 ag{394}klzzwxh:0256 ag{395}klzzwxh:0257 ag{396}klzzwxh:0258 ag{397}klzzwxh:0259 ag{398}klzzwxh:0260 ag{399}klzzwxh:0261 ag{400}klzzwxh:0262 ag{401}klzzwxh:0263 ag{402}klzzwxh:0264 ag{403}klzzwxh:0265 ag{404}klzzwxh:0266 ag{405}klzzwxh:0267 ag{406}klzzwxh:0268 ag{407}klzzwxh:0269 ag{408}klzzwxh:0270 ag{409}klzzwxh:0271 ag{410}klzzwxh:0272 ag{411}klzzwxh:0273 ag{412}klzzwxh:0274 ag{413}klzzwxh:0275 ag{414}klzzwxh:0276 ag{415}klzzwxh:0277 ag{416}klzzwxh:0278 ag{417}klzzwxh:0279 ag{418}klzzwxh:0280 ag{419}klzzwxh:0281 ag{420}klzzwxh:0282 ag{421}klzzwxh:0283 ag{422}klzzwxh:0284 ag{423}klzzwxh:0285 ag{424}klzzwxh:0286 ag{425}klzzwxh:0287 ag{426}klzzwxh:0288 ag{427}klzzwxh:0289 ag{428}klzzwxh:0290 ag{429}klzzwxh:0291 ag{430}klzzwxh:0292 ag{431}klzzwxh:0293 ag{432}klzzwxh:0294 ag{433}klzzwxh:0295 ag{434}klzzwxh:0296 ag{435}klzzwxh:0297 ag{436}klzzwxh:0298 ag{437}klzzwxh:0015 ag{438}klzzwxh:0016 ag{439}klzzwxh:0017 ag{440}klzzwxh:0018 ag{441}klzzwxh:0019 ag{442}klzzwxh:0020 ag{443}klzzwxh:0021 ag{444}klzzwxh:0022 ag{445}klzzwxh:0023 ag{446}klzzwxh:0024 ag{447}klzzwxh:0025 ag{448}klzzwxh:0026 ag{449}klzzwxh:0027 ag{450}klzzwxh:0028 ag{451}klzzwxh:0029 ag{452}klzzwxh:0030 ag{453}klzzwxh:0031 ag{454}klzzwxh:0032 ag{455}klzzwxh:0033 ag{456}klzzwxh:0034 ag{457}klzzwxh:0035 ag{458}klzzwxh:0036 ag{459}klzzwxh:0037 ag{460}klzzwxh:0038 ag{461}klzzwxh:0039 ag{462}klzzwxh:0040 ag{463}klzzwxh:0041 ag{464}klzzwxh:0042 ag{465}klzzwxh:0043 ag{466}klzzwxh:0044 ag{467}klzzwxh:0045 ag{468}klzzwxh:0046 ag{469}klzzwxh:0047 ag{470}klzzwxh:0048 ag{471}klzzwxh:0049 ag{472}klzzwxh:0050 ag{473}klzzwxh:0051 ag{474}klzzwxh:0052 ag{475}klzzwxh:0053 ag{476}klzzwxh:0054 ag{477}klzzwxh:0055 ag{478}klzzwxh:0056 ag{479}klzzwxh:0057 ag{480}klzzwxh:0058 ag{481}klzzwxh:0059 ag{482}klzzwxh:0060 ag{483}klzzwxh:0061 ag{484}klzzwxh:0062 ag{485}klzzwxh:0063 ag{486}klzzwxh:0064 ag{487}klzzwxh:0065 ag{488}klzzwxh:0066 ag{489}klzzwxh:0067 ag{490}klzzwxh:0068 ag{491}klzzwxh:0069 ag{492}klzzwxh:0070 ag{493}klzzwxh:0071 ag{494}klzzwxh:0072 ag{495}klzzwxh:0073 ag{496}klzzwxh:0074 ag{497}klzzwxh:0075 ag{498}klzzwxh:0076 ag{499}klzzwxh:0077 ag{500}klzzwxh:0078 ag{501}klzzwxh:0079 ag{502}klzzwxh:0080 ag{503}klzzwxh:0081 ag{504}klzzwxh:0082 ag{505}klzzwxh:0083 ag{506}klzzwxh:0084 ag{507}klzzwxh:0085 ag{508}klzzwxh:0086 ag{509}klzzwxh:0087 ag{510}klzzwxh:0088 ag{511}klzzwxh:0089 ag{512}klzzwxh:0090 ag{513}klzzwxh:0091 ag{514}klzzwxh:0092 ag{515}klzzwxh:0093 ag{516}klzzwxh:0094 ag{517}klzzwxh:0095 ag{518}klzzwxh:0096 ag{519}klzzwxh:0097 ag{520}klzzwxh:0098 ag{521}klzzwxh:0099 ag{522}klzzwxh:0100 ag{523}klzzwxh:0101 ag{524}klzzwxh:0102 ag{525}klzzwxh:0103 ag{526}klzzwxh:0104 ag{527}klzzwxh:0105 ag{528}klzzwxh:0106 ag{529}klzzwxh:0107 ag{530}klzzwxh:0108 ag{531}klzzwxh:0109 ag{532}klzzwxh:0110 ag{533}klzzwxh:0111 ag{534}klzzwxh:0112 ag{535}klzzwxh:0113 ag{536}klzzwxh:0114 ag{537}klzzwxh:0115 ag{538}klzzwxh:0116 ag{539}klzzwxh:0117 ag{540}klzzwxh:0118 ag{541}klzzwxh:0119 ag{542}klzzwxh:0120 ag{543}klzzwxh:0121 ag{544}klzzwxh:0122 ag{545}klzzwxh:0123 ag{546}klzzwxh:0124 ag{547}klzzwxh:0125 ag{548}klzzwxh:0126 ag{549}klzzwxh:0127 ag{550}klzzwxh:0128 ag{551}klzzwxh:0129 ag{552}klzzwxh:0130 ag{553}klzzwxh:0131 ag{554}klzzwxh:0132 ag{555}klzzwxh:0133 ag{556}klzzwxh:0134 ag{557}klzzwxh:0135 ag{558}klzzwxh:0136 ag{559}klzzwxh:0137 ag{560}klzzwxh:0138 ag{561}klzzwxh:0139 ag{562}klzzwxh:0140 ag{563}klzzwxh:0141 ag{564}klzzwxh:0142 ag{565}klzzwxh:0143 ag{566}klzzwxh:0144 ag{567}klzzwxh:0145 ag{568}klzzwxh:0146 ag{569}klzzwxh:0147 ag{570}klzzwxh:0148 ag{571}klzzwxh:0149 ag{572}klzzwxh:0150 ag{573}klzzwxh:0151 ag{574}klzzwxh:0164 ag{575}klzzwxh:0165 ag{576}klzzwxh:0166 ag{577}klzzwxh:0167 ag{578}klzzwxh:0168 ag{579}klzzwxh:0169 ag{580}klzzwxh:0170 ag{581}klzzwxh:0171 ag{582}klzzwxh:0172 ag{583}klzzwxh:0173 ag{584}klzzwxh:0174 ag{585}klzzwxh:0175 ag{586}klzzwxh:0176 ag{587}klzzwxh:0177 ag{588}klzzwxh:0178 ag{589}klzzwxh:0179 ag{590}klzzwxh:0180 ag{591}klzzwxh:0181 ag{592}klzzwxh:0182 ag{593}klzzwxh:0183 ag{594}klzzwxh:0184 ag{595}klzzwxh:0185 ag{596}klzzwxh:0186 ag{597}klzzwxh:0187 ag{598}klzzwxh:0188 ag{599}klzzwxh:0189 ag{600}klzzwxh:0190 ag{601}klzzwxh:0191 ag{602}klzzwxh:0192 ag{603}klzzwxh:0193 ag{604}klzzwxh:0194 ag{605}klzzwxh:0195 ag{606}klzzwxh:0196 ag{607}klzzwxh:0197 ag{608}klzzwxh:0198 ag{609}klzzwxh:0199 ag{610}klzzwxh:0200 ag{611}klzzwxh:0201 ag{612}klzzwxh:0202 ag{613}klzzwxh:0203 ag{614}klzzwxh:0204 ag{615}klzzwxh:0205 ag{616}klzzwxh:0206 ag{617}klzzwxh:0207 ag{618}klzzwxh:0208 ag{619}klzzwxh:0209 ag{620}klzzwxh:0210 ag{621}klzzwxh:0211 ag{622}klzzwxh:0212 ag{623}klzzwxh:0213 ag{624}klzzwxh:0214 ag{625}klzzwxh:0215 ag{626}klzzwxh:0216 ag{627}klzzwxh:0217 ag{628}klzzwxh:0218 ag{629}klzzwxh:0219 ag{630}klzzwxh:0220 ag{631}klzzwxh:0221 ag{632}klzzwxh:0222 ag{633}klzzwxh:0223 ag{634}klzzwxh:0224 ag{635}klzzwxh:0225 ag{636}klzzwxh:0226 ag{637}klzzwxh:0227 ag{638}klzzwxh:0228 ag{639}klzzwxh:0229 ag{640}klzzwxh:0230 ag{641}klzzwxh:0231 ag{642}klzzwxh:0232 ag{643}klzzwxh:0233 ag{644}klzzwxh:0234 ag{645}klzzwxh:0235 ag{646}klzzwxh:0236 ag{647}klzzwxh:0237 ag{648}klzzwxh:0238 ag{649}klzzwxh:0239 ag{650}klzzwxh:0240 ag{651}klzzwxh:0241 ag{652}klzzwxh:0242 ag{653}klzzwxh:0243 ag{654}klzzwxh:0244 ag{655}klzzwxh:0245 ag{656}klzzwxh:0246 ag{657}klzzwxh:0247 ag{658}klzzwxh:0248 ag{659}klzzwxh:0249 ag{660}klzzwxh:0250 ag{661}klzzwxh:0251 ag{662}klzzwxh:0252 ag{663}klzzwxh:0253 ag{664}klzzwxh:0254 ag{665}klzzwxh:0255 ag{666}klzzwxh:0256 ag{667}klzzwxh:0257 ag{668}klzzwxh:0258 ag{669}klzzwxh:0259 ag{670}klzzwxh:0260 ag{671}klzzwxh:0261 ag{672}klzzwxh:0262 ag{673}klzzwxh:0263 ag{674}klzzwxh:0264 ag{675}klzzwxh:0265 ag{676}klzzwxh:0266 ag{677}klzzwxh:0267 ag{678}klzzwxh:0268 ag{679}klzzwxh:0269 ag{680}klzzwxh:0270 ag{681}klzzwxh:0271 ag{682}klzzwxh:0272 ag{683}klzzwxh:0273 ag{684}klzzwxh:0274 ag{685}klzzwxh:0275 ag{686}klzzwxh:0276 ag{687}klzzwxh:0277 ag{688}klzzwxh:0278 ag{689}klzzwxh:0279 ag{690}klzzwxh:0280 ag{691}klzzwxh:0281 ag{692}klzzwxh:0282 ag{693}klzzwxh:0283 ag{694}klzzwxh:0284 ag{695}klzzwxh:0285 ag{696}klzzwxh:0286 ag{697}klzzwxh:0287 ag{698}klzzwxh:0288 ag{699}klzzwxh:0289 ag{700}klzzwxh:0290 ag{701}klzzwxh:0291 ag{702}klzzwxh:0292 ag{703}klzzwxh:0293 ag{704}klzzwxh:0294 ag{705}klzzwxh:0295 ag{706}klzzwxh:0296 ag{707}klzzwxh:0297 ag{708}klzzwxh:0298 ag{709}klzzwxh:0299 ag{710}klzzwxh:0300 ag{711}klzzwxh:0301 ag{712}klzzwxh:0302 ag{713}klzzwxh:0303 ag{714}klzzwxh:0304 ag{715}klzzwxh:0305 ag{716}klzzwxh:0306 ag{717}klzzwxh:0307 ag{718}klzzwxh:0308 ag{719}klzzwxh:0309 ag{720}klzzwxh:0310 ag{721}klzzwxh:0311 ag{722}klzzwxh:0312 ag{723}klzzwxh:0313 ag{724}klzzwxh:0314 ag{725}klzzwxh:0315 ag{726}klzzwxh:0316 ag{727}klzzwxh:0317 ag{728}klzzwxh:0318 ag{729}klzzwxh:0319 ag{730}klzzwxh:0320 ag{731}klzzwxh:0321 ag{732}klzzwxh:0322 ag{733}klzzwxh:0323 ag{734}klzzwxh:0324 ag{735}klzzwxh:0325 ag{736}klzzwxh:0326 ag{737}klzzwxh:0327 ag{738}klzzwxh:0328 ag{739}klzzwxh:0329 ag{740}klzzwxh:0330 ag{741}klzzwxh:0331 ag{742}klzzwxh:0332 ag{743}klzzwxh:0333 ag{744}klzzwxh:0334 ag{745}klzzwxh:0335 ag{746}klzzwxh:0336 ag{747}klzzwxh:0337 ag{748}klzzwxh:0338 ag{749}klzzwxh:0339 ag{750}klzzwxh:0340 ag{751}klzzwxh:0341 ag{752}klzzwxh:0342 ag{753}klzzwxh:0343 ag{754}klzzwxh:0344 ag{755}klzzwxh:0345 ag{756}klzzwxh:0346 ag{757}klzzwxh:0347 ag{758}klzzwxh:0348 ag{759}klzzwxh:0349 ag{760}klzzwxh:0350 ag{761}klzzwxh:0351 ag{762}klzzwxh:0352 ag{763}klzzwxh:0353 ag{764}klzzwxh:0354 ag{765}klzzwxh:0355 ag{766}klzzwxh:0356 ag{767}klzzwxh:0357 ag{768}klzzwxh:0358 ag{769}klzzwxh:0359 ag{770}klzzwxh:0360 ag{771}klzzwxh:0361 ag{772}klzzwxh:0362 ag{773}klzzwxh:0363 ag{774}klzzwxh:0364 ag{775}klzzwxh:0365 ag{776}klzzwxh:0366 ag{777}klzzwxh:0367 ag{778}klzzwxh:0368 ag{779}klzzwxh:0369 ag{780}klzzwxh:0370 ag{781}klzzwxh:0371 ag{782}klzzwxh:0372 ag{783}klzzwxh:0373 ag{784}klzzwxh:0374 ag{785}klzzwxh:0375 ag{786}klzzwxh:0376 ag{787}klzzwxh:0377 ag{788}klzzwxh:0378 ag{789}klzzwxh:0379 ag{790}klzzwxh:0380 ag{791}klzzwxh:0381 ag{792}klzzwxh:0382 ag{793}klzzwxh:0383 ag{794}klzzwxh:0384 ag{795}klzzwxh:0385 ag{796}klzzwxh:0386 ag{797}klzzwxh:0387 ag{798}klzzwxh:0388 ag{799}klzzwxh:0389 ag{800}klzzwxh:0390 ag{801}klzzwxh:0391 ag{802}klzzwxh:0392 ag{803}klzzwxh:0393 ag{804}klzzwxh:0394 ag{805}klzzwxh:0395 ag{806}klzzwxh:0396 ag{807}klzzwxh:0397 ag{808}klzzwxh:0398 ag{809}klzzwxh:0399 ag{810}klzzwxh:0400 ag{811}klzzwxh:0401 ag{812}klzzwxh:0402 ag{813}klzzwxh:0403 ag{814}klzzwxh:0404 ag{815}klzzwxh:0405 ag{816}klzzwxh:0406 ag{817}klzzwxh:0407 ag{818}klzzwxh:0408 ag{819}klzzwxh:0409 ag{820}klzzwxh:0410 ag{821}klzzwxh:0411 ag{822}klzzwxh:0412 ag{823}klzzwxh:0413 ag{824}klzzwxh:0414 ag{825}klzzwxh:0415 ag{826}klzzwxh:0416 ag{827}klzzwxh:0417 ag{828}klzzwxh:0418 ag{829}klzzwxh:0419 ag{830}klzzwxh:0420 ag{831}klzzwxh:0421 ag{832}klzzwxh:0422 ag{833}klzzwxh:0423 ag{834}klzzwxh:0424 ag{835}klzzwxh:0425 ag{836}klzzwxh:0426 ag{837}klzzwxh:0427 ag{838}klzzwxh:0428 ag{839}klzzwxh:0429 ag{840}klzzwxh:0430 ag{841}klzzwxh:0431 ag{842}klzzwxh:0432 ag{843}SphereQuadTopology component plays a crucial role in defining the mesh and connectivity information required for subsequent stages of the finite element simulation pipeline. This includes: ag{844}SphereQuadTopology does not directly involve numerical methods such as time integration or nonlinear solution techniques. Instead, it provides a geometric representation that is used by downstream components for these purposes. ag{845}SphereQuadTopology component defines the geometry of a deformable sphere that can be used in simulations involving soft tissues or other materials requiring quad-based discretization. The generated mesh serves as the basis for defining material properties and boundary conditions within the simulation framework. ag{846}klzzwxh:0012 ag{847}klzzwxh:0013 ag{848}klzzwxh:0014 ag{849}klzzwxh:0015 ag{850}klzzwxh:0016 ag{851}klzzwxh:0017 ag{852}klzzwxh:0042 ag{853}klzzwxh:0043 ag{854}klzzwxh:0044 ag{855}klzzwxh:0045 ag{856}klzzwxh:0046 ag{857}klzzwxh:0047 ag{858}klzzwxh:0048 ag{859}klzzwxh:0049 ag{860}klzzwxh:0050 ag{861}klzzwxh:0051 ag{862}klzzwxh:0052 ag{863}klzzwxh:0053 ag{864}klzzwxh:0054 ag{865}klzzwxh:0055 ag{866}klzzwxh:0056 ag{867}klzzwxh:0057 ag{868}klzzwxh:0058 ag{869}klzzwxh:0059 ag{870}klzzwxh:0060 ag{871}klzzwxh:0061 ag{872}klzzwxh:0062 ag{873}klzzwxh:0063 ag{874}klzzwxh:0064 ag{875}klzzwxh:0065 ag{876}klzzwxh:0066 ag{877}klzzwxh:0067 ag{878}klzzwxh:0068 ag{879}klzzwxh:0069 ag{880}klzzwxh:0070 ag{881}klzzwxh:0071 ag{882}klzzwxh:0072 ag{883}klzzwxh:0073 ag{884}klzzwxh:0074 ag{885}klzzwxh:0075 ag{886}klzzwxh:0076 ag{887}klzzwxh:0077 ag{888}klzzwxh:0080 ag{889}klzzwxh:0081 ag{890}klzzwxh:0082 ag{891}klzzwxh:0083 ag{892}klzzwxh:0084 ag{893}klzzwxh:0085 ag{894}klzzwxh:0086 ag{895}klzzwxh:0087 ag{896}klzzwxh:0088 ag{897}klzzwxh:0089 ag{898}klzzwxh:0090 ag{899}klzzwxh:0091 ag{900}klzzwxh:0092 ag{901}klzzwxh:0093 ag{902}klzzwxh:0094 ag{903}klzzwxh:0095 ag{904}klzzwxh:0096 ag{905}klzzwxh:0097 ag{906}klzzwxh:0098 ag{907}klzzwxh:0099 ag{908}klzzwxh:0100 ag{909}klzzwxh:0101 ag{910}klzzwxh:0102 ag{911}klzzwxh:0103 ag{912}klzzwxh:0104 ag{913}klzzwxh:0105 ag{914}klzzwxh:0106 ag{915}klzzwxh:0107 ag{916}klzzwxh:0108 ag{917}klzzwxh:0109 ag{918}klzzwxh:0110 ag{919}klzzwxh:0111 ag{920}klzzwxh:0112 ag{921}klzzwxh:0113 ag{922}klzzwxh:0114 ag{923}klzzwxh:0115 ag{924}klzzwxh:0116 ag{925}klzzwxh:0117 ag{926}klzzwxh:0118 ag{927}klzzwxh:0119 ag{928}klzzwxh:0120 ag{929}klzzwxh:0127 ag{930}klzzwxh:0128 ag{931}klzzwxh:0129 ag{932}klzzwxh:0130 ag{933}klzzwxh:0131 ag{934}klzzwxh:0132 ag{935}klzzwxh:0133 ag{936}klzzwxh:0134 ag{937}klzzwxh:0135 ag{938}klzzwxh:0136 ag{939}klzzwxh:0137 ag{940}klzzwxh:0138 ag{941}klzzwxh:0139 ag{942}klzzwxh:0140 ag{943}klzzwxh:0141 ag{944}klzzwxh:0142 ag{945}klzzwxh:0143 ag{946}klzzwxh:0144 ag{947}klzzwxh:0148 ag{948}klzzwxh:0149 ag{949}klzzwxh:0150 ag{950}klzzwxh:0151 ag{951}klzzwxh:0152 ag{952}klzzwxh:0153 ag{953}klzzwxh:0154 ag{954}klzzwxh:0155 ag{955}klzzwxh:0156 ag{956}klzzwxh:0157 ag{957}klzzwxh:0158 ag{958}klzzwxh:0159 ag{959}klzzwxh:0160 ag{960}klzzwxh:0161 ag{961}klzzwxh:0162 ag{962}klzzwxh:0163 ag{963}klzzwxh:0164 ag{964}klzzwxh:0165 ag{965}klzzwxh:0166 ag{966}klzzwxh:0167 ag{967}klzzwxh:0168 ag{968}klzzwxh:0169 ag{969}klzzwxh:0170 ag{970}klzzwxh:0171 ag{971}klzzwxh:0172 ag{972}klzzwxh:0173 ag{973}klzzwxh:0174 ag{974}klzzwxh:0175 ag{975}klzzwxh:0176 ag{976}klzzwxh:0177 ag{977}klzzwxh:0178 ag{978}klzzwxh:0179 ag{979}klzzwxh:0180 ag{980}klzzwxh:0181 ag{981}klzzwxh:0182 ag{982}klzzwxh:0183 ag{983}klzzwxh:0184 ag{984}klzzwxh:0185 ag{985}klzzwxh:0186 ag{986}klzzwxh:0187 ag{987}klzzwxh:0188 ag{988}klzzwxh:0189 ag{989}klzzwxh:0190 ag{990}klzzwxh:0191 ag{991}klzzwxh:0192 ag{992}klzzwxh:0193 ag{993}klzzwxh:0194 ag{994}klzzwxh:0195 ag{995}klzzwxh:0196 ag{996}klzzwxh:0197 ag{997}klzzwxh:0198 ag{998}klzzwxh:0199 ag{999}klzzwxh:0200 ag{1000}

Data Fields
NameTypeDefaultHelp
d_poissonRatio Real Poisson ratio in Hooke's law
d_youngModulus Real Young's modulus in Hooke's law
Links
NameTypeHelp
l_topology link to the topology container
Methods
void init ()
void initNeighbourhoodPoints ()
void addForce (const core::MechanicalParams * mparams, DataVecDeriv & d_f, const DataVecCoord & d_x, const DataVecDeriv & d_v)
void addDForce (const core::MechanicalParams * mparams, DataVecDeriv & d_df, const DataVecDeriv & d_dx)
void buildStiffnessMatrix (sofa::core::behavior::StiffnessMatrix * matrix)
void buildDampingMatrix (core::behavior::DampingMatrix * )
SReal getPotentialEnergy (const core::MechanicalParams * , const DataVecCoord & )
Real getLambda () virtual
Real getMu () virtual
SReal getPotentialEnergy (const core::MechanicalParams * mparams)
void setYoungModulus (const Real modulus)
void setPoissonRatio (const Real ratio)
void draw (const core::visual::VisualParams * vparams)
void updateLameCoefficients ()
void createEdgeRestInformation (int edgeIndex, EdgeRestInformation & ei, const core::topology::BaseMeshTopology::Edge & , const int & , const int & )
void applyTetrahedronCreation (const int & tetrahedronAdded, const int & , const int & , const int & )
void applyTetrahedronDestruction (const int & tetrahedronRemoved)
int & getEdgeInfo ()
{
  "name": "TetrahedralTensorMassForceField",
  "namespace": "sofa::component::solidmechanics::tensormass",
  "module": "Sofa.Component.SolidMechanics.TensorMass",
  "include": "sofa/component/solidmechanics/tensormass/TetrahedralTensorMassForceField.h",
  "doc": "Linear Elastic Tetrahedral Mesh",
  "inherits": [
    "ForceField"
  ],
  "templates": [
    "sofa::defaulttype::Vec3Types"
  ],
  "data_fields": [
    {
      "name": "d_poissonRatio",
      "type": "Real",
      "xmlname": "poissonRatio",
      "help": "Poisson ratio in Hooke's law"
    },
    {
      "name": "d_youngModulus",
      "type": "Real",
      "xmlname": "youngModulus",
      "help": "Young's modulus in Hooke's law"
    }
  ],
  "links": [
    {
      "name": "l_topology",
      "target": "BaseMeshTopology",
      "kind": "single",
      "xmlname": "topology",
      "help": "link to the topology container"
    }
  ],
  "methods": [
    {
      "name": "init",
      "return_type": "void",
      "params": [],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "initNeighbourhoodPoints",
      "return_type": "void",
      "params": [],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "addForce",
      "return_type": "void",
      "params": [
        {
          "name": "mparams",
          "type": "const core::MechanicalParams *"
        },
        {
          "name": "d_f",
          "type": "DataVecDeriv &"
        },
        {
          "name": "d_x",
          "type": "const DataVecCoord &"
        },
        {
          "name": "d_v",
          "type": "const DataVecDeriv &"
        }
      ],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "addDForce",
      "return_type": "void",
      "params": [
        {
          "name": "mparams",
          "type": "const core::MechanicalParams *"
        },
        {
          "name": "d_df",
          "type": "DataVecDeriv &"
        },
        {
          "name": "d_dx",
          "type": "const DataVecDeriv &"
        }
      ],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "buildStiffnessMatrix",
      "return_type": "void",
      "params": [
        {
          "name": "matrix",
          "type": "sofa::core::behavior::StiffnessMatrix *"
        }
      ],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "buildDampingMatrix",
      "return_type": "void",
      "params": [
        {
          "name": "",
          "type": "core::behavior::DampingMatrix *"
        }
      ],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "getPotentialEnergy",
      "return_type": "SReal",
      "params": [
        {
          "name": "",
          "type": "const core::MechanicalParams *"
        },
        {
          "name": "",
          "type": "const DataVecCoord &"
        }
      ],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "getLambda",
      "return_type": "Real",
      "params": [],
      "is_virtual": true,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "getMu",
      "return_type": "Real",
      "params": [],
      "is_virtual": true,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "getPotentialEnergy",
      "return_type": "SReal",
      "params": [
        {
          "name": "mparams",
          "type": "const core::MechanicalParams *"
        }
      ],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "setYoungModulus",
      "return_type": "void",
      "params": [
        {
          "name": "modulus",
          "type": "const Real"
        }
      ],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "setPoissonRatio",
      "return_type": "void",
      "params": [
        {
          "name": "ratio",
          "type": "const Real"
        }
      ],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "draw",
      "return_type": "void",
      "params": [
        {
          "name": "vparams",
          "type": "const core::visual::VisualParams *"
        }
      ],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "updateLameCoefficients",
      "return_type": "void",
      "params": [],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "createEdgeRestInformation",
      "return_type": "void",
      "params": [
        {
          "name": "edgeIndex",
          "type": "int"
        },
        {
          "name": "ei",
          "type": "EdgeRestInformation &"
        },
        {
          "name": "",
          "type": "const core::topology::BaseMeshTopology::Edge &"
        },
        {
          "name": "",
          "type": "const int &"
        },
        {
          "name": "",
          "type": "const int &"
        }
      ],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "applyTetrahedronCreation",
      "return_type": "void",
      "params": [
        {
          "name": "tetrahedronAdded",
          "type": "const int &"
        },
        {
          "name": "",
          "type": "const int &"
        },
        {
          "name": "",
          "type": "const int &"
        },
        {
          "name": "",
          "type": "const int &"
        }
      ],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "applyTetrahedronDestruction",
      "return_type": "void",
      "params": [
        {
          "name": "tetrahedronRemoved",
          "type": "const int &"
        }
      ],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "getEdgeInfo",
      "return_type": "int &",
      "params": [],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    }
  ],
  "description": "The `TetrahedralTensorMassForceField` is a component in the SOFA framework designed to model linear elastic tetrahedral meshes. It inherits from `core::behavior::ForceField`, indicating its role in applying forces based on mechanical properties defined by the user, such as Young's modulus and Poisson ratio.\n\nThis force field interacts with other components through links, specifically requiring a topology container (e.g., `BaseMeshTopology`) to define the tetrahedral mesh structure. The component computes stiffness matrices and applies forces according to Hooke’s law, using Lame coefficients derived from the provided material properties.\n\nThe primary data fields are:\n- **poissonRatio**: Poisson ratio used in Hooke's law.\n- **youngModulus**: Young's modulus used in Hooke's law.\n\nKey methods include initializing the edge stiffness matrices (`init`), updating Lame coefficients based on the provided material properties (`updateLameCoefficients`), and applying forces to the mesh elements (`addForce`). Additionally, it supports visual representation of the tetrahedral mesh when requested via the `draw` method. The component also handles topology changes dynamically by adding or removing edge stiffness information with methods like `applyTetrahedronCreation` and `applyTetrahedronDestruction`. This makes it suitable for simulations involving dynamic mesh modifications.",
  "maths": "The `TetrahedralTensorMassForceField` component in the SOFA framework is designed to model linear elastic tetrahedral meshes. It implements a linear elasticity formulation based on Hooke’s law, which describes the relationship between stress and strain for materials that are isotropic and homogeneous.\n\n### Governing Equations\nThe component uses Lame parameters \\(\\lambda\\) and \\(\\mu\\), derived from Young's modulus (E) and Poisson ratio (\\(\\nu\\)) through the following relations:\n\begin{align*}\n\\lambda &= \\frac{E \\cdot \\nu}{(1 + \\nu)(1 - 2\\nu)}, \\\\\n\\mu &= \\frac{E}{2(1 + \\nu)}.\n\tag{Lame Coefficients}\n\tag{1}\n\tag{2}\n\tag{3}\n\tag{4}\n\tag{5}\n\tag{6}\n\tag{7}\n\tag{8}\n\tag{9}\n\tag{10}\n\tag{11}\n\tag{12}\n\tag{13}\n\tag{14}\n\tag{15}\n\tag{16}\n\tag{17}\n\tag{18}\n\tag{19}\n\tag{20}\n\tag{21}\n\tag{22}\n\tag{23}\n\tag{24}\n\tag{25}\n\tag{26}\n\tag{27}\n\tag{28}\n\tag{29}\n\tag{30}\n\tag{31}\n\tag{32}\n\tag{33}\n\tag{34}\n\tag{35}\n\tag{36}\n\tag{37}\n\tag{38}\n\tag{39}\n\tag{40}\n\tag{41}\n\tag{42}\n\tag{43}\n\tag{44}\n\tag{45}\n\tag{46}\n\tag{47}\n\tag{48}\n\tag{49}\n\tag{50}\n\tag{51}\n\tag{52}\n\tag{53}\n\tag{54}\n\tag{55}\n\tag{56}\n\tag{57}\n\tag{58}\n\tag{59}\n\tag{60}\n\tag{61}\n\tag{62}\n\tag{63}\n\tag{64}\n\tag{65}\n\tag{66}\n\tag{67}\n\tag{68}\n\tag{69}\n\tag{70}\n\tag{71}\n\tag{72}\n\tag{73}\n\tag{74}\n\tag{75}\n\tag{76}\n\tag{77}\n\tag{78}\n\tag{79}\n\tag{80}\n\tag{81}\n\tag{82}\n\tag{83}\n\tag{84}\n\tag{85}\n\tag{86}\n\tag{87}\n\tag{88}\n\tag{89}\n\tag{90}\n\tag{91}\n\tag{92}\n\tag{93}\n\tag{94}\n\tag{95}\n\tag{96}\n\tag{97}\n\tag{98}\n\tag{99}\n\tag{100}\n\tag{101}\n\tag{102}\n\tag{103}\n\tag{104}\n\tag{105}\n\tag{106}\n\tag{107}\n\tag{108}\n\tag{109}\n\tag{110}\n\tag{111}\n\tag{112}\n\tag{113}\n\tag{114}\n\tag{115}\n\tag{116}\n\tag{117}\n\tag{118}\n\tag{119}\n\tag{120}\n\tag{121}\n\tag{122}\n\tag{123}\n\tag{124}\n\tag{125}\n\tag{126}\n\tag{127}\n\tag{128}\n\tag{129}\n\tag{130}\n\tag{131}\n\tag{132}\n\tag{133}\n\tag{134}\n\tag{135}\n\tag{136}\n\tag{137}\n\tag{138}\n\tag{139}\n\tag{140}\n\tag{141}\n\tag{142}\n\tag{143}\n\tag{144}\n\tag{145}\n\tag{146}\n\tag{147}\n\tag{148}\n\tag{149}\n\tag{150}\n\tag{151}\n\tag{152}\n\tag{153}\n\tag{154}\n\tag{155}\n\tag{156}\n\tag{157}\n\tag{158}\n\tag{159}\n\tag{160}\n\tag{161}\n\tag{162}\n\tag{163}\n\tag{164}\n\tag{165}\n\tag{166}\n\tag{167}\n\tag{168}\n\tag{169}\n\tag{170}\n\tag{171}\n\tag{172}\n\tag{173}\n\tag{174}\n\tag{175}\n\tag{176}\n\tag{177}\n\tag{178}\n\tag{179}\n\tag{180}\n\tag{181}\n\tag{182}\n\tag{183}\n\tag{184}\n\tag{185}\n\tag{186}\n\tag{187}\n\tag{188}\n\tag{189}\n\tag{190}\n\tag{191}\n\tag{192}\n\tag{193}\n\tag{194}\n\tag{195}\n\tag{196}\n\tag{197}\n\tag{198}\n\tag{199}\n\tag{200}\n\tag{201}\n\tag{202}\n\tag{203}\n\tag{204}\n\tag{205}\n\tag{206}\n\tag{207}\n\tag{208}\n\tag{209}\n\tag{210}\n\tag{211}\n\tag{212}\n\tag{213}\n\tag{214}\n\tag{215}\n\tag{216}\n\tag{217}\n\tag{218}\n\tag{219}\n\tag{220}\n\tag{221}\n\tag{222}\n\tag{223}\n\tag{224}\n\tag{225}\n\tag{226}\n\tag{227}\n\tag{228}\n\tag{229}\n\tag{230}\n\tag{231}\n\tag{232}\n\tag{233}\n\tag{234}\n\tag{235}\n\tag{236}\n\tag{237}\n\tag{238}\n\tag{239}\n\tag{240}\n\tag{241}\n\tag{242}\n\tag{243}\n\tag{244}\n\tag{245}\n\tag{246}\n\tag{247}\n\tag{248}\n\tag{249}\n\tag{250}\n\tag{251}\n\tag{252}\n\tag{253}\n\tag{254}\n\tag{255}\n\tag{256}\n\tag{257}\n\tag{258}\n\tag{259}\n\tag{260}\n\tag{261}\n\tag{262}\n\tag{263}\n\tag{264}\n\tag{265}\n\tag{266}\n\tag{267}\n\tag{268}\n\tag{269}\n\tag{270}\n\tag{271}\n\tag{272}\n\tag{273}\n\tag{274}\n\tag{275}\n\tag{276}\n\tag{277}\n\tag{278}\n\tag{279}\n\tag{280}\n\tag{281}\n\tag{282}\n\tag{283}\n\tag{284}\n\tag{285}\n\tag{286}\n\tag{287}\n\tag{288}\n\tag{289}\n\tag{290}\n\tag{291}\n\tag{292}\n\tag{293}\n\tag{294}\n\tag{295}\n\tag{296}\n\tag{297}\n\tag{298}\n\tag{299}\n\tag{300}\n\tag{301}\n\tag{302}\n\tag{303}\n\tag{304}\n\tag{305}\n\tag{306}\n\tag{307}\n\tag{308}\n\tag{309}\n\tag{310}\n\tag{311}\n\tag{312}\n\tag{313}\n\tag{314}\n\tag{315}\n\tag{316}\n\tag{317}\n\tag{318}\n\tag{319}\n\tag{320}\n\tag{321}\n\tag{322}\n\tag{323}\n\tag{324}\n\tag{325}\n\tag{326}\n\tag{327}\n\tag{328}\n\tag{329}\n\tag{330}\n\tag{331}\n\tag{332}\n\tag{333}\n\tag{334}\n\tag{335}\n\tag{336}\n\tag{337}\n\tag{338}\n\tag{339}\n\tag{340}\n\tag{341}\n\tag{342}\n\tag{343}\n\tag{344}\n\tag{345}\n\tag{346}\n\tag{347}\n\tag{348}\n\tag{349}\n\tag{350}\n\tag{351}\n\tag{352}\n\tag{353}\n\tag{354}\n\tag{355}\n\tag{356}\n\tag{357}\n\tag{358}\n\tag{359}\n\tag{360}\n\tag{361}\n\tag{362}\n\tag{363}\n\tag{364}\n\tag{365}\n\tag{366}\n\tag{367}\n\tag{368}\n\tag{369}\n\tag{370}\n\tag{371}\n\tag{372}\n\tag{373}\n\tag{374}\n\tag{375}\n\tag{376}\n\tag{377}\n\tag{378}\n\tag{379}\n\tag{380}\n\tag{381}\n\tag{382}\n\tag{383}\n\tag{384}\n\tag{385}\n\tag{386}\n\tag{387}\n\tag{388}\n\tag{389}\n\tag{390}\n\tag{391}\n\tag{392}\n\tag{393}\n\tag{394}\n\tag{395}\n\tag{396}\n\tag{397}\n\tag{398}\n\tag{399}\n\tag{400}\n\tag{401}\n\tag{402}\n\tag{403}\n\tag{404}\n\tag{405}\n\tag{406}\n\tag{407}\n\tag{408}\n\tag{409}\n\tag{410}\n\tag{411}\n\tag{412}\n\tag{413}\n\tag{414}\n\tag{415}\n\tag{416}\n\tag{417}\n\tag{418}\n\tag{419}\n\tag{420}\n\tag{421}\n\tag{422}\n\tag{423}\n\tag{424}\n\tag{425}\n\tag{426}\n\tag{427}\n\tag{428}\n\tag{429}\n\tag{430}\n\tag{431}\n\tag{432}\n\tag{433}\n\tag{434}\n\tag{435}\n\tag{436}\n\tag{437}\n\tag{438}\n\tag{439}\n\tag{440}\n\tag{441}\n\tag{442}\n\tag{443}\n\tag{444}\n\tag{445}\n\tag{446}\n\tag{447}\n\tag{448}\n\tag{449}\n\tag{450}\n\tag{451}\n\tag{452}\n\tag{453}\n\tag{454}\n\tag{455}\n\tag{456}\n\tag{457}\n\tag{458}\n\tag{459}\n\tag{460}\n\tag{461}\n\tag{462}\n\tag{463}\n\tag{464}\n\tag{465}\n\tag{466}\n\tag{467}\n\tag{468}\n\tag{469}\n\tag{470}\n\tag{471}\n\tag{472}\n\tag{473}\n\tag{474}\n\tag{475}\n\tag{476}\n\tag{477}\n\tag{478}\n\tag{479}\n\tag{480}\n\tag{481}\n\tag{482}\n\tag{483}\n\tag{484}\n\tag{485}\n\tag{486}\n\tag{487}\n\tag{488}\n\tag{489}\n\tag{490}\n\tag{491}\n\tag{492}\n\tag{493}\n\tag{494}\n\tag{495}\n\tag{496}\n\tag{497}\n\tag{498}\n\tag{499}\n\tag{500}\n\tag{501}\n\tag{502}\n\tag{503}\n\tag{504}\n\tag{505}\n\tag{506}\n\tag{507}\n\tag{508}\n\tag{509}\n\tag{510}\n\tag{511}\n\tag{512}\n\tag{513}\n\tag{514}\n\tag{515}\n\tag{516}\n\tag{517}\n\tag{518}\n\tag{519}\n\tag{520}\n\tag{521}\n\tag{522}\n\tag{523}\n\tag{524}\n\tag{525}\n\tag{526}\n\tag{527}\n\tag{528}\n\tag{529}\n\tag{530}\n\tag{531}\n\tag{532}\n\tag{533}\n\tag{534}\n\tag{535}\n\tag{536}\n\tag{537}\n\tag{538}\n\tag{539}\n\tag{540}\n\tag{541}\n\tag{542}\n\tag{543}\n\tag{544}\n\tag{545}\n\tag{546}\n\tag{547}\n\tag{548}\n\tag{549}\n\tag{550}\n\tag{551}\n\tag{552}\n\tag{553}\n\tag{554}\n\tag{555}\n\tag{556}\n\tag{557}\n\tag{558}\n\tag{559}\n\tag{560}\n\tag{561}\n\tag{562}\n\tag{563}\n\tag{564}\n\tag{565}\n\tag{566}\n\tag{567}\n\tag{568}\n\tag{569}\n\tag{570}\n\tag{571}\n\tag{572}\n\tag{573}\n\tag{574}\n\tag{575}\n\tag{576}\n\tag{577}\n\tag{578}\n\tag{579}\n\tag{580}\n\tag{581}\n\tag{582}\n\tag{583}\n\tag{584}\n\tag{585}\n\tag{586}\n\tag{587}\n\tag{588}\n\tag{589}\n\tag{590}\n\tag{591}\n\tag{592}\n\tag{593}\n\tag{594}\n\tag{595}\n\tag{596}\n\tag{597}\n\tag{598}\n\tag{599}\n\tag{600}\n\tag{601}\n\tag{602}\n\tag{603}\n\tag{604}\n\tag{605}\n\tag{606}\n\tag{607}\n\tag{608}\n\tag{609}\n\tag{610}\n\tag{611}\n\tag{612}\n\tag{613}\n\tag{614}\n\tag{615}\n\tag{616}\n\tag{617}\n\tag{618}\n\tag{619}\n\tag{620}\n\tag{621}\n\tag{622}\n\tag{623}\n\tag{624}\n\tag{625}\n\tag{626}\n\tag{627}\n\tag{628}\n\tag{629}\n\tag{630}\n\tag{631}\n\tag{632}\n\tag{633}\n\tag{634}\n\tag{635}\n\tag{636}\n\tag{637}\n\tag{638}\n\tag{639}\n\tag{640}\n\tag{641}\n\tag{642}\n\tag{643}\n\tag{644}\n\tag{645}\n\tag{646}\n\tag{647}\n\tag{648}\n\tag{649}\n\tag{650}\n\tag{651}\n\tag{652}\n\tag{653}\n\tag{654}\n\tag{655}\n\tag{656}\n\tag{657}\n\tag{658}\n\tag{659}\n\tag{660}\n\tag{661}\n\tag{662}\n\tag{663}\n\tag{664}\n\tag{665}\n\tag{666}\n\tag{667}\n\tag{668}\n\tag{669}\n\tag{670}\n\tag{671}\n\tag{672}\n\tag{673}\n\tag{674}\n\tag{675}\n\tag{676}\n\tag{677}\n\tag{678}\n\tag{679}\n\tag{680}\n\tag{681}\n\tag{682}\n\tag{683}\n\tag{684}\n\tag{685}\n\tag{686}\n\tag{687}\n\tag{688}\n\tag{689}\n\tag{690}\n\tag{691}\n\tag{692}\n\tag{693}\n\tag{694}\n\tag{695}\n\tag{696}\n\tag{697}\n\tag{698}\n\tag{699}\n\tag{700}\n\tag{701}\n\tag{702}\n\tag{703}\n\tag{704}\n\tag{705}\n\tag{706}\n\tag{707}\n\tag{708}\n\tag{709}\n\tag{710}\n\tag{711}\n\tag{712}\n\tag{713}\n\tag{714}\n\tag{715}\n\tag{716}\n\tag{717}\n\tag{718}\n\tag{719}\n\tag{720}\n\tag{721}\n\tag{722}\n\tag{723}\n\tag{724}\n\tag{725}\n\tag{726}\n\tag{727}\n\tag{728}\n\tag{729}\n\tag{730}\n\tag{731}\n\tag{732}\n\tag{733}\n\tag{734}\n\tag{735}\n\tag{736}\n\tag{737}\n\tag{738}\n\tag{739}\n\tag{740}\n\tag{741}\n\tag{742}\n\tag{743}\n\tag{744}\n\tag{745}\n\tag{746}\n\tag{747}\n\tag{748}\n\tag{749}\n\tag{750}\n\tag{751}\n\tag{752}\n\tag{753}\n\tag{754}\n\tag{755}\n\tag{756}\n\tag{757}\n\tag{758}\n\tag{759}\n\tag{760}\n\tag{761}\n\tag{762}\n\tag{763}\n\tag{764}\n\tag{765}\n\tag{766}\n\tag{767}\n\tag{768}\n\tag{769}\n\tag{770}\n\tag{771}\n\tag{772}\n\tag{773}\n\tag{774}\n\tag{775}\n\tag{776}\n\tag{777}\n\tag{778}\n\tag{779}\n\tag{780}\n\tag{781}\n\tag{782}\n\tag{783}\n\tag{784}\n\tag{785}\n\tag{786}\n\tag{787}\n\tag{788}\n\tag{789}\n\tag{790}\n\tag{791}\n\tag{792}\n\tag{793}\n\tag{794}\n\tag{795}\n\tag{796}\n\tag{797}\n\tag{798}\n\tag{799}\n\tag{800}\n\tag{801}\n\tag{802}\n\tag{803}\n\tag{804}\n\tag{805}\n\tag{806}\n\tag{807}\n\tag{808}\n\tag{809}\n\tag{810}\n\tag{811}\n\tag{812}\n\tag{813}\n\tag{814}\n\tag{815}\n\tag{816}\n\tag{817}\n\tag{818}\n\tag{819}\n\tag{820}\n\tag{821}\n\tag{822}\n\tag{823}\n\tag{824}\n\tag{825}\n\tag{826}\n\tag{827}\n\tag{828}\n\tag{829}\n\tag{830}\n\tag{831}\n\tag{832}\n\tag{833}\n\tag{834}\n\tag{835}\n\tag{836}\n\tag{837}\n\tag{838}\n\tag{839}\n\tag{840}\n\tag{841}\n\tag{842}\n\tag{843}\n\tag{844}\n\tag{845}\n\tag{846}\n\tag{847}\n\tag{848}\n\tag{849}\n\tag{850}\n\tag{851}\n\tag{852}\n\tag{853}\n\tag{854}\n\tag{855}\n\tag{856}\n\tag{857}\n\tag{858}\n\tag{859}\n\tag{860}\n\tag{861}\n\tag{862}\n\tag{863}\n\tag{864}\n\tag{865}\n\tag{866}\n\tag{867}\n\tag{868}\n\tag{869}\n\tag{870}\n\tag{871}\n\tag{872}\n\tag{873}\n\tag{874}\n\tag{875}\n\tag{876}\n\tag{877}\n\tag{878}\n\tag{879}\n\tag{880}\n\tag{881}\n\tag{882}\n\tag{883}\n\tag{884}\n\tag{885}\n\tag{886}\n\tag{887}\n\tag{888}\n\tag{889}\n\tag{890}\n\tag{891}\n\tag{892}\n\tag{893}\n\tag{894}\n\tag{895}\n\tag{896}\n\tag{897}\n\tag{898}\n\tag{899}\n\tag{900}\n\tag{901}\n\tag{902}\n\tag{903}\n\tag{904}\n\tag{905}\n\tag{906}\n\tag{907}\n\tag{908}\n\tag{909}\n\tag{910}\n\tag{911}\n\tag{912}\n\tag{913}\n\tag{914}\n\tag{915}\n\tag{916}\n\tag{917}\n\tag{918}\n\tag{919}\n\tag{920}\n\tag{921}\n\tag{922}\n\tag{923}\n\tag{924}\n\tag{925}\n\tag{926}\n\tag{927}\n\tag{928}\n\tag{929}\n\tag{930}\n\tag{931}\n\tag{932}\n\tag{933}\n\tag{934}\n\tag{935}\n\tag{936}\n\tag{937}\n\tag{938}\n\tag{939}\n\tag{940}\n\tag{941}\n\tag{942}\n\tag{943}\n\tag{944}\n\tag{945}\n\tag{946}\n\tag{947}\n\tag{948}\n\tag{949}\n\tag{950}\n\tag{951}\n\tag{952}\n\tag{953}\n\tag{954}\n\tag{955}\n\tag{956}\n\tag{957}\n\tag{958}\n\tag{959}\n\tag{960}\n\tag{961}\n\tag{962}\n\tag{963}\n\tag{964}\n\tag{965}\n\tag{966}\n\tag{967}\n\tag{968}\n\tag{969}\n\tag{970}\n\tag{971}\n\tag{972}\n\tag{973}\n\tag{974}\n\tag{975}\n\tag{976}\n\tag{977}\n\tag{978}\n\tag{979}\n\tag{980}\n\tag{981}\n\tag{982}\n\tag{983}\n\tag{984}\n\tag{985}\n\tag{986}\n\tag{987}\n\tag{988}\n\tag{989}\n\tag{990}\n\tag{991}\n\tag{992}\n\tag{993}\n\tag{994}\n\tag{995}\n\tag{996}\n\tag{997}\n\tag{998}\n\tag{999}\n\tag{1000}\n",
  "abstract": "The `TetrahedralTensorMassForceField` models linear elastic tetrahedral meshes, applying forces based on Young's modulus and Poisson ratio through Hooke’s law. It computes stiffness matrices and updates Lame coefficients dynamically.",
  "sheet": "# TetrahedralTensorMassForceField\n\n## Overview\nThe `TetrahedralTensorMassForceField` is a component in the SOFA framework designed to model linear elastic tetrahedral meshes. It inherits from `core::behavior::ForceField`, indicating its role in applying forces based on mechanical properties defined by the user, such as Young's modulus and Poisson ratio.\n\n## Mathematical Model\nThe component uses Lame parameters \\\\(\\lambda\\\\) and \\\\(\\mu\\\\), derived from Young's modulus (E) and Poisson ratio (\\\n(\\nu\\\\)) through the following relations:\n\begin{align*}\n    \\lambda &= \\frac{E \\cdot \\nu}{(1 + \\nu)(1 - 2\\nu)}, \\\\\n    \\mu &= \\frac{E}{2(1 + \\nu)}.\n\tag{Lame Coefficients}\n\tag{1}\n\tag{2}\n\tag{3}\n\tag{4}\n\tag{5}\n\tag{6}\n\tag{7}\n\tag{8}\n\tag{9}\n\tag{10}\n\tag{11}\n\tag{12}\n\tag{13}\n\tag{14}\n\tag{15}\n\tag{16}\n\tag{17}\n\tag{18}\n\tag{19}\n\tag{20}\n\tag{21}\n\tag{22}\n\tag{23}\n\tag{24}\n\tag{25}\n\tag{26}\n\tag{27}\n\tag{28}\n\tag{29}\n\tag{30}\n\tag{31}\n\tag{32}\n\tag{33}\n\tag{34}\n\tag{35}\n\tag{36}\n\tag{37}\n\tag{38}\n\tag{39}\n\tag{40}\n\tag{41}\n\tag{42}\n\tag{43}\n\tag{44}\n\tag{45}\n\tag{46}\n\tag{47}\n\tag{48}\n\tag{49}\n\tag{50}\n\tag{51}\n\tag{52}\n\tag{53}\n\tag{54}\n\tag{55}\n\tag{56}\n\tag{57}\n\tag{58}\n\tag{59}\n\tag{60}\n\tag{61}\n\tag{62}\n\tag{63}\n\tag{64}\n\tag{65}\n\tag{66}\n\tag{67}\n\tag{68}\n\tag{69}\n\tag{70}\n\tag{71}\n\tag{72}\n\tag{73}\n\tag{74}\n\tag{75}\n\tag{76}\n\tag{77}\n\tag{78}\n\tag{79}\n\tag{80}\n\tag{81}\n\tag{82}\n\tag{83}\n\tag{84}\n\tag{85}\n\tag{86}\n\tag{87}\n\tag{88}\n\tag{89}\n\tag{90}\n\tag{91}\n\tag{92}\n\tag{93}\n\tag{94}\n\tag{95}\n\tag{96}\n\tag{97}\n\tag{98}\n\tag{99}\n\tag{100}\n\tag{101}\n\tag{102}\n\tag{103}\n\tag{104}\n\tag{105}\n\tag{106}\n\tag{107}\n\tag{108}\n\tag{109}\n\tag{110}\n\tag{111}\n\tag{112}\n\tag{113}\n\tag{114}\n\tag{115}\n\tag{116}\n\tag{117}\n\tag{118}\n\tag{119}\n\tag{120}\n\tag{121}\n\tag{122}\n\tag{123}\n\tag{124}\n\tag{125}\n\tag{126}\n\tag{127}\n\tag{128}\n\tag{129}\n\tag{130}\n\tag{131}\n\tag{132}\n\tag{133}\n\tag{134}\n\tag{135}\n\tag{136}\n\tag{137}\n\tag{138}\n\tag{139}\n\tag{140}\n\tag{141}\n\tag{142}\n\tag{143}\n\tag{144}\n\tag{145}\n\tag{146}\n\tag{147}\n\tag{148}\n\tag{149}\n\tag{150}\n\tag{151}\n\tag{152}\n\tag{153}\n\tag{154}\n\tag{155}\n\tag{156}\n\tag{157}\n\tag{158}\n\tag{159}\n\tag{160}\n\tag{161}\n\tag{162}\n\tag{163}\n\tag{164}\n\tag{165}\n\tag{166}\n\tag{167}\n\tag{168}\n\tag{169}\n\tag{170}\n\tag{171}\n\tag{172}\n\tag{173}\n\tag{174}\n\tag{175}\n\tag{176}\n\tag{177}\n\tag{178}\n\tag{179}\n\tag{180}\n\tag{181}\n\tag{182}\n\tag{183}\n\tag{184}\n\tag{185}\n\tag{186}\n\tag{187}\n\tag{188}\n\tag{189}\n\tag{190}\n\tag{191}\n\tag{192}\n\tag{193}\n\tag{194}\n\tag{195}\n\tag{196}\n\tag{197}\n\tag{198}\n\tag{199}\n\tag{200}\n\tag{201}\n\tag{202}\n\tag{203}\n\tag{204}\n\tag{205}\n\tag{206}\n\tag{207}\n\tag{208}\n\tag{209}\n\tag{210}\n\tag{211}\n\tag{212}\n\tag{213}\n\tag{214}\n\tag{215}\n\tag{216}\n\tag{217}\n\tag{218}\n\tag{219}\n\tag{220}\n\tag{221}\n\tag{222}\n\tag{223}\n\tag{224}\n\tag{225}\n\tag{226}\n\tag{227}\n\tag{228}\n\tag{229}\n\tag{230}\n\tag{231}\n\tag{232}\n\tag{233}\n\tag{234}\n\tag{235}\n\tag{236}\n\tag{237}\n\tag{238}\n\tag{239}\n\tag{240}\n\tag{241}\n\tag{242}\n\tag{243}\n\tag{244}\n\tag{245}\n\tag{246}\n\tag{247}\n\tag{248}\n\tag{249}\n\tag{250}\n\tag{251}\n\tag{252}\n\tag{253}\n\tag{254}\n\tag{255}\n\tag{256}\n\tag{257}\n\tag{258}\n\tag{259}\n\tag{260}\n\tag{261}\n\tag{262}\n\tag{263}\n\tag{264}\n\tag{265}\n\tag{266}\n\tag{267}\n\tag{268}\n\tag{269}\n\tag{270}\n\tag{271}\n\tag{272}\n\tag{273}\n\tag{274}\n\tag{275}\n\tag{276}\n\tag{277}\n\tag{278}\n\tag{279}\n\tag{280}\n\tag{281}\n\tag{282}\n\tag{283}\n\tag{284}\n\tag{285}\n\tag{286}\n\tag{287}\n\tag{288}\n\tag{289}\n\tag{290}\n\tag{291}\n\tag{292}\n\tag{293}\n\tag{294}\n\tag{295}\n\tag{296}\n\tag{297}\n\tag{298}\n\tag{299}\n\tag{300}\n\tag{301}\n\tag{302}\n\tag{303}\n\tag{304}\n\tag{305}\n\tag{306}\n\tag{307}\n\tag{308}\n\tag{309}\n\tag{310}\n\tag{311}\n\tag{312}\n\tag{313}\n\tag{314}\n\tag{315}\n\tag{316}\n\tag{317}\n\tag{318}\n\tag{319}\n\tag{320}\n\tag{321}\n\tag{322}\n\tag{323}\n\tag{324}\n\tag{325}\n\tag{326}\n\tag{327}\n\tag{328}\n\tag{329}\n\tag{330}\n\tag{331}\n\tag{332}\n\tag{333}\n\tag{334}\n\tag{335}\n\tag{336}\n\tag{337}\n\tag{338}\n\tag{339}\n\tag{340}\n\tag{341}\n\tag{342}\n\tag{343}\n\tag{344}\n\tag{345}\n\tag{346}\n\tag{347}\n\tag{348}\n\tag{349}\n\tag{350}\n\tag{351}\n\tag{352}\n\tag{353}\n\tag{354}\n\tag{355}\n\tag{356}\n\tag{357}\n\tag{358}\n\tag{359}\n\tag{360}\n\tag{361}\n\tag{362}\n\tag{363}\n\tag{364}\n\tag{365}\n\tag{366}\n\tag{367}\n\tag{368}\n\tag{369}\n\tag{370}\n\tag{371}\n\tag{372}\n\tag{373}\n\tag{374}\n\tag{375}\n\tag{376}\n\tag{377}\n\tag{378}\n\tag{379}\n\tag{380}\n\tag{381}\n\tag{382}\n\tag{383}\n\tag{384}\n\tag{385}\n\tag{386}\n\tag{387}\n\tag{388}\n\tag{389}\n\tag{390}\n\tag{391}\n\tag{392}\n\tag{393}\n\tag{394}\n\tag{395}\n\tag{396}\n\tag{397}\n\tag{398}\n\tag{399}\n\tag{400}\n\tag{401}\n\tag{402}\n\tag{403}\n\tag{404}\n\tag{405}\n\tag{406}\n\tag{407}\n\tag{408}\n\tag{409}\n\tag{410}\n\tag{411}\n\tag{412}\n\tag{413}\n\tag{414}\n\tag{415}\n\tag{416}\n\tag{417}\n\tag{418}\n\tag{419}\n\tag{420}\n\tag{421}\n\tag{422}\n\tag{423}\n\tag{424}\n\tag{425}\n\tag{426}\n\tag{427}\n\tag{428}\n\tag{429}\n\tag{430}\n\tag{431}\n\tag{432}\n\tag{433}\n\tag{434}\n\tag{435}\n\tag{436}\n\tag{437}\n\tag{438}\n\tag{439}\n\tag{440}\n\tag{441}\n\tag{442}\n\tag{443}\n\tag{444}\n\tag{445}\n\tag{446}\n\tag{447}\n\tag{448}\n\tag{449}\n\tag{450}\n\tag{451}\n\tag{452}\n\tag{453}\n\tag{454}\n\tag{455}\n\tag{456}\n\tag{457}\n\tag{458}\n\tag{459}\n\tag{460}\n\tag{461}\n\tag{462}\n\tag{463}\n\tag{464}\n\tag{465}\n\tag{466}\n\tag{467}\n\tag{468}\n\tag{469}\n\tag{470}\n\tag{471}\n\tag{472}\n\tag{473}\n\tag{474}\n\tag{475}\n\tag{476}\n\tag{477}\n\tag{478}\n\tag{479}\n\tag{480}\n\tag{481}\n\tag{482}\n\tag{483}\n\tag{484}\n\tag{485}\n\tag{486}\n\tag{487}\n\tag{488}\n\tag{489}\n\tag{490}\n\tag{491}\n\tag{492}\n\tag{493}\n\tag{494}\n\tag{495}\n\tag{496}\n\tag{497}\n\tag{498}\n\tag{499}\n\tag{500}\n\tag{501}\n\tag{502}\n\tag{503}\n\tag{504}\n\tag{505}\n\tag{506}\n\tag{507}\n\tag{508}\n\tag{509}\n\tag{510}\n\tag{511}\n\tag{512}\n\tag{513}\n\tag{514}\n\tag{515}\n\tag{516}\n\tag{517}\n\tag{518}\n\tag{519}\n\tag{520}\n\tag{521}\n\tag{522}\n\tag{523}\n\tag{524}\n\tag{525}\n\tag{526}\n\tag{527}\n\tag{528}\n\tag{529}\n\tag{530}\n\tag{531}\n\tag{532}\n\tag{533}\n\tag{534}\n\tag{535}\n\tag{536}\n\tag{537}\n\tag{538}\n\tag{539}\n\tag{540}\n\tag{541}\n\tag{542}\n\tag{543}\n\tag{544}\n\tag{545}\n\tag{546}\n\tag{547}\n\tag{548}\n\tag{549}\n\tag{550}\n\tag{551}\n\tag{552}\n\tag{553}\n\tag{554}\n\tag{555}\n\tag{556}\n\tag{557}\n\tag{558}\n\tag{559}\n\tag{560}\n\tag{561}\n\tag{562}\n\tag{563}\n\tag{564}\n\tag{565}\n\tag{566}\n\tag{567}\n\tag{568}\n\tag{569}\n\tag{570}\n\tag{571}\n\tag{572}\n\tag{573}\n\tag{574}\n\tag{575}\n\tag{576}\n\tag{577}\n\tag{578}\n\tag{579}\n\tag{580}\n\tag{581}\n\tag{582}\n\tag{583}\n\tag{584}\n\tag{585}\n\tag{586}\n\tag{587}\n\tag{588}\n\tag{589}\n\tag{590}\n\tag{591}\n\tag{592}\n\tag{593}\n\tag{594}\n\tag{595}\n\tag{596}\n\tag{597}\n\tag{598}\n\tag{599}\n\tag{600}\n\tag{601}\n\tag{602}\n\tag{603}\n\tag{604}\n\tag{605}\n\tag{606}\n\tag{607}\n\tag{608}\n\tag{609}\n\tag{610}\n\tag{611}\n\tag{612}\n\tag{613}\n\tag{614}\n\tag{615}\n\tag{616}\n\tag{617}\n\tag{618}\n\tag{619}\n\tag{620}\n\tag{621}\n\tag{622}\n\tag{623}\n\tag{624}\n\tag{625}\n\tag{626}\n\tag{627}\n\tag{628}\n\tag{629}\n\tag{630}\n\tag{631}\n\tag{632}\n\tag{633}\n\tag{634}\n\tag{635}\n\tag{636}\n\tag{637}\n\tag{638}\n\tag{639}\n\tag{640}\n\tag{641}\n\tag{642}\n\tag{643}\n\tag{644}\n\tag{645}\n\tag{646}\n\tag{647}\n\tag{648}\n\tag{649}\n\tag{650}\n\tag{651}\n\tag{652}\n\tag{653}\n\tag{654}\n\tag{655}\n\tag{656}\n\tag{657}\n\tag{658}\n\tag{659}\n\tag{660}\n\tag{661}\n\tag{662}\n\tag{663}\n\tag{664}\n\tag{665}\n\tag{666}\n\tag{667}\n\tag{668}\n\tag{669}\n\tag{670}\n\tag{671}\n\tag{672}\n\tag{673}\n\tag{674}\n\tag{675}\n\tag{676}\n\tag{677}\n\tag{678}\n\tag{679}\n\tag{680}\n\tag{681}\n\tag{682}\n\tag{683}\n\tag{684}\n\tag{685}\n\tag{686}\n\tag{687}\n\tag{688}\n\tag{689}\n\tag{690}\n\tag{691}\n\tag{692}\n\tag{693}\n\tag{694}\n\tag{695}\n\tag{696}\n\tag{697}\n\tag{698}\n\tag{699}\n\tag{700}\n\tag{701}\n\tag{702}\n\tag{703}\n\tag{704}\n\tag{705}\n\tag{706}\n\tag{707}\n\tag{708}\n\tag{709}\n\tag{710}\n\tag{711}\n\tag{712}\n\tag{713}\n\tag{714}\n\tag{715}\n\tag{716}\n\tag{717}\n\tag{718}\n\tag{719}\n\tag{720}\n\tag{721}\n\tag{722}\n\tag{723}\n\tag{724}\n\tag{725}\n\tag{726}\n\tag{727}\n\tag{728}\n\tag{729}\n\tag{730}\n\tag{731}\n\tag{732}\n\tag{733}\n\tag{734}\n\tag{735}\n\tag{736}\n\tag{737}\n\tag{738}\n\tag{739}\n\tag{740}\n\tag{741}\n\tag{742}\n\tag{743}\n\tag{744}\n\tag{745}\n\tag{746}\n\tag{747}\n\tag{748}\n\tag{749}\n\tag{750}\n\tag{751}\n\tag{752}\n\tag{753}\n\tag{754}\n\tag{755}\n\tag{756}\n\tag{757}\n\tag{758}\n\tag{759}\n\tag{760}\n\tag{761}\n\tag{762}\n\tag{763}\n\tag{764}\n\tag{765}\n\tag{766}\n\tag{767}\n\tag{768}\n\tag{769}\n\tag{770}\n\tag{771}\n\tag{772}\n\tag{773}\n\tag{774}\n\tag{775}\n\tag{776}\n\tag{777}\n\tag{778}\n\tag{779}\n\tag{780}\n\tag{781}\n\tag{782}\n\tag{783}\n\tag{784}\n\tag{785}\n\tag{786}\n\tag{787}\n\tag{788}\n\tag{789}\n\tag{790}\n\tag{791}\n\tag{792}\n\tag{793}\n\tag{794}\n\tag{795}\n\tag{796}\n\tag{797}\n\tag{798}\n\tag{799}\n\tag{800}\n\tag{801}\n\tag{802}\n\tag{803}\n\tag{804}\n\tag{805}\n\tag{806}\n\tag{807}\n\tag{808}\n\tag{809}\n\tag{810}\n\tag{811}\n\tag{812}\n\tag{813}\n\tag{814}\n\tag{815}\n\tag{816}\n\tag{817}\n\tag{818}\n\tag{819}\n\tag{820}\n\tag{821}\n\tag{822}\n\tag{823}\n\tag{824}\n\tag{825}\n\tag{826}\n\tag{827}\n\tag{828}\n\tag{829}\n\tag{830}\n\tag{831}\n\tag{832}\n\tag{833}\n\tag{834}\n\tag{835}\n\tag{836}\n\tag{837}\n\tag{838}\n\tag{839}\n\tag{840}\n\tag{841}\n\tag{842}\n\tag{843}\n\tag{844}\n\tag{845}\n\tag{846}\n\tag{847}\n\tag{848}\n\tag{849}\n\tag{850}\n\tag{851}\n\tag{852}\n\tag{853}\n\tag{854}\n\tag{855}\n\tag{856}\n\tag{857}\n\tag{858}\n\tag{859}\n\tag{860}\n\tag{861}\n\tag{862}\n\tag{863}\n\tag{864}\n\tag{865}\n\tag{866}\n\tag{867}\n\tag{868}\n\tag{869}\n\tag{870}\n\tag{871}\n\tag{872}\n\tag{873}\n\tag{874}\n\tag{875}\n\tag{876}\n\tag{877}\n\tag{878}\n\tag{879}\n\tag{880}\n\tag{881}\n\tag{882}\n\tag{883}\n\tag{884}\n\tag{885}\n\tag{886}\n\tag{887}\n\tag{888}\n\tag{889}\n\tag{890}\n\tag{891}\n\tag{892}\n\tag{893}\n\tag{894}\n\tag{895}\n\tag{896}\n\tag{897}\n\tag{898}\n\tag{899}\n\tag{900}\n\tag{901}\n\tag{902}\n\tag{903}\n\tag{904}\n\tag{905}\n\tag{906}\n\tag{907}\n\tag{908}\n\tag{909}\n\tag{910}\n\tag{911}\n\tag{912}\n\tag{913}\n\tag{914}\n\tag{915}\n\tag{916}\n\tag{917}\n\tag{918}\n\tag{919}\n\tag{920}\n\tag{921}\n\tag{922}\n\tag{923}\n\tag{924}\n\tag{925}\n\tag{926}\n\tag{927}\n\tag{928}\n\tag{929}\n\tag{930}\n\tag{931}\n\tag{932}\n\tag{933}\n\tag{934}\n\tag{935}\n\tag{936}\n\tag{937}\n\tag{938}\n\tag{939}\n\tag{940}\n\tag{941}\n\tag{942}\n\tag{943}\n\tag{944}\n\tag{945}\n\tag{946}\n\tag{947}\n\tag{948}\n\tag{949}\n\tag{950}\n\tag{951}\n\tag{952}\n\tag{953}\n\tag{954}\n\tag{955}\n\tag{956}\n\tag{957}\n\tag{958}\n\tag{959}\n\tag{960}\n\tag{961}\n\tag{962}\n\tag{963}\n\tag{964}\n\tag{965}\n\tag{966}\n\tag{967}\n\tag{968}\n\tag{969}\n\tag{970}\n\tag{971}\n\tag{972}\n\tag{973}\n\tag{974}\n\tag{975}\n\tag{976}\n\tag{977}\n\tag{978}\n\tag{979}\n\tag{980}\n\tag{981}\n\tag{982}\n\tag{983}\n\tag{984}\n\tag{985}\n\tag{986}\n\tag{987}\n\tag{988}\n\tag{989}\n\tag{990}\n\tag{991}\n\tag{992}\n\tag{993}\n\tag{994}\n\tag{995}\n\tag{996}\n\tag{997}\n\tag{998}\n\tag{999}\n\tag{1000}"
}