General Commands > About General Commands > model.bem()

model.bem()
Create a boundary element (BEM) model.
Syntax
model.bem().create(<tag>, "CoefficientPDE");
model.bem(<tag>).set(<prop>, <value>);
model.bem(<tag>).selection();
 
model.bem(<tag>).selection(); defines the selection for single-sided BEM boundaries. In addition, the following variants are available for double-sided boundaries:
Use model.bem(<tag>).selection("cont"); for a selection of double-sided boundaries where the field is continuous.
Use model.bem(<tag>).selection("discont"); for a selection of double-sided boundaries where the field is allowed to be discontinuous.
Use model.bem(<tag>).selection("edge"); for a selection of BEM edges in 3D.
For a complete list of methods available under selection(), see Selections.
The following general properties are available for model.bem:.
In addition, the following properties for the coefficient of the equation are available:.
The following integration order properties are available:.
The following symmetry properties are available:.
off | scp | user
off | scp | user
off | scp | user
Finally, the following far-field approximation properties are available:.
none | ACA | ACA+
on | off
on | off
Example
The following example shows how to solve for a Helmholtz equation with outgoing waves at infinity in the exterior of a geometry. The example requires that the dependent variables u and bemflux already exist on the exterior boundaries.
Code for use with Java
model.intRule().create("ir1", "material1");
model.intRule("ir1").create("o1").order(4);
 
model.bem().create("bem1", "CoefficientPDE");
model.bem("bem1").selection().geom("geom1", 2).set(<list of exterior boundary numbers>);
model.bem("bem1").set("varname", "u");
model.bem("bem1").set("fluxname", "bemflux");
model.bem("bem1").set("normal", new String[]{"-nx", "-ny", "-nz"});
model.bem("bem1").set("a", "-1");
model.bem("bem1").set("m", "-1");
model.bem("bem1").set("opname", "bemop");
model.bem("bem1").set("intorderfar", "ir1");
model.bem("bem1").set("intorderclose", "ir1");
model.bem("bem1").set("intordersame", "ir1");
model.bem("bem1").set("intorderedge", "ir1");
model.bem("bem1").set("intordervertex", "ir1");
model.bem("bem1").set("intorderweak", "ir1");
Code for use with MATLAB
model.intRule().create('ir1', 'material1');
model.intRule('ir1').create('o1').order(4);
 
model.bem.create('bem1', 'CoefficientPDE');
model.bem('bem1').selection.geom('geom1', 2).set(<list of exterior boundary numbers>);
model.bem('bem1').set('varname', 'u');
model.bem('bem1').set('fluxname', 'bemflux');
model.bem('bem1').set('normal', {'-nx', '-ny', '-nz'});
model.bem('bem1').set('a', '-1');
model.bem('bem1').set('m', '-1');
model.bem('bem1').set('opname', 'bemop');
model.bem('bem1').set('intorderfar', 'ir1');
model.bem('bem1').set('intorderclose', 'ir1');
model.bem('bem1').set('intordersame', 'ir1');
model.bem('bem1').set('intorderedge', 'ir1');
model.bem('bem1').set('intordervertex', 'ir1');
model.bem('bem1').set('intorderweak", 'ir1');
See Also
model.coeff()