OpenVSP API Documentation 3.41.0
 
Loading...
Searching...
No Matches
VSPAERO Actuator Disk and Propeller Functions

The following group of functions provide API capability for setting up actuator disks (Disk tab of VSPAERO GUI) and propellers (Propeller tab of VSPAERO GUI) for VSPAERO analysis. If a propeller geometry is used to model the actuator disk, the "PropMode" must be set to PROP_DISK or PROP_BOTH. Alternatively, the "PropMode" but be set to PROP_BLADE or PROP_BOTH for unsteady analysis. must be set to PROP_DISK or PROP_BOTH. Click here to return to the main page. More...

Functions

std::string vsp::FindActuatorDisk (int disk_index)
 
int vsp::GetNumActuatorDisks ()
 
std::string vsp::FindUnsteadyGroup (int group_index)
 
std::string vsp::GetUnsteadyGroupName (int group_index)
 
std::vector< std::string > vsp::GetUnsteadyGroupCompIDs (int group_index)
 
std::vector< int > vsp::GetUnsteadyGroupSurfIndexes (int group_index)
 
int vsp::GetNumUnsteadyGroups ()
 
int vsp::GetNumUnsteadyRotorGroups ()
 

Detailed Description

Function Documentation

◆ FindActuatorDisk()

std::string vsp::FindActuatorDisk ( int disk_index)
extern

Get the ID of a VSPAERO actuator disk at the specified index. An empty string is returned if the index is out of range.

// Add a propeller
string prop_id = AddGeom( "PROP", "" );
SetParmVal( prop_id, "PropMode", "Design", PROP_DISK );
SetParmVal( prop_id, "Diameter", "Design", 6.0 );
// Setup the actuator disk VSPAERO parms
string disk_id = FindActuatorDisk( 0 );
SetParmVal( FindParm( disk_id, "RotorRPM", "Rotor" ), 1234.0 );
SetParmVal( FindParm( disk_id, "RotorCT", "Rotor" ), 0.35 );
SetParmVal( FindParm( disk_id, "RotorCP", "Rotor" ), 0.55 );
SetParmVal( FindParm( disk_id, "RotorHubDiameter", "Rotor" ), 1.0 );
@ PROP_DISK
std::string AddGeom(const std::string &type, const std::string &parent=std::string())
std::string FindParm(const std::string &parm_container_id, const std::string &parm_name, const std::string &group_name)
double SetParmVal(const std::string &parm_id, double val)
std::string FindActuatorDisk(int disk_index)
void Update(bool update_managers=true)
See also
PROP_MODE
Parameters
[in]disk_indexActuator disk index for the current VSPAERO set
Returns
Actuator disk ID

◆ FindUnsteadyGroup()

std::string vsp::FindUnsteadyGroup ( int group_index)
extern

Get the ID of the VSPAERO unsteady group at the specified index. An empty string is returned if the index is out of range.

string wing_id = AddGeom( "WING" );
string pod_id = AddGeom( "POD" );
// Create an actuator disk
string prop_id = AddGeom( "PROP", "" );
SetParmVal( prop_id, "PropMode", "Design", PROP_BLADES );
// Setup the unsteady group VSPAERO parms
string disk_id = FindUnsteadyGroup( 1 ); // fixed components are in group 0 (wing & pod)
SetParmVal( FindParm( disk_id, "RPM", "UnsteadyGroup" ), 1234.0 );
@ PROP_BLADES
std::string FindUnsteadyGroup(int group_index)
See also
PROP_MODE
Parameters
[in]group_indexUnsteady group index for the current VSPAERO set
Returns
Unsteady group ID

◆ GetNumActuatorDisks()

int vsp::GetNumActuatorDisks ( )
extern

Get the number of actuator disks in the current VSPAERO set. This is equivalent to the number of disk surfaces in the VSPAERO set.

// Set VSPAERO set index to SET_ALL
SetParmVal( FindParm( FindContainer( "VSPAEROSettings", 0 ), "GeomSet", "VSPAERO" ), SET_ALL );
// Add a propeller
string prop_id = AddGeom( "PROP", "" );
SetParmValUpdate( prop_id, "PropMode", "Design", PROP_BLADES );
int num_disk = GetNumActuatorDisks(); // Should be 0
SetParmValUpdate( prop_id, "PropMode", "Design", PROP_DISK );
num_disk = GetNumActuatorDisks(); // Should be 1
@ SET_ALL
std::string FindContainer(const std::string &name, int index)
double SetParmValUpdate(const std::string &parm_id, double val)
int GetNumActuatorDisks()
See also
PROP_MODE
Returns
Number of actuator disks in the current VSPAERO set

◆ GetNumUnsteadyGroups()

int vsp::GetNumUnsteadyGroups ( )
extern

