Vector& ScalarDamageInterface2DLaw::GetValue(const Variable<Vector>& rThisVariable, Vector& rValue) { if (rThisVariable == INITIAL_STRAIN) { if (rValue.size() != m_initial_strain.size()) rValue.resize(m_initial_strain.size()); noalias(rValue) = m_initial_strain; } if(rThisVariable == YIELD_SURFACE_DATA_2D_X || rThisVariable == YIELD_SURFACE_DATA_2D_Y) { int ijob = rThisVariable == YIELD_SURFACE_DATA_2D_X ? 1 : 2; double Ft = 1.0; double C0 = 2.0; double Fs = std::tan(M_PI / 180 * 30.0); SizeType nn = 10; if(rValue.size() != nn) rValue.resize(nn, false); double Ft_d = (1.0 - mD1)*Ft; double C0_d = (1.0 - mD2)*C0; double x = Ft_d; double x_incr = (4.0*Ft+Ft_d) / (double)(nn-1); rValue(0) = ijob == 1 ? x : 0.0; for(SizeType i = 1; i < nn; i++) { double y = -x*Fs+C0_d; rValue(i) = ijob == 1 ? x : y; x -= x_incr; } } return rValue; }
Vector& ConvDiffInterface2DLaw::GetValue(const Variable<Vector>& rThisVariable, Vector& rValue) { if (rThisVariable == INITIAL_TEMP_GRAD) { if (rValue.size() != m_init_gradT.size()) rValue.resize(m_init_gradT.size()); noalias(rValue) = m_init_gradT; } if (rThisVariable == FLUX_RVE) { if (rValue.size() != mStressVector.size()) rValue.resize(mStressVector.size()); noalias(rValue) = mStressVector; } if (rThisVariable == HEAT_FLUX_RVE) { //For Output if (rValue.size() != 3) rValue.resize(3); rValue(0) = mStressVector(0); // 1.0e6;//[W/mm^2] rValue(1) = mStressVector(1); // 1.0e6; rValue(2) = 0.0; } if (rThisVariable == GAP_INTERFACE) { if (rValue.size() != m_gap_interface.size()) rValue.resize(m_gap_interface.size()); noalias(rValue) = m_gap_interface; } return rValue; }
int main (int argc, char *argv[]) { auto answ = rValue(3); std::cout << answ << std::endl; Obj *bb = nullptr;//std::nullptr_t; Obj *aa = NULL; std::cout << bb << std::endl; std::cout << aa << std::endl; printf("bb-> %p aa-> %p\n", bb,aa); return 0; }
Vector& ConvDiffAnisotropic2DLaw::GetValue(const Variable<Vector>& rThisVariable, Vector& rValue) { if (rThisVariable == INITIAL_TEMP_GRAD) { if (rValue.size() != m_init_gradT.size()) rValue.resize(m_init_gradT.size()); noalias(rValue) = m_init_gradT; } if (rThisVariable == FLUX_RVE) { if (rValue.size() != mStressVector.size()) rValue.resize(mStressVector.size()); noalias(rValue) = mStressVector; } if (rThisVariable == HEAT_FLUX_RVE) { //For Output if (rValue.size() != 3) rValue.resize(3, false); rValue(0) = mStressVector(0); // 1.0e6; // //[W/mm^2] rValue(1) = mStressVector(1); // 1.0e6; // rValue(2) = 0.0; //std::stringstream ss; //ss << "HEAT_FLUX_RVE = " << rValue << ", " << std::endl; //std::cout << ss.str(); } return rValue; }
void moShaderCtrl::ProcessShaderValues() { moValue& rValue( m_ValueDescriptor.GetValue() ); moText shaderstr = moWx2Text( TextCtrlShaderCfg->GetValue() ); moText shaderdest = moWx2Text( TextCtrlDestination->GetValue() ); MOfloat alphaval = (float)m_pLevelShaderAlphaCtrl->GetValue() / 100.0; if ( shaderdest!=moText("") || shaderstr!=moText("") ) { if (rValue.GetSubValueCount()==1) { rValue.AddSubValue( shaderstr, "TXT" ); rValue.AddSubValue( shaderdest, "TXT" ); rValue.AddSubValue( FloatToStr( alphaval ), "FUNCTION" ); } else if (rValue.GetSubValueCount()==3) { rValue.GetSubValue(1).SetText( shaderstr ); rValue.GetSubValue(2).SetText( shaderdest ); //we have a shader: put some alpha in it rValue.AddSubValue( FloatToStr( alphaval ), "FUNCTION" ); } else if (rValue.GetSubValueCount()==4) { rValue.GetSubValue(1).SetText( shaderstr ); rValue.GetSubValue(2).SetText( shaderdest ); rValue.GetSubValue(3).SetText( FloatToStr( alphaval ) ); rValue.GetSubValue(3).SetType( MO_VALUE_FUNCTION ); } } else { //Eliminate the SubValues after the first one: we do no longer need them rValue.RemoveSubValues(true); } SetValue( m_ValueDescriptor ); }
bool set_chanel_freq_rate (uint8_t channel, uint8_t band,uint8_t bitrate){ printf("Channel amoutn %d, chanel %d",chanelAmount(band, bitrate),channel); if (channel >= chanelAmount(band, bitrate)) { //errstate invalid_chanel_freq_rate; return false; } //Program registers R, P, S and Synthesize the RF PHY_STORAGE.channel=channel; PHY_STORAGE.band=band; PHY_STORAGE.bitrate=bitrate; D_PHY printf("Chanel %d band %d bitrate %d\n", channel, band, bitrate); set_register(R1CNTREG, rValue()); set_register(P1CNTREG, pValue(band, channel, bitrate)); set_register(S1CNTREG, sValue(band, channel, bitrate)); return true; }
Vector& PlaneStress::GetValue( const Variable<Vector>& rThisVariable, Vector& rValue ) { if ( rThisVariable == STRESSES ) { // const unsigned int size = mCurrentStress.size(); // rValue.resize(size, false ); // noalias( rValue ) = mCurrentStress; rValue.resize(6, false); rValue(0) = mCurrentStress(0); rValue(1) = mCurrentStress(1); rValue(2) = 0.0; rValue(3) = mCurrentStress(2); rValue(4) = 0.0; rValue(5) = 0.0; } return rValue; }