Transcription

COMSOL MultiphysicsProgramming Reference Manual

COMSOL Multiphysics Programming Reference Manual 1998–2018 COMSOLProtected by patents listed on www.comsol.com/patents, and U.S. Patents 7,519,518; 7,596,474;7,623,991; 8,457,932; 8,954,302; 9,098,106; 9,146,652; 9,323,503; 9,372,673; and 9,454,625. Patentspending.This Documentation and the Programs described herein are furnished under the COMSOL Software LicenseAgreement (www.comsol.com/comsol-license-agreement) and may be used or copied only under the termsof the license agreement.COMSOL, the COMSOL logo, COMSOL Multiphysics, COMSOL Desktop, COMSOL Server, andLiveLink are either registered trademarks or trademarks of COMSOL AB. All other trademarks are theproperty of their respective owners, and COMSOL AB and its subsidiaries and products are not affiliatedwith, endorsed by, sponsored by, or supported by those trademark owners. For a list of such trademarkowners, see www.comsol.com/trademarks.Version: COMSOL 5.4Contact InformationVisit the Contact COMSOL page at www.comsol.com/contact to submit generalinquiries, contact Technical Support, or search for an address and phone number. You canalso visit the Worldwide Sales Offices page at www.comsol.com/contact/offices foraddress and contact information.If you need to contact Support, an online request form is located at the COMSOL Accesspage at www.comsol.com/support/case. Other useful links include: Support Center: www.comsol.com/support Product Download: www.comsol.com/product-download Product Updates: www.comsol.com/support/updates COMSOL Blog: www.comsol.com/blogs Discussion Forum: www.comsol.com/community Events: www.comsol.com/events COMSOL Video Gallery: www.comsol.com/video Support Knowledge Base: www.comsol.com/support/knowledgebasePart number: CM020007

C o n t e n t sChapter 1: IntroductionAbout the COMSOL API16Where Do I Find More Information? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Getting Started18The Model Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Compiling a Model File for Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18The Model File for Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Running a Compiled Model File for Java from the Desktop . . . . . . . . . . . . . . . . . . . . . . 20Running a Compiled Model File as a Batch Job from the Desktop. . . . . . . . . . . . . . . . . . . 20Running a Compiled Model File with the COMSOL Batch Command . . . . . . . . . . . . . . . . . . 20Getting the COMSOL Installation Path from the Windows Registry . . . . . . . . . . . . . . . . . . 20 Setting up Eclipse for Compiling and Running a Java File . . . . . . . . . . . . . . . . . . . . . . 20Chapter 2: General CommandsAbout General Commands24Overview of General-Purpose Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24get* and Selection Access Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25set() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27setEntry(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28setIndex(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Methods Associated to Set, SetIndex, and the Various Get Methods . . . . . . . . . . . . . . . . . . 29Selections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Selection Color Themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32The loadFile and saveFile Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Inserting Features from Other Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33ModelUtil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38model.attr() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40model.attr( tag ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41model.batch() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42model.bem(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49model.capeopen() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52model.coeff() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54model.common() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57model.component() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63model.constr() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65model.coordSystem() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67model.cpl() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74model.elem() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81model.elementSet() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83model.extraDim() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85model.field(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86model.form() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87model.frame() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87model.func(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89CONTENTS 3

model.geom() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98model.group() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105model.init() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106model.intRule() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106model.massProp() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107model.material() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109model.mesh() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118model.methodCall() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121model.modelNode(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123model.multiphysics(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125model.nodeGroup() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125model.ode() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126model.opt() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128Least-Squares Objective Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129model.pair() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130model.param() and model.result().param() . . . . . . . . . . . . . . . . . . . . . . . . . . .132model.physics() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134model.probe() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139model.reduced() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141model.result() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143model.savePoint()149. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .model.selection() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149model.shape() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158model.sol() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160model.solverEvent() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162model.study() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165model.unitSystem() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168model.variable() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169model.view() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171model.weak() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176Plotting and Exporting Images177Errors and Warnings180Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180Retrieving Problem Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180Chapter 3: GeometryAbout Geometry Commands184Features for Creating Geometric Primitives. . . . . . . . . . . . . . . . . . . . . . . . . . .184Features for Geometric Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185Selection Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186Features for Virtual Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187Features for Mesh Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187Geometry Object Information Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . .188Working with a Geometry Sequence190Adding a Model Component (Geometry). . . . . . . . . . . . . . . . . . . . . . . . . . . .190Adding a Geometry Feature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190Editing a Geometry Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191Building Geometry Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1924 CONTENTS

Feature Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192Accessing Geometry Object Names. . . . . . . . . . . . . . . . . . . . . . . . . . . . .193Deleting and Disabling Geometry Features . . . . . . . . . . . . . . . . . . . . . . . . . . .193Deleting Geometry Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194Moving and Scaling Geometry Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194Plotting a Geometry Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194Geometry Settings195Length Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195Angular Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195Scale Values When Changing Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195Geometry Representation in 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196Default Repair Tolerances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196Automatic Rebuild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197Work Planes198Selections of Geometric Entities199Named Selections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199Using Selection Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199Cumulative Selections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200Virtual Operations201About Virtual Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201Mesh Control Entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201Geometry Object Information202General Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202Geometric Entity Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203Adjacency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203Evaluation on an Edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204Evaluation on a Face. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204Geometry Representation Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205Measurements207Measuring Geometric Entities in Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . .207Measuring Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207Inserting Geometry Sequences from File208Example of Importing Geometry Sequences. . . . . . . . . . . . . . . . . . . . . . . . . . .208Exporting Geometry to File209Exporting to an ACIS File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209Exporting to a Parasolid File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209Exporting to an STL File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210Compatibility for mphbin/mphtxt in 2D and 3D . . . . . . . . . . . . . . . . . . . . . . . . .210Using Geometry Parts211Geometry Commands213AdjacentSelection214. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215BallSelection, BoxSelection, CylinderSelection, Disk Selection . . . . . . . . . . . . . . . . . . . .217BezierPolygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220CONTENTS 5

Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222Chamfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .224Circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225CollapseEdges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227CollapseFaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227CollapseFaceRegions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .228Compose, Union, Intersection, Difference . . . . . . . . . . . . . . . . . . . . . . . . . . .229CompositeDomains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230CompositeEdges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

CONTENTS 3 Contents Chapter 1: Introduction About the COMSOL API 16 Where Do I Find More Information? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16