Get the number of unsteady groups in the current VSPAERO set. Each propeller is placed in its own unsteady group. All symmetric copies of propellers are also placed in an unsteady group. All other component types are placed in a single fixed component unsteady group.

// Set VSPAERO set index to SET_ALL
SetParmVal( FindParm( FindContainer( "VSPAEROSettings", 0 ), "GeomSet", "VSPAERO" ), SET_ALL );
// Add a propeller
string prop_id = AddGeom( "PROP" );
SetParmValUpdate( prop_id, "PropMode", "Design", PROP_DISK );
int num_group = GetNumUnsteadyGroups(); // Should be 0
SetParmValUpdate( prop_id, "PropMode", "Design", PROP_BLADES );
num_group = GetNumUnsteadyGroups(); // Should be 1
string wing_id = AddGeom( "WING" );
num_group = GetNumUnsteadyGroups(); // Should be 2 (includes fixed component group)
int GetNumUnsteadyGroups()
See also
PROP_MODE, GetNumUnsteadyRotorGroups
Returns
Number of unsteady groups in the current VSPAERO set

◆ GetNumUnsteadyRotorGroups()

int vsp::GetNumUnsteadyRotorGroups ( )
extern

Get the number of unsteady rotor groups in the current VSPAERO set. This is equivalent to the total number of propeller Geoms, including each symmetric copy, in the current VSPAERO set. While all fixed components (wings, fuseleage, etc.) are placed in their own unsteady group, this function does not consider them.

// Set VSPAERO set index to SET_ALL
SetParmVal( FindParm( FindContainer( "VSPAEROSettings", 0 ), "GeomSet", "VSPAERO" ), SET_ALL );
// Add a propeller
string prop_id = AddGeom( "PROP" );
SetParmValUpdate( prop_id, "PropMode", "Design", PROP_DISK );
int num_group = GetNumUnsteadyRotorGroups(); // Should be 0
SetParmValUpdate( prop_id, "PropMode", "Design", PROP_BLADES );
num_group = GetNumUnsteadyRotorGroups(); // Should be 1
string wing_id = AddGeom( "WING" );
num_group = GetNumUnsteadyRotorGroups(); // Should be 1 still (fixed group not included)
int GetNumUnsteadyRotorGroups()
See also
PROP_MODE, GetNumUnsteadyGroups
Returns
Number of unsteady rotor groups in the current VSPAERO set

◆ GetUnsteadyGroupCompIDs()

std::vector< std::string > vsp::GetUnsteadyGroupCompIDs ( int group_index)
extern

Get an array of IDs for all components in the unsteady group at the specified index.

// Add a pod and wing
string pod_id = AddGeom( "POD", "" );
string wing_id = AddGeom( "WING", pod_id ); // Default with symmetry on -> 2 surfaces
SetParmVal( wing_id, "X_Rel_Location", "XForm", 2.5 );
array < string > comp_ids = GetUnsteadyGroupCompIDs( 0 );
if ( comp_ids.size() != 3 )
{
Print( "ERROR: GetUnsteadyGroupCompIDs" );
}
std::vector< std::string > GetUnsteadyGroupCompIDs(int group_index)
See also
GetUnsteadyGroupSurfIndexes
Parameters
[in]group_indexUnsteady group index for the current VSPAERO set
Returns
Array of component IDs

◆ GetUnsteadyGroupName()

std::string vsp::GetUnsteadyGroupName ( int group_index)
extern

Get the name of the unsteady group at the specified index.

// Add a pod and wing
string pod_id = AddGeom( "POD", "" );
string wing_id = AddGeom( "WING", pod_id );
SetParmVal( wing_id, "X_Rel_Location", "XForm", 2.5 );
Print( GetUnsteadyGroupName( 0 ) );
std::string GetUnsteadyGroupName(int group_index)
See also
SetUnsteadyGroupName
Parameters
[in]group_indexUnsteady group index for the current VSPAERO set
Returns
Unsteady group name

◆ GetUnsteadyGroupSurfIndexes()

std::vector< int > vsp::GetUnsteadyGroupSurfIndexes ( int group_index)
extern

Get an array of surface indexes for all components in the unsteady group at the specified index.

// Add a pod and wing
string pod_id = AddGeom( "POD", "" );
string wing_id = AddGeom( "WING", pod_id ); // Default with symmetry on -> 2 surfaces
SetParmVal( wing_id, "X_Rel_Location", "XForm", 2.5 );
array < int > surf_indexes = GetUnsteadyGroupSurfIndexes( 0 );
if ( surf_indexes.size() != 3 )
{
Print( "ERROR: GetUnsteadyGroupSurfIndexes" );
}
std::vector< int > GetUnsteadyGroupSurfIndexes(int group_index)
See also
GetUnsteadyGroupCompIDs
Parameters
[in]group_indexUnsteady group index for the current VSPAERO set
Returns
Array of surface indexes