icedb  version 0.5.1
Snow particle scattering database API
Public Member Functions | Public Attributes | List of all members
icedb::Examples::Shapes::ShapeCommonOptionalData Struct Reference

#include <shape.hpp>

Collaboration diagram for icedb::Examples::Shapes::ShapeCommonOptionalData:
Collaboration graph
[legend]

Public Member Functions

void apply (icedb::Shapes::NewShapeCommonOptionalProperties &) const
 
void apply (icedb::Shapes::NewShapeCommonOptionalProperties &) const
 
void apply (icedb::Shapes::NewShapeCommonOptionalProperties &) const
 

Public Attributes

IntData_t particle_scattering_element_number
 
Int8Data_t particle_constituent_number
 
FloatData_t particle_scattering_element_radius
 
StringData_t particle_constituent_name
 
std::string particle_constituent_single_name
 
FloatData_t particle_scattering_element_composition_fractional
 
Int8Data_t particle_scattering_element_composition_whole
 
float hint_max_scattering_element_dimension = -1
 
float particle_scattering_element_spacing = -1
 

Detailed Description

Definition at line 28 of file shape.hpp.

Member Function Documentation

◆ apply() [1/3]

void icedb::Examples::Shapes::ShapeCommonOptionalData::apply ( icedb::Shapes::NewShapeCommonOptionalProperties p) const

Definition at line 21 of file shapeIOtext.cpp.

References icedb::Shapes::NewShapeCommonOptionalProperties::hint_max_scattering_element_dimension, icedb::Shapes::NewShapeCommonOptionalProperties::particle_constituent_name, icedb::Shapes::NewShapeCommonOptionalProperties::particle_constituent_number, icedb::Shapes::NewShapeCommonOptionalProperties::particle_constituent_single_name, icedb::Shapes::NewShapeCommonOptionalProperties::particle_scattering_element_composition_fractional, icedb::Shapes::NewShapeCommonOptionalProperties::particle_scattering_element_composition_whole, icedb::Shapes::NewShapeCommonOptionalProperties::particle_scattering_element_number, icedb::Shapes::NewShapeCommonOptionalProperties::particle_scattering_element_radius, and icedb::Shapes::NewShapeCommonOptionalProperties::particle_scattering_element_spacing.

21  {
22  // When applying these, check for the trivial cases. If these occur, then do not
23  // set the output field.
24 
25  // If p.particle_scattering_element_number is a linear sequence 1...N, then it is trivial
26  bool scat_elem_num_is_trivial = true;
27  for (size_t i = 0; i < this->particle_scattering_element_number.size(); ++i) {
28  if (this->particle_scattering_element_number[i] != i + 1) scat_elem_num_is_trivial = false;
29  }
30  if (!scat_elem_num_is_trivial)
32  // Matters only if more than one constituent
33  if (this->particle_constituent_number.size() > 1)
34  p.particle_constituent_number = this->particle_constituent_number;
35 
36 
37  p.particle_scattering_element_radius = this->particle_scattering_element_radius;
38  p.particle_constituent_name = this->particle_constituent_name;
39  p.particle_constituent_single_name = this->particle_constituent_single_name;
40 
42 
43  // If p.particle_scattering_element_composition_whole is specified, and it is all ones, then it is trivial.
44  bool comp_whole_is_trivial = false;
45  if (std::all_of(particle_scattering_element_composition_whole.begin(),
47  [](uint8_t v)->bool { return (v == 1) ? true : false; }))
48  comp_whole_is_trivial = true;
49  if (!comp_whole_is_trivial)
51 
54  }
gsl::span< const uint8_t > particle_scattering_element_composition_whole
Definition: shape.hpp:93
gsl::span< const float > particle_scattering_element_radius
Definition: shape.hpp:69
float particle_scattering_element_spacing
OPTIONAL ATTRIBUTE: Physical spacing between adjacent grid points (in meters). Used in DDA...
Definition: shape.hpp:96
float hint_max_scattering_element_dimension
EXPERIMENTAL HINT: Specify the maximum scattering element dimension.
Definition: shape.hpp:100
gsl::span< const uint64_t > particle_scattering_element_number
DIMENSION: The id number for each scattering element. Single dimension.
Definition: shape.hpp:62
gsl::span< const float > particle_scattering_element_composition_fractional
Definition: shape.hpp:88
gsl::span< const std::string > particle_constituent_name
Definition: shape.hpp:77
gsl::span< const uint8_t > particle_constituent_number
DIMENSION: The id number of each particle&#39;s constituent. Single dimension.
Definition: shape.hpp:64

◆ apply() [2/3]

void icedb::Examples::Shapes::ShapeCommonOptionalData::apply ( icedb::Shapes::NewShapeCommonOptionalProperties ) const

◆ apply() [3/3]

void icedb::Examples::Shapes::ShapeCommonOptionalData::apply ( icedb::Shapes::NewShapeCommonOptionalProperties ) const

Member Data Documentation

◆ hint_max_scattering_element_dimension

float icedb::Examples::Shapes::ShapeCommonOptionalData::hint_max_scattering_element_dimension = -1

Definition at line 37 of file shape.hpp.

Referenced by icedb::Examples::Shapes::m_atoi().

◆ particle_constituent_name

StringData_t icedb::Examples::Shapes::ShapeCommonOptionalData::particle_constituent_name

Definition at line 32 of file shape.hpp.

◆ particle_constituent_number

Int8Data_t icedb::Examples::Shapes::ShapeCommonOptionalData::particle_constituent_number

◆ particle_constituent_single_name

std::string icedb::Examples::Shapes::ShapeCommonOptionalData::particle_constituent_single_name

Definition at line 33 of file shape.hpp.

Referenced by icedb::Examples::Shapes::readPSUfile().

◆ particle_scattering_element_composition_fractional

FloatData_t icedb::Examples::Shapes::ShapeCommonOptionalData::particle_scattering_element_composition_fractional

Definition at line 35 of file shape.hpp.

Referenced by icedb::Examples::Shapes::writeDDSCAT().

◆ particle_scattering_element_composition_whole

Int8Data_t icedb::Examples::Shapes::ShapeCommonOptionalData::particle_scattering_element_composition_whole

◆ particle_scattering_element_number

IntData_t icedb::Examples::Shapes::ShapeCommonOptionalData::particle_scattering_element_number

◆ particle_scattering_element_radius

FloatData_t icedb::Examples::Shapes::ShapeCommonOptionalData::particle_scattering_element_radius

Definition at line 31 of file shape.hpp.

Referenced by icedb::Examples::Shapes::readPSUfile().

◆ particle_scattering_element_spacing

float icedb::Examples::Shapes::ShapeCommonOptionalData::particle_scattering_element_spacing = -1

Definition at line 38 of file shape.hpp.

Referenced by main(), and icedb::Examples::Shapes::readPSUfile().


The documentation for this struct was generated from the following files: