Oasys.PRIMER.IGAVolumeXYZ class¶
Constants¶
Properties¶
- property IGAVolumeXYZ.entries(read only): integer¶
Number of Boundary representation IDs (brid) added in IGA_VOLUME_XYZ. Can be used as index to add a new entry
- property IGAVolumeXYZ.esid: integer¶
Parametric edge set ID. *SET_IGA_EDGE_UVW
- property IGAVolumeXYZ.exists(read only): boolean¶
true if IGA Volume XYZ exists, false if referred to but not defined
- property IGAVolumeXYZ.fsid: integer¶
Parametric face set ID. *SET_IGA_FACE_UVW
- property IGAVolumeXYZ.label: integer¶
IGAVolumeXYZnumber. Also see thevidproperty which is an alternative name for this
- property IGAVolumeXYZ.option: constant¶
IGA Volume XYZ option.
IGAVolumeXYZ.NONEorIGAVolumeXYZ.BASIS_TRANSFORM
- property IGAVolumeXYZ.patchid: integer¶
Physical trivariate NURBS patch ID or a trivariate Basis Transform patch ID
- property IGAVolumeXYZ.psid: integer¶
Parametric point set ID. *SET_IGA_POINT_UVW
- property IGAVolumeXYZ.vid: integer¶
IGAVolumeXYZnumber. Also see thelabelproperty which is an alternative name for this
Constructor¶
- classmethod IGAVolumeXYZ(model, details)¶
Create a new
IGAVolumeXYZobject
- Parameters:
model (Model) –
Modelthat IGA volume xyz will be created indetails (dict) –
Details for creating the
IGAVolumeXYZ
- esid (optional):
(integer) Parametric edge set ID. *SET_IGA_EDGE_UVW
- fsid (optional):
(integer) Parametric face set ID. *SET_IGA_FACE_UVW
- option:
(constant) IGA Volume XYZ option.
IGAVolumeXYZ.NONEorIGAVolumeXYZ.BASIS_TRANSFORM- patchid (optional):
(integer) Physical trivariate NURBS patch ID or a trivariate basis transform patch ID
- psid (optional):
(integer) Parametric point set ID. *SET_IGA_POINT_UVW
- vid:
(integer) ID of the IGA Volume XYZ
- Returns:
IGAVolumeXYZ object
- Return type:
IGAVolumeXYZ
Example
To create a new IGA volume xyz in model m using vid 10 with option NONE:
igvx = Oasys.PRIMER.IGAVolumeXYZ(m, {'option':Oasys.PRIMER.IGAVolumeXYZ.NONE, 'vid':10})To create a new IGA volume xyz in model m using vid 21 and option BASIS_TRANSFORM with patch 22, psid 23, esid 24 and fsid 25:
igvx = Oasys.PRIMER.IGAVolumeXYZ(m, {'option':Oasys.PRIMER.IGAVolumeXYZ.BASIS_TRANSFORM, 'vid':21, 'patchid': 22, 'psid':23, 'esid':24, 'fsid':25})
Static methods¶
- classmethod IGAVolumeXYZ.Create(model, modal=Oasys.gRPC.defaultArg)¶
Starts an interactive editing panel to create a IGA Volume XYZ
- Parameters:
model (Model) –
Modelthat the IGA Volume XYZ will be created inmodal (boolean) – Optional. If this window is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the window will be modal
- Returns:
IGAVolumeXYZ object (or None if not made)
- Return type:
IGAVolumeXYZ
Example
To start creating a IGA Volume XYZ in model m:
igvx = Oasys.PRIMER.IGAVolumeXYZ.Create(m)
- classmethod IGAVolumeXYZ.First(model)¶
Returns the first IGA Volume XYZ in the model
- Parameters:
model (Model) –
Modelto get first IGA Volume XYZ in- Returns:
IGAVolumeXYZ object (or None if there are no IGA Volume XYZs in the model)
- Return type:
IGAVolumeXYZ
Example
To get the first IGA Volume XYZ in model m:
igvx = Oasys.PRIMER.IGAVolumeXYZ.First(m)
- classmethod IGAVolumeXYZ.FirstFreeLabel(model, layer=Oasys.gRPC.defaultArg)¶
Returns the first free IGA Volume XYZ label in the model. Also see
IGAVolumeXYZ.LastFreeLabel(),IGAVolumeXYZ.NextFreeLabel()andModel.FirstFreeItemLabel()
- Parameters:
- Returns:
IGAVolumeXYZ label
- Return type:
int
Example
To get the first free IGA Volume XYZ label in model m:
label = Oasys.PRIMER.IGAVolumeXYZ.FirstFreeLabel(m)
- classmethod IGAVolumeXYZ.FlagAll(model, flag)¶
Flags all of the IGA Volume XYZs in the model with a defined flag
- Parameters:
model (Model) –
Modelthat all IGA Volume XYZs will be flagged inflag (Flag) – Flag to set on the IGA Volume XYZs
- Returns:
No return value
- Return type:
None
Example
To flag all of the IGA Volume XYZs with flag f in model m:
Oasys.PRIMER.IGAVolumeXYZ.FlagAll(m, f)
- classmethod IGAVolumeXYZ.GetAll(model, property=Oasys.gRPC.defaultArg)¶
Returns a list of IGAVolumeXYZ objects or properties for all of the IGA Volume XYZs in a model in PRIMER. If the optional property argument is not given then a list of IGAVolumeXYZ objects is returned. If the property argument is given, that property value for each IGA Volume XYZ is returned in the list instead of a IGAVolumeXYZ object
- Parameters:
model (Model) –
Modelto get IGA Volume XYZs fromproperty (string) – Optional. Name for property to get for all IGA Volume XYZs in the model
- Returns:
List of IGAVolumeXYZ objects or properties
- Return type:
list
Example
To make a list of IGAVolumeXYZ objects for all of the IGA Volume XYZs in model m:
a = Oasys.PRIMER.IGAVolumeXYZ.GetAll(m)To return a list containing the value of property ‘foo’ (for example ‘x’ for a node) for each IGA Volume XYZ in model m:
a = Oasys.PRIMER.IGAVolumeXYZ.GetAll(m, 'foo')
- classmethod IGAVolumeXYZ.GetFlagged(model, flag, property=Oasys.gRPC.defaultArg)¶
Returns a list of IGAVolumeXYZ objects for all of the flagged IGA Volume XYZs in a model in PRIMER If the optional property argument is not given then a list of IGAVolumeXYZ objects is returned. If the property argument is given, then that property value for each IGA Volume XYZ is returned in the list instead of a IGAVolumeXYZ object
- Parameters:
model (Model) –
Modelto get IGA Volume XYZs fromflag (Flag) – Flag set on the IGA Volume XYZs that you want to retrieve
property (string) – Optional. Name for property to get for all flagged IGA Volume XYZs in the model
- Returns:
List of IGAVolumeXYZ objects or properties
- Return type:
list
Example
To make a list of IGAVolumeXYZ objects for all of the IGA Volume XYZs in model m flagged with f:
igvx = Oasys.PRIMER.IGAVolumeXYZ.GetFlagged(m, f)To return a list containing the value of property ‘foo’ (for example ‘x’ for a node) for all of the IGA Volume XYZs in model m flagged with f:
a = Oasys.PRIMER.IGAVolumeXYZ.GetFlagged(m, f, 'foo')
- classmethod IGAVolumeXYZ.GetFromID(model, number)¶
Returns the IGAVolumeXYZ object for a IGA Volume XYZ ID
- Parameters:
model (Model) –
Modelto find the IGA Volume XYZ innumber (integer) – number of the IGA Volume XYZ you want the IGAVolumeXYZ object for
- Returns:
IGAVolumeXYZ object (or None if IGA Volume XYZ does not exist)
- Return type:
IGAVolumeXYZ
Example
To get the IGAVolumeXYZ object for IGA Volume XYZ 100 in model m
igvx = Oasys.PRIMER.IGAVolumeXYZ.GetFromID(m, 100)
- classmethod IGAVolumeXYZ.Last(model)¶
Returns the last IGA Volume XYZ in the model
- Parameters:
model (Model) –
Modelto get last IGA Volume XYZ in- Returns:
IGAVolumeXYZ object (or None if there are no IGA Volume XYZs in the model)
- Return type:
IGAVolumeXYZ
Example
To get the last IGA Volume XYZ in model m:
igvx = Oasys.PRIMER.IGAVolumeXYZ.Last(m)
- classmethod IGAVolumeXYZ.LastFreeLabel(model, layer=Oasys.gRPC.defaultArg)¶
Returns the last free IGA Volume XYZ label in the model. Also see
IGAVolumeXYZ.FirstFreeLabel(),IGAVolumeXYZ.NextFreeLabel()and seeModel.LastFreeItemLabel()
- Parameters:
- Returns:
IGAVolumeXYZ label
- Return type:
int
Example
To get the last free IGA Volume XYZ label in model m:
label = Oasys.PRIMER.IGAVolumeXYZ.LastFreeLabel(m)
- classmethod IGAVolumeXYZ.NextFreeLabel(model, layer=Oasys.gRPC.defaultArg)¶
Returns the next free (highest+1) IGA Volume XYZ label in the model. Also see
IGAVolumeXYZ.FirstFreeLabel(),IGAVolumeXYZ.LastFreeLabel()andModel.NextFreeItemLabel()
- Parameters:
- Returns:
IGAVolumeXYZ label
- Return type:
int
Example
To get the next free IGA Volume XYZ label in model m:
label = Oasys.PRIMER.IGAVolumeXYZ.NextFreeLabel(m)
- classmethod IGAVolumeXYZ.RenumberAll(model, start)¶
Renumbers all of the IGA Volume XYZs in the model
- Parameters:
model (Model) –
Modelthat all IGA Volume XYZs will be renumbered instart (integer) – Start point for renumbering
- Returns:
No return value
- Return type:
None
Example
To renumber all of the IGA Volume XYZs in model m, from 1000000:
Oasys.PRIMER.IGAVolumeXYZ.RenumberAll(m, 1000000)
- classmethod IGAVolumeXYZ.RenumberFlagged(model, flag, start)¶
Renumbers all of the flagged IGA Volume XYZs in the model
- Parameters:
model (Model) –
Modelthat all the flagged IGA Volume XYZs will be renumbered inflag (Flag) – Flag set on the IGA Volume XYZs that you want to renumber
start (integer) – Start point for renumbering
- Returns:
No return value
- Return type:
None
Example
To renumber all of the IGA Volume XYZs in model m flagged with f, from 1000000:
Oasys.PRIMER.IGAVolumeXYZ.RenumberFlagged(m, f, 1000000)
- classmethod IGAVolumeXYZ.Select(flag, prompt, limit=Oasys.gRPC.defaultArg, modal=Oasys.gRPC.defaultArg)¶
Allows the user to select IGA Volume XYZs using standard PRIMER object menus
- Parameters:
flag (Flag) – Flag to use when selecting IGA Volume XYZs
prompt (string) – Text to display as a prompt to the user
limit (Model or Flag) – Optional. If the argument is a
Modelthen only IGA Volume XYZs from that model can be selected. If the argument is aFlagthen only IGA Volume XYZs that are flagged with limit can be selected (limit should be different to flag). If omitted, or None, any IGA Volume XYZs can be selected. from any modelmodal (boolean) – Optional. If selection is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the selection will be modal
- Returns:
Number of IGA Volume XYZs selected or None if menu cancelled
- Return type:
int
Example
To select IGA Volume XYZs from model m, flagging those selected with flag f, giving the prompt ‘Select IGA Volume XYZs’:
Oasys.PRIMER.IGAVolumeXYZ.Select(f, 'Select IGA Volume XYZs', m)To select IGA Volume XYZs, flagging those selected with flag f but limiting selection to IGA Volume XYZs flagged with flag l, giving the prompt ‘Select IGA Volume XYZs’:
Oasys.PRIMER.IGAVolumeXYZ.Select(f, 'Select IGA Volume XYZs', l)
- classmethod IGAVolumeXYZ.SketchFlagged(model, flag, redraw=Oasys.gRPC.defaultArg)¶
Sketches all of the flagged IGA Volume XYZs in the model. The IGA Volume XYZs will be sketched until you either call
IGAVolumeXYZ.Unsketch(),IGAVolumeXYZ.UnsketchFlagged(),Model.UnsketchAll(), or delete the model
- Parameters:
model (Model) –
Modelthat all the flagged IGA Volume XYZs will be sketched inflag (Flag) – Flag set on the IGA Volume XYZs that you want to sketch
redraw (boolean) – Optional. If model should be redrawn or not after the IGA Volume XYZs are sketched. If omitted redraw is true. If you want to sketch flagged IGA Volume XYZs several times and only redraw after the last one then use false for redraw and call
View.Redraw()- Returns:
No return value
- Return type:
None
Example
To sketch all IGA Volume XYZs flagged with flag in model m:
Oasys.PRIMER.IGAVolumeXYZ.SketchFlagged(m, flag)
- classmethod IGAVolumeXYZ.Total(model, exists=Oasys.gRPC.defaultArg)¶
Returns the total number of IGA Volume XYZs in the model
- Parameters:
model (Model) –
Modelto get total forexists (boolean) – Optional. true if only existing IGA Volume XYZs should be counted. If false or omitted referenced but undefined IGA Volume XYZs will also be included in the total
- Returns:
number of IGA Volume XYZs
- Return type:
int
Example
To get the total number of IGA Volume XYZs in model m:
total = Oasys.PRIMER.IGAVolumeXYZ.Total(m)
- classmethod IGAVolumeXYZ.UnflagAll(model, flag)¶
Unsets a defined flag on all of the IGA Volume XYZs in the model
- Parameters:
model (Model) –
Modelthat the defined flag for all IGA Volume XYZs will be unset inflag (Flag) – Flag to unset on the IGA Volume XYZs
- Returns:
No return value
- Return type:
None
Example
To unset the flag f on all the IGA Volume XYZs in model m:
Oasys.PRIMER.IGAVolumeXYZ.UnflagAll(m, f)
- classmethod IGAVolumeXYZ.UnsketchAll(model, redraw=Oasys.gRPC.defaultArg)¶
Unsketches all IGA Volume XYZs
- Parameters:
model (Model) –
Modelthat all IGA Volume XYZs will be unblanked inredraw (boolean) – Optional. If model should be redrawn or not after the IGA Volume XYZs are unsketched. If omitted redraw is true. If you want to unsketch several things and only redraw after the last one then use false for redraw and call
View.Redraw()- Returns:
No return value
- Return type:
None
Example
To unsketch all IGA Volume XYZs in model m:
Oasys.PRIMER.IGAVolumeXYZ.UnsketchAll(m)
- classmethod IGAVolumeXYZ.UnsketchFlagged(model, flag, redraw=Oasys.gRPC.defaultArg)¶
Unsketches all flagged IGA Volume XYZs in the model
- Parameters:
model (Model) –
Modelthat all IGA Volume XYZs will be unsketched inflag (Flag) – Flag set on the IGA Volume XYZs that you want to unsketch
redraw (boolean) – Optional. If model should be redrawn or not after the IGA Volume XYZs are unsketched. If omitted redraw is true. If you want to unsketch several things and only redraw after the last one then use false for redraw and call
View.Redraw()- Returns:
No return value
- Return type:
None
Example
To unsketch all IGA Volume XYZs flagged with flag in model m:
Oasys.PRIMER.IGAVolumeXYZ.UnsketchAll(m, flag)
Instance methods¶
- IGAVolumeXYZ.AssociateComment(comment)¶
Associates a comment with a IGA Volume XYZ
- Parameters:
comment (Comment) –
Commentthat will be attached to the IGA Volume XYZ- Returns:
No return value
- Return type:
None
Example
To associate comment c to the IGA Volume XYZ igvx:
igvx.AssociateComment(c)
- IGAVolumeXYZ.Browse(modal=Oasys.gRPC.defaultArg)¶
Starts an edit panel in Browse mode
- Parameters:
modal (boolean) – Optional. If this window is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the window will be modal
- Returns:
no return value
- Return type:
None
Example
To Browse IGA Volume XYZ igvx:
igvx.Browse()
- IGAVolumeXYZ.ClearFlag(flag)¶
Clears a flag on the IGA Volume XYZ
- Parameters:
flag (Flag) – Flag to clear on the IGA Volume XYZ
- Returns:
No return value
- Return type:
None
Example
To clear flag f for IGA Volume XYZ igvx:
igvx.ClearFlag(f)
- IGAVolumeXYZ.Copy(range=Oasys.gRPC.defaultArg)¶
Copies the IGA Volume XYZ. The target include of the copied IGA Volume XYZ can be set using
Options.copy_target_include
- Parameters:
range (boolean) – Optional. If you want to keep the copied item in the range specified for the current include. Default value is false. To set current include, use
Include.MakeCurrentLayer()- Returns:
IGAVolumeXYZ object
- Return type:
IGAVolumeXYZ
Example
To copy IGA Volume XYZ igvx into IGA Volume XYZ z:
z = igvx.Copy()
- IGAVolumeXYZ.DetachComment(comment)¶
Detaches a comment from a IGA Volume XYZ
- Parameters:
comment (Comment) –
Commentthat will be detached from the IGA Volume XYZ- Returns:
No return value
- Return type:
None
Example
To detach comment c from the IGA Volume XYZ igvx:
igvx.DetachComment(c)
- IGAVolumeXYZ.Edit(modal=Oasys.gRPC.defaultArg)¶
Starts an interactive editing panel
- Parameters:
modal (boolean) – Optional. If this window is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the window will be modal
- Returns:
no return value
- Return type:
None
Example
To Edit IGA Volume XYZ igvx:
igvx.Edit()
- IGAVolumeXYZ.Flagged(flag)¶
Checks if the IGA Volume XYZ is flagged or not
- Parameters:
flag (Flag) – Flag to test on the IGA Volume XYZ
- Returns:
True if flagged, False if not
- Return type:
bool
Example
To check if IGA Volume XYZ igvx has flag f set on it:
if igvx.Flagged(f): do_something..
- IGAVolumeXYZ.GetComments()¶
Extracts the comments associated to a IGA Volume XYZ
- Returns:
List of Comment objects (or None if there are no comments associated to the node)
- Return type:
list
Example
To get the list of comments associated to the IGA Volume XYZ igvx:
comm_list = igvx.GetComments()
- IGAVolumeXYZ.GetData(index)¶
Returns the data for brid in *IGA_VOLUME_XYZ. Only valid for option
IGAVolumeXYZ.NONE
- Parameters:
index (integer) – Index you want the data for. Note that indices start at 0
- Returns:
The ID of 2 dimensional boundary representation
- Return type:
int
Example
To get the 3rd data entry in IGA volume xyz igvx:
data = igvx.GetData(2)
- IGAVolumeXYZ.GetParameter(prop)¶
Checks if a IGAVolumeXYZ property is a parameter or not. Note that object properties that are parameters are normally returned as the integer or float parameter values as that is virtually always what the user would want. For this function to work the JavaScript interpreter must use the parameter name instead of the value. This can be done by setting the
Options.property_parameter_namesoption to true before calling the function and then resetting it to false afterwards.. This behaviour can also temporarily be switched by using theIGAVolumeXYZ.ViewParameters()method and ‘method chaining’ (see the examples below)
- Parameters:
prop (string) – IGA Volume XYZ property to get parameter for
- Returns:
Parameter object if property is a parameter, None if not
- Return type:
Parameter
Example
To check if IGAVolumeXYZ property igvx.example is a parameter:
Oasys.PRIMER.Options.property_parameter_names = True if igvx.GetParameter(igvx.example): do_something... Oasys.PRIMER.Options.property_parameter_names = FalseTo check if IGAVolumeXYZ property igvx.example is a parameter by using the GetParameter method:
if igvx.ViewParameters().GetParameter(igvx.example): do_something..
- IGAVolumeXYZ.Keyword()¶
Returns the keyword for this IGA volume xyz (*IGA_VOLUME_XYZ). Note that a carriage return is not added. See also
IGAVolumeXYZ.KeywordCards()
- Returns:
string containing the keyword
- Return type:
str
Example
To get the keyword for IGA volume xyz igvx:
key = igvx.Keyword()
- IGAVolumeXYZ.KeywordCards()¶
Returns the keyword cards for the IGA volume xyz. Note that a carriage return is not added. See also
IGAVolumeXYZ.Keyword()
- Returns:
string containing the cards
- Return type:
str
Example
To get the cards for IGA volume xyz igvx:
cards = igvx.KeywordCards()
- IGAVolumeXYZ.Next()¶
Returns the next IGA Volume XYZ in the model
- Returns:
IGAVolumeXYZ object (or None if there are no more IGA Volume XYZs in the model)
- Return type:
IGAVolumeXYZ
Example
To get the IGA Volume XYZ in model m after IGA Volume XYZ igvx:
igvx = igvx.Next()
- IGAVolumeXYZ.Previous()¶
Returns the previous IGA Volume XYZ in the model
- Returns:
IGAVolumeXYZ object (or None if there are no more IGA Volume XYZs in the model)
- Return type:
IGAVolumeXYZ
Example
To get the IGA Volume XYZ in model m before IGA Volume XYZ igvx:
igvx = igvx.Previous()
- IGAVolumeXYZ.RemoveData(index)¶
Removes brid for an index in *IGA_VOLUME_XYZ. Only valid for option
IGAVolumeXYZ.NONE
- Parameters:
index (integer) – The index you want to delete brid for. Note that indices start at 0, not 1
- Returns:
No return value
- Return type:
None
Example
To delete the brid for the 3rd index for *IGA_VOLUME_XYZ in model m:
if igvx.entries >= 3: igvx.RemoveData(2)
- IGAVolumeXYZ.SetData(index, brid)¶
Sets brid for *IGA_VOLUME_XYZ. Only valid for option
IGAVolumeXYZ.NONE
- Parameters:
index (integer) – Index you want to set the brid for. Note that indices start at 0
brid (integer) – The ID of 2 dimensional boundary representation
- Returns:
No return value
- Return type:
None
Example
To add an entry to the *IGA_VOLUME_XYZ igvx with id 10 by using “entries” property to get the next available index:
i = igvx.entries igvx.SetData(i, 10)To change an entry in 3rd field for *IGA_VOLUME_XYZ igvx with id 30:
igvx.SetData(2, 30)
- IGAVolumeXYZ.SetFlag(flag)¶
Sets a flag on the IGA Volume XYZ
- Parameters:
flag (Flag) – Flag to set on the IGA Volume XYZ
- Returns:
No return value
- Return type:
None
Example
To set flag f for IGA Volume XYZ igvx:
igvx.SetFlag(f)
- IGAVolumeXYZ.Sketch(redraw=Oasys.gRPC.defaultArg)¶
Sketches the IGA Volume XYZ. The IGA Volume XYZ will be sketched until you either call
IGAVolumeXYZ.Unsketch(),IGAVolumeXYZ.UnsketchAll(),Model.UnsketchAll(), or delete the model
- Parameters:
redraw (boolean) – Optional. If model should be redrawn or not after the IGA Volume XYZ is sketched. If omitted redraw is true. If you want to sketch several IGA Volume XYZs and only redraw after the last one then use false for redraw and call
View.Redraw()- Returns:
No return value
- Return type:
None
Example
To sketch IGA Volume XYZ igvx:
igvx.Sketch()
- IGAVolumeXYZ.Unsketch(redraw=Oasys.gRPC.defaultArg)¶
Unsketches the IGA Volume XYZ
- Parameters:
redraw (boolean) – Optional. If model should be redrawn or not after the IGA Volume XYZ is unsketched. If omitted redraw is true. If you want to unsketch several IGA Volume XYZs and only redraw after the last one then use false for redraw and call
View.Redraw()- Returns:
No return value
- Return type:
None
Example
To unsketch IGA Volume XYZ igvx:
igvx.Unsketch()
- IGAVolumeXYZ.ViewParameters()¶
Object properties that are parameters are normally returned as the integer or float parameter values as that is virtually always what the user would want. This function temporarily changes the behaviour so that if a property is a parameter the parameter name is returned instead. This can be used with ‘method chaining’ (see the example below) to make sure a property argument is correct
- Returns:
IGAVolumeXYZ object
- Return type:
IGAVolumeXYZ
Example
To check if IGAVolumeXYZ property igvx.example is a parameter by using the
IGAVolumeXYZ.GetParameter()method:if igvx.ViewParameters().GetParameter(igvx.example): do_something..
- IGAVolumeXYZ.Xrefs()¶
Returns the cross references for this IGA Volume XYZ
- Returns:
Xrefs object
- Return type:
Xrefs
Example
To get the cross references for IGA Volume XYZ igvx:
xrefs = igvx.Xrefs()