Running: ./testmodel.py --libraries=/var/lib/hudson/saved_omc/libraries/.openmodelica/libraries --ompython_omhome=/usr Buildings_master_Buildings.Fluid.HeatExchangers.Validation.WetCoilEffectivenessNTUHeating.conf.json Using package ModelicaServices with version 3.2.3 (/var/lib/hudson/saved_omc/libraries/.openmodelica/libraries/ModelicaServices 3.2.3+maint.om/package.mo) Using package Modelica with version 3.2.3 (/var/lib/hudson/saved_omc/libraries/.openmodelica/libraries/Modelica 3.2.3+maint.om/package.mo) Using package Complex with version 3.2.3 (/var/lib/hudson/saved_omc/libraries/.openmodelica/libraries/Complex 3.2.3+maint.om/package.mo) Using package Buildings with version 9.0.0 (/var/lib/hudson/saved_omc/libraries/.openmodelica/libraries/Buildings 9.0.0-master/package.mo) Running command: translateModel(Buildings.Fluid.HeatExchangers.Validation.WetCoilEffectivenessNTUHeating,tolerance=1e-06,outputFormat="empty",numberOfIntervals=5000,variableFilter="",fileNamePrefix="Buildings_master_Buildings.Fluid.HeatExchangers.Validation.WetCoilEffectivenessNTUHeating") Notification: Performance of loadFile(/var/lib/hudson/saved_omc/libraries/.openmodelica/libraries/Buildings 9.0.0-master/package.mo): time 4.971/4.971, allocations: 0.5623 GB / 0.5775 GB, free: 3.324 MB / 474.7 MB Notification: Performance of loadFile(/var/lib/hudson/saved_omc/libraries/.openmodelica/libraries/Complex 3.2.3+maint.om/package.mo): time 0.002455/0.002455, allocations: 365.6 kB / 0.6446 GB, free: 185.6 MB / 474.7 MB Notification: Performance of loadFile(/var/lib/hudson/saved_omc/libraries/.openmodelica/libraries/Modelica 3.2.3+maint.om/package.mo): time 4.254/4.254, allocations: 410.7 MB / 1.113 GB, free: 5.883 MB / 0.6042 GB Notification: Performance of loadFile(/var/lib/hudson/saved_omc/libraries/.openmodelica/libraries/ModelicaServices 3.2.3+maint.om/package.mo): time 0.001875/0.001875, allocations: 185.4 kB / 1.226 GB, free: 6.129 MB / 0.7136 GB Notification: Performance of FrontEnd - loaded program: time 0.0005014/0.0005015, allocations: 20.2 kB / 1.349 GB, free: 8.27 MB / 0.8386 GB Notification: Performance of FrontEnd - Absyn->SCode: time 0.7433/0.7438, allocations: 115.3 MB / 1.461 GB, free: 284.3 MB / 0.8542 GB Notification: Performance of FrontEnd - scodeFlatten: time 7.702/8.446, allocations: 2.472 GB / 3.933 GB, free: 283.1 MB / 0.9636 GB Notification: Performance of FrontEnd - mkProgramGraph: time 0.0003465/8.446, allocations: 102.7 kB / 3.933 GB, free: 283.1 MB / 0.9636 GB Notification: Performance of FrontEnd - DAE generated: time 66.85/75.3, allocations: 11.8 GB / 15.74 GB, free: 13.91 MB / 1.214 GB Notification: Performance of FrontEnd: time 2.705e-06/75.3, allocations: 0 / 15.74 GB, free: 13.91 MB / 1.214 GB Notification: Performance of Transformations before backend: time 0.01102/75.31, allocations: 0.8824 MB / 15.74 GB, free: 13.04 MB / 1.214 GB Notification: Model statistics after passing the front-end and creating the data structures used by the back-end: * Number of equations: 7129 * Number of variables: 7129 Notification: Performance of Generate backend data structure: time 2.621/77.93, allocations: 40 MB / 15.78 GB, free: 43.67 MB / 1.214 GB Notification: Performance of prepare preOptimizeDAE: time 4.706e-05/77.93, allocations: 13.25 kB / 15.78 GB, free: 43.67 MB / 1.214 GB Notification: Performance of preOpt normalInlineFunction (simulation): time 0.1402/78.07, allocations: 10.41 MB / 15.79 GB, free: 41.49 MB / 1.214 GB Notification: Performance of preOpt evaluateParameters (simulation): time 0.2774/78.34, allocations: 47.21 MB / 15.83 GB, free: 36.79 MB / 1.214 GB Notification: Performance of preOpt simplifyIfEquations (simulation): time 0.006597/78.35, allocations: 2.376 MB / 15.83 GB, free: 36.7 MB / 1.214 GB Notification: Performance of preOpt expandDerOperator (simulation): time 0.01717/78.37, allocations: 2.826 MB / 15.84 GB, free: 36.67 MB / 1.214 GB Notification: Performance of preOpt clockPartitioning (simulation): time 0.1741/78.54, allocations: 41.58 MB / 15.88 GB, free: 33.87 MB / 1.214 GB Notification: Performance of preOpt findStateOrder (simulation): time 0.002518/78.55, allocations: 83.38 kB / 15.88 GB, free: 33.85 MB / 1.214 GB Notification: Performance of preOpt replaceEdgeChange (simulation): time 0.01464/78.56, allocations: 1.139 MB / 15.88 GB, free: 33.85 MB / 1.214 GB Notification: Performance of preOpt inlineArrayEqn (simulation): time 0.00217/78.56, allocations: 1.297 MB / 15.88 GB, free: 33.8 MB / 1.214 GB Notification: Performance of preOpt removeEqualRHS (simulation): time 0.1449/78.71, allocations: 37.21 MB / 15.92 GB, free: 33.58 MB / 1.214 GB Warning: The model contains alias variables with redundant start and/or conflicting nominal values. It is recommended to resolve the conflicts, because otherwise the system could be hard to solve. To print the conflicting alias sets and the chosen candidates please use -d=aliasConflicts. Notification: Performance of preOpt removeSimpleEquations (simulation): time 0.4769/79.18, allocations: 187.4 MB / 16.1 GB, free: 12.71 MB / 1.276 GB Notification: Performance of preOpt comSubExp (simulation): time 0.06816/79.25, allocations: 25.04 MB / 16.12 GB, free: 0.6562 MB / 1.276 GB Notification: Performance of preOpt resolveLoops (simulation): time 0.06112/79.31, allocations: 17.39 MB / 16.14 GB, free: 13.77 MB / 1.292 GB Notification: Performance of preOpt evalFunc (simulation): time 0.2214/79.54, allocations: 53.33 MB / 16.19 GB, free: 5.996 MB / 1.307 GB Notification: Performance of preOpt encapsulateWhenConditions (simulation): time 0.0004038/79.54, allocations: 261.5 kB / 16.19 GB, free: 5.816 MB / 1.307 GB Notification: Performance of pre-optimization done (n=1494): time 1.88e-05/79.54, allocations: 0 / 16.19 GB, free: 5.816 MB / 1.307 GB Notification: Performance of matching and sorting (n=1496): time 2.746/82.28, allocations: 57.19 MB / 16.25 GB, free: 166.3 MB / 1.323 GB Notification: Performance of inlineWhenForInitialization (initialization): time 0.0001735/82.28, allocations: 202.6 kB / 16.25 GB, free: 166.3 MB / 1.323 GB Notification: Performance of selectInitializationVariablesDAE (initialization): time 0.1197/82.4, allocations: 35.07 MB / 16.28 GB, free: 164.8 MB / 1.323 GB Notification: Performance of collectPreVariables (initialization): time 0.006961/82.41, allocations: 385.4 kB / 16.28 GB, free: 164.8 MB / 1.323 GB Notification: Performance of collectInitialEqns (initialization): time 0.03541/82.44, allocations: 17.48 MB / 16.3 GB, free: 160.6 MB / 1.323 GB Notification: Performance of collectInitialBindings (initialization): time 0.01268/82.46, allocations: 5.282 MB / 16.31 GB, free: 157.3 MB / 1.323 GB Notification: Performance of simplifyInitialFunctions (initialization): time 0.005733/82.46, allocations: 372.4 kB / 16.31 GB, free: 157.3 MB / 1.323 GB Notification: Performance of setup shared object (initialization): time 0.002819/82.47, allocations: 1.076 MB / 16.31 GB, free: 156.9 MB / 1.323 GB Notification: Performance of preBalanceInitialSystem (initialization): time 0.03845/82.5, allocations: 10.63 MB / 16.32 GB, free: 156.9 MB / 1.323 GB Notification: Performance of partitionIndependentBlocks (initialization): time 0.04825/82.55, allocations: 17.15 MB / 16.33 GB, free: 150.2 MB / 1.323 GB Warning: It was not possible to determine if the initialization problem is consistent, because of not evaluable parameters/start values during compile time: hexDis.ele[1].vol2.dynBal.medium.p = hexDis.ele[1].vol2.dynBal.p_start (sinAir.p = hexDis.ele[1].vol2.dynBal.p_start) Notification: Performance of analyzeInitialSystem (initialization): time 0.3256/82.88, allocations: 46.13 MB / 16.38 GB, free: 149.7 MB / 1.323 GB Notification: Performance of solveInitialSystemEqSystem (initialization): time 0.0003845/82.88, allocations: 37.03 kB / 16.38 GB, free: 149.7 MB / 1.323 GB Notification: Performance of matching and sorting (n=2388) (initialization): time 0.1378/83.02, allocations: 30.24 MB / 16.41 GB, free: 147.8 MB / 1.323 GB Notification: Performance of prepare postOptimizeDAE: time 0.0001505/83.02, allocations: 60.22 kB / 16.41 GB, free: 147.8 MB / 1.323 GB Notification: Performance of postOpt simplifyComplexFunction (initialization): time 0.000314/83.02, allocations: 129.1 kB / 16.41 GB, free: 147.8 MB / 1.323 GB Notification: Performance of postOpt tearingSystem (initialization): time 0.003236/83.02, allocations: 0.6308 MB / 16.41 GB, free: 147.7 MB / 1.323 GB Notification: Performance of postOpt solveSimpleEquations (initialization): time 0.04466/83.06, allocations: 4.966 MB / 16.41 GB, free: 147.7 MB / 1.323 GB Notification: Performance of postOpt calculateStrongComponentJacobians (initialization): time 0.005259/83.07, allocations: 3.677 MB / 16.42 GB, free: 144.8 MB / 1.323 GB Notification: Performance of postOpt simplifyAllExpressions (initialization): time 0.0732/83.14, allocations: 3.754 MB / 16.42 GB, free: 144.5 MB / 1.323 GB Notification: Performance of postOpt collapseArrayExpressions (initialization): time 0.00652/83.15, allocations: 0.7786 MB / 16.42 GB, free: 144.5 MB / 1.323 GB Warning: The initial conditions are over specified. The following 1 initial equations are redundant, so they are removed from the initialization sytem: hexDis.ele[1].vol2.dynBal.medium.p = hexDis.ele[1].vol2.dynBal.p_start. Notification: Model statistics after passing the back-end for initialization: * Number of independent subsystems: 594 * Number of states: 0 () * Number of discrete variables: 6 (hexWetNTU_TX.flowRegime_nominal,hexDryNTU_T.flowRegime,hexWetNTU_TX.flowRegime,hexDryNTU_T.flowRegime_nominal,hexWetNTU_TX.UAFroRated.isFulDry,hexWetNTU_TX.UAFroRated.isFulWet) * Number of discrete states: 0 () * Number of clocked states: 0 () * Top-level inputs: 0 Notification: Strong component statistics for initialization (2376): * Single equations (assignments): 2372 * Array equations: 0 * Algorithm blocks: 0 * Record equations: 0 * When equations: 0 * If-equations: 0 * Equation systems (linear and non-linear blocks): 1 * Torn equation systems: 3 * Mixed (continuous/discrete) equation systems: 0 Notification: Equation system details: * Constant Jacobian: 0 * Linear Jacobian (size,density): 0 * Non-linear Jacobian: 1 {1} * Without analytic Jacobian: 0 Notification: Torn system details for strict tearing set: * Linear torn systems: 0 * Non-linear torn systems: 3 {1 4,1 2,5 2} Notification: Performance of prepare postOptimizeDAE: time 0.04777/83.2, allocations: 14.11 MB / 16.44 GB, free: 144.3 MB / 1.323 GB Notification: Performance of postOpt lateInlineFunction (simulation): time 0.0169/83.21, allocations: 3.086 MB / 16.44 GB, free: 142.8 MB / 1.323 GB Notification: Performance of postOpt wrapFunctionCalls (simulation): time 0.1024/83.32, allocations: 23.89 MB / 16.46 GB, free: 142.1 MB / 1.323 GB Notification: Performance of postOpt inlineArrayEqn (simulation): time 0.0002689/83.32, allocations: 144.1 kB / 16.46 GB, free: 142 MB / 1.323 GB Notification: Performance of postOpt constantLinearSystem (simulation): time 5.653e-05/83.32, allocations: 4.562 kB / 16.46 GB, free: 142 MB / 1.323 GB Notification: Performance of postOpt simplifysemiLinear (simulation): time 0.07248/83.39, allocations: 19.02 MB / 16.48 GB, free: 141.6 MB / 1.323 GB Notification: Performance of postOpt removeSimpleEquations (simulation): time 0.2261/83.62, allocations: 61.88 MB / 16.54 GB, free: 131.2 MB / 1.323 GB Notification: Performance of postOpt simplifyComplexFunction (simulation): time 0.0002244/83.62, allocations: 7.562 kB / 16.54 GB, free: 131.2 MB / 1.323 GB Notification: Performance of postOpt solveSimpleEquations (simulation): time 0.04152/83.66, allocations: 4.264 MB / 16.55 GB, free: 131.1 MB / 1.323 GB Notification: Performance of postOpt tearingSystem (simulation): time 0.002554/83.66, allocations: 382.1 kB / 16.55 GB, free: 131 MB / 1.323 GB Notification: Performance of postOpt inputDerivativesUsed (simulation): time 0.004829/83.67, allocations: 451.5 kB / 16.55 GB, free: 130.8 MB / 1.323 GB Notification: Performance of postOpt calculateStrongComponentJacobians (simulation): time 0.003745/83.67, allocations: 2.734 MB / 16.55 GB, free: 128.3 MB / 1.323 GB Notification: Performance of postOpt calculateStateSetsJacobians (simulation): time 1.538e-05/83.67, allocations: 19.78 kB / 16.55 GB, free: 128.3 MB / 1.323 GB Notification: Performance of postOpt symbolicJacobian (simulation): time 0.1228/83.79, allocations: 37.59 MB / 16.59 GB, free: 113.1 MB / 1.323 GB Notification: Performance of postOpt removeConstants (simulation): time 0.03552/83.83, allocations: 7.229 MB / 16.59 GB, free: 109.2 MB / 1.323 GB Notification: Performance of postOpt simplifyTimeIndepFuncCalls (simulation): time 0.01964/83.85, allocations: 381.3 kB / 16.59 GB, free: 109 MB / 1.323 GB Notification: Performance of postOpt simplifyAllExpressions (simulation): time 0.06683/83.91, allocations: 3.074 MB / 16.6 GB, free: 108.5 MB / 1.323 GB Notification: Performance of postOpt findZeroCrossings (simulation): time 0.005874/83.92, allocations: 0.8431 MB / 16.6 GB, free: 108.4 MB / 1.323 GB Notification: Performance of postOpt collapseArrayExpressions (simulation): time 0.006568/83.93, allocations: 0.6329 MB / 16.6 GB, free: 108.3 MB / 1.323 GB Notification: Performance of sorting global known variables: time 0.09946/84.03, allocations: 26.96 MB / 16.62 GB, free: 94.44 MB / 1.323 GB Notification: Performance of sort global known variables: time 6.42e-07/84.03, allocations: 0 / 16.62 GB, free: 94.44 MB / 1.323 GB Notification: Performance of remove unused functions: time 0.0559/84.08, allocations: 9.657 MB / 16.63 GB, free: 84.89 MB / 1.323 GB Notification: Model statistics after passing the back-end for simulation: * Number of independent subsystems: 39 * Number of states: 130 (relHumIn.phi,TDryBulIn.T,senMasFraIn.X,senMasFraOut.X,TDryBulOut.T,hexDis.ele[1].vol1.dynBal.U,hexDis.ele[1].vol2.dynBal.U,hexDis.ele[1].vol2.dynBal.mXi[1],hexDis.ele[1].mas.T,hexDis.ele[2].vol1.dynBal.U,hexDis.ele[2].vol2.dynBal.U,hexDis.ele[2].vol2.dynBal.mXi[1],hexDis.ele[2].mas.T,hexDis.ele[3].vol1.dynBal.U,hexDis.ele[3].vol2.dynBal.U,hexDis.ele[3].vol2.dynBal.mXi[1],hexDis.ele[3].mas.T,hexDis.ele[4].vol1.dynBal.U,hexDis.ele[4].vol2.dynBal.U,hexDis.ele[4].vol2.dynBal.mXi[1],hexDis.ele[4].mas.T,hexDis.ele[5].vol1.dynBal.U,hexDis.ele[5].vol2.dynBal.U,hexDis.ele[5].vol2.dynBal.mXi[1],hexDis.ele[5].mas.T,hexDis.ele[6].vol1.dynBal.U,hexDis.ele[6].vol2.dynBal.U,hexDis.ele[6].vol2.dynBal.mXi[1],hexDis.ele[6].mas.T,hexDis.ele[7].vol1.dynBal.U,hexDis.ele[7].vol2.dynBal.U,hexDis.ele[7].vol2.dynBal.mXi[1],hexDis.ele[7].mas.T,hexDis.ele[8].vol1.dynBal.U,hexDis.ele[8].vol2.dynBal.U,hexDis.ele[8].vol2.dynBal.mXi[1],hexDis.ele[8].mas.T,hexDis.ele[9].vol1.dynBal.U,hexDis.ele[9].vol2.dynBal.U,hexDis.ele[9].vol2.dynBal.mXi[1],hexDis.ele[9].mas.T,hexDis.ele[10].vol1.dynBal.U,hexDis.ele[10].vol2.dynBal.U,hexDis.ele[10].vol2.dynBal.mXi[1],hexDis.ele[10].mas.T,hexDis.ele[11].vol1.dynBal.U,hexDis.ele[11].vol2.dynBal.U,hexDis.ele[11].vol2.dynBal.mXi[1],hexDis.ele[11].mas.T,hexDis.ele[12].vol1.dynBal.U,hexDis.ele[12].vol2.dynBal.U,hexDis.ele[12].vol2.dynBal.mXi[1],hexDis.ele[12].mas.T,hexDis.ele[13].vol1.dynBal.U,hexDis.ele[13].vol2.dynBal.U,hexDis.ele[13].vol2.dynBal.mXi[1],hexDis.ele[13].mas.T,hexDis.ele[14].vol1.dynBal.U,hexDis.ele[14].vol2.dynBal.U,hexDis.ele[14].vol2.dynBal.mXi[1],hexDis.ele[14].mas.T,hexDis.ele[15].vol1.dynBal.U,hexDis.ele[15].vol2.dynBal.U,hexDis.ele[15].vol2.dynBal.mXi[1],hexDis.ele[15].mas.T,hexDis.ele[16].vol1.dynBal.U,hexDis.ele[16].vol2.dynBal.U,hexDis.ele[16].vol2.dynBal.mXi[1],hexDis.ele[16].mas.T,hexDis.ele[17].vol1.dynBal.U,hexDis.ele[17].vol2.dynBal.U,hexDis.ele[17].vol2.dynBal.mXi[1],hexDis.ele[17].mas.T,hexDis.ele[18].vol1.dynBal.U,hexDis.ele[18].vol2.dynBal.U,hexDis.ele[18].vol2.dynBal.mXi[1],hexDis.ele[18].mas.T,hexDis.ele[19].vol1.dynBal.U,hexDis.ele[19].vol2.dynBal.U,hexDis.ele[19].vol2.dynBal.mXi[1],hexDis.ele[19].mas.T,hexDis.ele[20].vol1.dynBal.U,hexDis.ele[20].vol2.dynBal.U,hexDis.ele[20].vol2.dynBal.mXi[1],hexDis.ele[20].mas.T,hexDis.ele[21].vol1.dynBal.U,hexDis.ele[21].vol2.dynBal.U,hexDis.ele[21].vol2.dynBal.mXi[1],hexDis.ele[21].mas.T,hexDis.ele[22].vol1.dynBal.U,hexDis.ele[22].vol2.dynBal.U,hexDis.ele[22].vol2.dynBal.mXi[1],hexDis.ele[22].mas.T,hexDis.ele[23].vol1.dynBal.U,hexDis.ele[23].vol2.dynBal.U,hexDis.ele[23].vol2.dynBal.mXi[1],hexDis.ele[23].mas.T,hexDis.ele[24].vol1.dynBal.U,hexDis.ele[24].vol2.dynBal.U,hexDis.ele[24].vol2.dynBal.mXi[1],hexDis.ele[24].mas.T,hexDis.ele[25].vol1.dynBal.U,hexDis.ele[25].vol2.dynBal.U,hexDis.ele[25].vol2.dynBal.mXi[1],hexDis.ele[25].mas.T,hexDis.ele[26].vol1.dynBal.U,hexDis.ele[26].vol2.dynBal.U,hexDis.ele[26].vol2.dynBal.mXi[1],hexDis.ele[26].mas.T,hexDis.ele[27].vol1.dynBal.U,hexDis.ele[27].vol2.dynBal.U,hexDis.ele[27].vol2.dynBal.mXi[1],hexDis.ele[27].mas.T,hexDis.ele[28].vol1.dynBal.U,hexDis.ele[28].vol2.dynBal.U,hexDis.ele[28].vol2.dynBal.mXi[1],hexDis.ele[28].mas.T,hexDis.ele[29].vol1.dynBal.U,hexDis.ele[29].vol2.dynBal.U,hexDis.ele[29].vol2.dynBal.mXi[1],hexDis.ele[29].mas.T,hexDis.ele[30].vol1.dynBal.U,hexDis.ele[30].vol2.dynBal.U,hexDis.ele[30].vol2.dynBal.mXi[1],hexDis.ele[30].mas.T,senMasFraOut1.X,TDryBulOut1.T,relHumOut_eps.phi,relHumOut_dis.phi,hexWetNTU_TX.dryWetCalcs.fullyWet.TWatOutEst) * Number of discrete variables: 2 (hexDryNTU_T.flowRegime,hexWetNTU_TX.flowRegime) * Number of discrete states: 0 () * Number of clocked states: 0 () * Top-level inputs: 0 Notification: Strong component statistics for simulation (1502): * Single equations (assignments): 1494 * Array equations: 0 * Algorithm blocks: 0 * Record equations: 5 * When equations: 0 * If-equations: 0 * Equation systems (linear and non-linear blocks): 0 * Torn equation systems: 3 * Mixed (continuous/discrete) equation systems: 0 Notification: Torn system details for strict tearing set: * Linear torn systems: 0 * Non-linear torn systems: 3 {1 4,1 1,1 2} Notification: Performance of Backend phase and start with SimCode phase: time 0.02109/84.1, allocations: 8.724 MB / 16.64 GB, free: 77.39 MB / 1.323 GB Notification: Performance of simCode: created initialization part: time 0.08586/84.19, allocations: 23.59 MB / 16.67 GB, free: 57.79 MB / 1.323 GB Notification: Performance of simCode: created event and clocks part: time 4.55e-05/84.19, allocations: 26.22 kB / 16.67 GB, free: 57.76 MB / 1.323 GB Notification: Performance of simCode: created simulation system equations: time 0.04682/84.24, allocations: 10.53 MB / 16.68 GB, free: 49.04 MB / 1.323 GB Notification: Performance of simCode: created of all other equations (e.g. parameter, nominal, assert, etc): time 0.2642/84.5, allocations: 24.92 MB / 16.7 GB, free: 31.66 MB / 1.323 GB Notification: Performance of simCode: created linear, non-linear and system jacobian parts: time 1.535/86.04, allocations: 95.05 MB / 16.79 GB, free: 114.1 MB / 1.323 GB Notification: Performance of simCode: some other stuff during SimCode phase: time 0.0789/86.11, allocations: 23.83 MB / 16.82 GB, free: 112.2 MB / 1.323 GB Notification: Performance of simCode: alias equations: time 0.1128/86.23, allocations: 16.54 MB / 16.83 GB, free: 109.6 MB / 1.323 GB Notification: Performance of simCode: all other stuff during SimCode phase: time 0.02215/86.25, allocations: 2.398 MB / 16.83 GB, free: 109.6 MB / 1.323 GB Notification: Performance of SimCode: time 2.344e-06/86.25, allocations: 4 kB / 16.83 GB, free: 109.6 MB / 1.323 GB Notification: Performance of Templates: time 3.335/89.58, allocations: 0.7705 GB / 17.61 GB, free: 22.15 MB / 1.354 GB