收藏 分销(赏)

flow3d官方培训教程中的实例中文说明.pdf

上传人:精**** 文档编号:2089543 上传时间:2024-05-15 格式:PDF 页数:10 大小:173.44KB
下载 相关 举报
flow3d官方培训教程中的实例中文说明.pdf_第1页
第1页 / 共10页
flow3d官方培训教程中的实例中文说明.pdf_第2页
第2页 / 共10页
flow3d官方培训教程中的实例中文说明.pdf_第3页
第3页 / 共10页
flow3d官方培训教程中的实例中文说明.pdf_第4页
第4页 / 共10页
flow3d官方培训教程中的实例中文说明.pdf_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、Flow3D 学习3 算例 1 Aerospace TutorialAerospace Tutorial新建一个项目,Model Setup Tab-Meshing&Geometry Tab-Subcomponent Tab-Geometry Files-c:Flow3Dguistl_libtank.stl,Type and Potential使用缺省选项,因为将引入其它形状作为固体,Subcomponent 1 中坐标范围(Min/Max)为:X:5.015.0,Y:5.015.0,Z:0.015.0tank.stl 的单位对 FLOW-3D 来说是未知的,可能是英寸、英尺、毫米等,现在假设

2、模型是 SI(国际单位),那么流体或固体的属性都应该是 SI 的。(这里有些糊涂,FLOW-3D 会使用 STL 文件中的单位么?)模拟的情况为从圆柱形底部入口向球形水箱内充水,计算域应该和此形状范围相近,略大一点但不能紧贴着形状边界。底边界的位置和边界条件类型有关,如果入口处流速已知那么模拟多少入口长度没有关系,因为断面形状是固定的,但是如果特定位置的压力是已知的,那么要把边界放在该位置处因为压力会受入口长度的重力和粘性效应影响而变化。建议计算域要大于最大几何尺寸的 5%,底边界除外,可以小于 5%,这样计算域底部和入口交叉,不会挡住水流,因此计算域定义为X:4.9515.05 Y:4.95

3、15.05 Z:0.0515.05在 Mesh-Cartesian 的 Block 1 中按上面参数修改计算域尺寸,然后在 Block 1上右键选择 Update Mesh 更新显示。Re=Reynold 数=Inertial Force/Viscous Force=UL/Bo=Bond 数=Gravitational Force/Surface Tension Force=gL2/We=Weber 数=Inertial Force/Surface Tension Force=LU2/U 是特征流速,L 是特征长度,g 是重力加速度,是密度,是表面张力系数。这个问题中大约用 100s 充满水,

4、冲水体积 540 立米,入口直径 2m,入口流速为540/(100*12)=1.7m/s,Reynolds 数为Re=1.7*2/(1.0e-6)=3.4e6由于 Reynolds 数远大于 1,因此惯性力比粘性力更重要,即不需要很密的网格考虑粘性力,也不需要指定粘性特性。考虑表面张力影响的系数为Bo=gL2/=9.8m/s2*1000 kg/m3*(2m)2/(0.073kg/s2)=5.4e5We=LU2/=2m*(1.7 m/s)2*1000 kg/m3/(0.073kg/s2)=7.9e4可以看出表面张力也不需要考虑。缺省网格在 X、Z 方向为 10,Y 方向为 1。在 Block 1

5、 上右键选择 Automatic Mesh,通过网格大小或总网格数修改网格。由于入口直径 2m,最少应该有 5 个网格,因此网格大小为 0.4m,选择所有方向均为 0.4 生成网格。当前水箱为固体,在 Geometry 的 Component 1 下面展开 Subcomponent 1,把Subcomponent Type 由 Solid 变为 Complement(什么意思?),网格定义变为正常情况。选择工具栏中的 Favor 图标,在 FAVORize 下选择 using computational mesh,在 view component volume 中选择 Open,单击 Rend

6、er,保存项目显示。用cutting planes 或 mesh slice 可以看到网格内部。(这里是什么作用?为什么第二个例子里没有这步?)选择 Model Setup 中的 Boundaries tab 定义边界条件,选择 Z-min 边界,选择Specified Velocity 按钮然后输入 W-velocity 为 1.7,其它边界条件不变。General tab:设置计算结束时间为 100s,并在 Finish condition 中选择使用Finish time。低速流入时不必考虑气体影响,因此在 Number of fluids 中仅选择一种流体。Interface Trac

7、king 选择 Free surface or sharp interface,如果是气体注入则用 No sharp interface 选项并用 2 种流体让气体扩散。Flow Mode 选择不可压流体。Initial tab:这个模拟中不需要设置初始条件。Physics tab:设置使用的模块,因为是高 Reynolds 数,不需要考虑粘性,所以仅使用 Gravity,Z-direction 中输入-9.8。Viscosity 和 Surface tension模块不必考虑。Fluids tab:仅需要考虑流体密度,在左侧 Density 中的 Fluid 1 的 Density中输入 1

8、000(或者找到 Water at 20 Csi 用 Load Fluid 1 载入)Output tab:Flow-3D 始终输出速度、温度、流体 fraction 等,缺省输出间隔为 1/10 结束时间,暂时取缺省值。Simulate tab:Run Simulation。然后可以观看结果。下面进行热启动计算,关闭入口边界,定义 x 方向的加速度使流体摇晃,在计算域中嵌套一个块体并计算流体摇晃时流体对块体的作用力。转到 Navigator 下,FileAdd Restart Simulation,创建热启动模拟,模拟名称取缺省值,选择 OK。在 General tab 中选择 Restar

9、t 按钮,数据源(flsgrf.*)应该正确,热启动开始时间为 100s,选择 reset time to zero 保证非惯性输入从 0 开始,其它取缺省选项。修改结束时间为 12s。热启动既可以从输入文件中读入新的数据也可以从上次计算结果中读取数据,这些都在刚才的对话框(Restart Options)中设置。热启动时间输出在 hd3msg中,可以在 Restart Options 的 Times 下拉列表中选择,还可以在DiagnosticsSolver Messages 中查看。在 Boundaries tab 中设置 Z-min 边界为 symmetry 边界条件。在 Physics

10、 Tab 中选择 Non-Inertial Reference Frame 按钮,激活非惯性作用,并使用 Tabular Input,输入数据0 5 0.0 9.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.03-5 0.0 9.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.06 5 0.0 9.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.09-5 0.0 9.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.010 0 0.0 9.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.012 0 0.0 9.8

11、0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0在 Meshing and Geometry 中增加 Component 2,选择 Subcomponent-Cylinder并选择 New Component 2,圆柱半径设置为 0.25,Z-low 为 7,Z-high 为 12,单击 transform 按钮在 X 和 Y 方向均平移 10。设置完后 Geometry 列表中多出Component 2 项。(每个 Component 表示具有不同性质的材料,同一 Component下的每个 Subcomponent 都是相同材料的)要计算障碍物上的作用力,创建嵌套的加密网格包

12、含障碍物,这样计算结果更准确,嵌套计算网格范围为:X:9.0 to 11.0 Y:9.0 to 11.0 Z:6.5 to 12.5在 Mesh-Cartesian 上右键选择 Add Mesh Block,输入上面的计算范围。嵌套网格要保持比例在 2:1 以内,因此在 Block 2 上右键选择 Auto mesh,设置所有方向网格大小为 0.2。为保证插值准确,在 Block 1 中增加 Block 2 的边界点,在 Mesh Cartesian 的Block 1 的 X Direction 上右键 Add,增加 9 和 11 两个点,在 Y 方向相同,Z 方向增加 6.5 和 12.5。

13、(这是只增加点,不必重新划分网格?)在 Numerics tab 下选择 Pressure solver options 下的 Convergence controls,缺省 inter-block boundary type coefficient 为 0.25,修改为0。(如果不为 0 是什么含义?)为计算障碍物上的作用力,包括压力和粘性剪切应力(不是没有考虑粘性?),需要手动编辑输入文件,File-Edit simulation 在$grafic namelist 下增加障碍物上的力(这是什么意思?可能需要参考 Input 变量的说明)nwinf=1,xf1(1)=9.4,xf2(1)=

14、10.6,yf1(1)=9.4,yf2(1)=10.6,zf1(1)=6.9,zf2(1)=12.1,修改 Model Setup-Output 中的 Restart Data-time interval 为 0.24,这样每计算 0.24s 输出一次结果,12s 会有 50 次输出。Simulate-Run simulation 开始模拟在 Analyze tab 下选择 flsgrf.aerospace_restart 打开结果文件,作用力输出在 Probe Tab 下,在 Data source 中选择 General History,可以检查障碍物上各方向的作用力,注意这些作用力包括压

15、力和粘性剪应力,在列表中选择 x-force window 1,Render 查看。Flow3D 学习4 算例 2 Casting Tutorial创建新的 workspace,名称为 Casting Example,创建新的 simulation 名称为 casting。导入几个 stl 文件,每个文件都是 Component 1 的 Subcomponent,即材料特性将应用于里面的每个固体。注入口(sprue)先作为固体导入以便观看,然后修改为 complement,这样网格区域内除几何形状存在的区域都变为固体,即对那部分进行取反操作。另外 cad 生成的 stl 文件是毫米单位,这里用

16、 CGS单位,需要缩放 1/10。导入 c:Flow3Dguistl_libsprue2.stl 和 part.stl,都作为 Component 1 的 Subcomponent,把part.stl 的类型改为 Hole。把每个 Subcomponent 的 Global Magnifications 变为0.1。Subcomponent 2 需要平移,X 方向 Translations 为 3,Z 方向 0.5。每次输入后按 Enter 键可以更新显示。增加一个 Box 作为 Hole,参数为 X 4.5-8.5,Y-0.4-0.4,Z-0.4-0.6使用 3 块网格计算,修改计算网格参数

17、#Cells Low HighX:6 -1.5 1.5Y:1 -0.1 0.1Z:30 -3.4 11.6X:21 1.5 12.0Y:1 -0.1 0.1Z:6 -2.4 0.4X:16 2.5 10.5Y:1 -0.1 0.1Z:20 0.4 10.4此时可以把 Subcomponent 1 从 Solid 变为 complement,这样会填充包围它的网格。记住,几何形状和网格块无关,几何形状会自动占据网格块内的空间。为检查网格,进行前处理 SimulatePreprocess Simulation,然后在 Analyze tab 下选择prpgrf.casting,在 2-D Tab

18、中的右下角 Mesh Block 按钮弹出的对话框中选择所有块,Render 后显示可以用于检查的图形。(这里给出了检查的方式)Block 1 顶部注入口边界流速是变化的,不易指定,可以使用定常的 stagnation pressure 表示上面注入溶液高度固定(大溶液池)或者 stagnation pressure 随时间变化,即上面液面高度逐渐降低,最简单的是线性变化。先假设压力为常数,在边界中使用压力 18375.0 并勾选 Stagnation pressure。注入温度需要指定,在 Physics Tab 中选择 Heat Transfer,1st Order,OK,然后重新在刚才边

19、界条件对话框中单击 Thermal Information 按钮,输入 900.0,OK。Flow-3D 会自动设置网格块连接的边界条件为 Mesh Block,也可以自己设置。(哪里设置?)在 General Tab 中设置结束时间为 0.5s,Flow-3D 始终在结束时间到达后停止计算,也可以在Finish condition 中指定填充比例作为结束条件,如果不设置 Fill fraction 而在入口处使用流速边界条件时在注满溶液后求解器可能因为要继续注入溶液而出错退出,这里设置为 1.0 即全部填充并把 Units 改为 CGS 单位。因为空间内开始时没有液体,因此这个例子中也就不存

20、在初始条件。Physics Tab 中需要使用的模块包括:模块名称 理由Viscosity 湍流引起的墙面剪应力 Wall shear force and turbulent mixing,选择牛顿粘性的Renormalized Group(RNG)模型,此模型健壮性、易用性和精度均较好。(紊流模型都推荐这个吗?)其它取缺省值Energy equation(流体中热传导)计算金属中的温度 To compute the temperature in the metalHeat Transfer and Conduction in obstacles 砂模和其中流体的热交换 Heat exchan

21、ge between the sand mold and the fluid and within mold 能量对流有 2 个选项,二阶计算更精确但是更费时,通常在浇铸中使用一阶即可。流体和固体热传导中的无热传导选项用于隔热模拟,后面的 2 个选项表示温度从流体传递给温度恒定的固体,因为浇铸时间很长,砂模温度变化很大,因此这里需要使用 Full Energy Equation 选项求解完全的能量方程。Gravity 重力加速度 Acceleration due to gravity CGS 单位中 Z 向加速度是-980。Solidification 模拟注入过程中的金属凝固 Simulat

22、e metal freezing during the filling 可能没有充满就凝固了,这里激活此部分并取默认值(模拟没有 shrinkage 的情况)。Defect Tracking 记录氧化物相对浓度和缺陷的可能位置 Records the relative concentration oxides and thus the probable location of oxide related defects 此模块计算液态金属暴露在空气中的时间,能表示溶液前锋氧化物含量水平,在氧化物缺陷位置预测时有用。由于氧化物生成速度没有试验确定,因此这里用 1 表示氧化物相对浓度。在 Flui

23、ds tab 中载入 alloy AL 356 in SI 属性并在对话框中选择转化为 CGS 单位。推荐在设置模块后立刻设置材料属性,因为有些模块如 Solidification 和特定的流体特性有关,这样可以保证需要的特性从数据库中载入了。(材料特性是否必须立刻载入,能否设置完所有模块后再载入?)下面在 Meshing&Geometry Tab 中的 Tools 菜单中选择 Solids Database,从列表中选择 Generic Silica Sand at 1000K,载入,此时 thermal conductivity 和 density*specific Heat 等都应该有数

24、值了,然后在左侧 Component 1 的 Initial Conditions 中修改温度为 293。运行,然后载入 flsgrf.casting 看结果。先在 Analyze Tab 右下角的 Mesh Block 中选择所有网格块,否则只会显示一块。Contour 变量用 Temperature,Render 后可以看到结果。由于速度很快,温度高于熔点,因此溶液没有凝固现象。如果结果中有空洞可能由两个原因,一是 Fill Fraction Finish Time 条件只检查空网格,而不是部分空网格引起,因此可能在没有空网格但是有部分空网格时计算结束;二是温度图把流体体积比小于 0.5(

25、液体比例小于 50%)的网格屏蔽了,这个比例可以在 Analyze Tab 左下角的 Advanced 对话框中设置。把等值线变量修改为 Surface Defect Concentration,Render 后可以看出氧化物在金属表面累积情况,可以看出顶部较高,可以设置一个冒口把这部分溶液排出。把计算网格 Y 方向尺度变为-2.02.0,网格大小为 0.5,把模型变为三维情况。计算时间修改为1.0s,边界条件变为随时间变化的情况,线性变化到 0.7s 时 2450,此后压力值保持不变。运行后观看,Iso-Surface 变量设置为 fraction of fluid,表示溶液表面,Color

26、 Variable 用选择的变量覆盖流体的 iso-surface,选择 Temperature,Render。(对这些设置糊涂,哪里有说明?)创建热启动模拟凝固,在 General tab 中选择从 0.81s 开始,并选中 restart time to zero 保证初始的非惯性力从 0 开始(上个例子也是这样,这是什么意思?),其它用缺省选项,结束时间为120s。凝固模拟时假设上部没有流体注入,在 Boundaries Tab 中 Block 1 的 Z-max 边界设置 Fluid Fraction 为 0(应该是 F Fraction)。在 General tab 中修改 Fini

27、sh Condition 为 Solidified Fluid Fraction 允许 FLOW-3D 在模拟结束时间前停止。模拟 120s 要很长时间,凝固与热传导有很大关系,在 Numerics Tab 中缺省是 Explicit 方式求解,需要很小的时间步,用 Implicit 方式可以避免这个问题(Explicit/implicit solver options 中的Heat transfer 选项)。假设在凝固过程中 z 向流速很小,在 Fluid flow solver options 中选择Use Zero Velocity Field 可以大大减少计算时间。并在输出选项中选择

28、Solid fraction。开始模拟。计算完成后在 Analyze Tab 中载入 flsgrf.dat,选择 2-D Tab,选择 3 个网格块和 XZ 平面,在 Data Source 中选择 Selected,并用 Solid Fraction 做等值线变量,可以看出凝固过程是从右侧开始的,然后向上凝固。还有其它变量可以检查浇铸过程,在 Data Source 中选择 Solidification,可用的等值线变量包括Solidification Time 网格中温度降低到凝固温度下Solidus Velocity(VEL)表示 solidus front 运动的速度,-1 表示没有数

29、据,如果两个 solidus front 碰撞时 FLOW-3D 无法确定速度或者开始凝固时发生。Cooling Rate(SCR)在凝固温度时单位时间内能量的变化Local Solidification Time(LST)网格在液态和固态之间变化使用的时间还有一些其它变量,因不会用到,略过。Flow3D 学习5 算例 3 Hydraulics TutorialHydraulics Tutorial这个问题中流体从 18cm 高的坝上流下,根据自由落体运动,水流流速为Velocity=sqrt(2*980*18)=187.8 cm/sReynold 数为 Re=30cm x 187.8cm/s

30、2/10-2cm2/s=5.6 x 105因此粘性应力可以忽略,不需要用很密的网格描述墙面粘性剪切应力,但是由于存在紊流,流体内会存在粘性剪切应力,因此需要在模拟中使用粘性模型。Bond 数和 Weber 数为Bo=980cm/s2*1 gm/cc*(30cm)2/(73gm/s2)=1.2 x 104We=30cm*(187.8 cm/s)2*1gm/cc/(73gm/s2)=1.45 x 104即不需要考虑表面张力。根据问题的性质,采用对称方式模拟。创建 workspace 和 simulation,在 General 中设置结束时间为 1.0s,单位CGS,在下面 Notes 中的第一行

31、是标题,将出现在所有的输出文件和图形中,这里写为“Flow over a Weir”。在 Meshing&Geometry tab 中导入 c:flow3dguistl_libweir1.stl,按缺省设置。下面增加上游水库的底面,单击工具栏 Box 图标,为定义不同的属性(如糙率参数),选择 New Component 2,X-101,Y-2020,Z 0.08。选取计算域时上游不能太小,否则会因为突然出现的加速度引起计算不稳定,下游如果计算范围小会使边界条件影响流体流态,但是计算范围太大会使计算时间增加。这个例子先用一块网格计算,然后嵌套加密的网格,网格定义可以用手工或图形方式。设置计算网

32、格范围 X-1020,Y 010,Z 018,各方向网格分别为30、10、18,为在对称处加密,在 Y 方向的 Pt(1)选项中设置网格大小为 0.5。Boundaries Tab:这个问题中 X 两端边界被设置为 hydrostatic pressure 边界条件,如果边界的“fluid height”比计算域内高则会向计算域内流入,否则会流出。在 X Min 边界上选择 Specified Pressure 边界条件同时选择Stagnation Pressure,并设置 Fluid Height 为 15.5;在 X Max 中同样使用Specified Pressure 和择 Stagn

33、ation Pressure,并设置 Fluid Height 为1.7,设置 F fraction 为 0.0,这样可以防止流体从这个边界进入计算域,但是允许流体自由流出。(开边界?)Initial tab:由于在 X 两端使用了静水压力边界,必须激活静水压力选项才能保证边界条件正确设置,在 Initial pressure field 中选择 Hydrostatic pressure in Z-direction,这将把网格中所有流体初始化为静水压力,同时指定垂向压力边界条件为静水压力边界条件。然后创建网格中的初始流体,单击Add fluid,在对话框右下方的 Fluid options

34、中选择 Add fluid,X High 输入0,Z High 输入 15(其它不必输入?默认为计算网格极值?)(上游,边界条件水位 15.5),单击 OK,然后再次增加一个流体区域 X Low 为 1,Z High 为1.7(下游,边界条件水位 1.7),这 2 个流体区域在网格中增加 0 时刻的初始流体。Physics tab:选择 Viscosity and turbulence 模块,使用 Newtonian viscosity,在 Wall shear boundary conditions 中使用 No-slip or partial slip 条件(墙面剪切应力模型,不允许流体沿

35、墙面滑移),单击 OK。在Gravity 中 Z 向为-980(cm/s2)。Fluids tab:需要流体的密度和粘性,载入 water at 20。如果不在选择模型后立刻设置流体属性,在关闭 simulation 时没有指定属性的模块会关闭。Output tab:在 restart data 下的 Time interval 中输入 0.05,即每隔 0.05s输出一次。Numerics tab:不需要修改。Simulate-Preprocess Simulationion,前处理,在 Analyze tab 中打开prpgrf.dat,在 3D tab 中的 Component Iso-

36、surface Overlay 中选择 Solid volume,Render,检查。模拟后打开 flsgrf.dat 观看。增加初始条件:下面在出口前端增加一块流体并赋予 x 方向的初始速度好让流态尽快稳定。Add simulation copy,在初始条件中增加一块流体,X 0.02.5,Y-5.05.0,Z 13.015.0,OK,在 Fluid initial state 中设置U-velocity 为 20。检查,模拟,观看。增加嵌套网格:复制 simulation,在 Meshing&Geometry tab 中选择工具栏上的Create Mesh(先要使用 2D 投影方式),用鼠

37、标创建嵌套网格区域,然后在左侧修改网格范围-3x3,0y5,and 8zPreprocessor Report 中找到每块网格的边界条件。excessive convection failures-calculation terminated双流体模拟:复制 simulation,General tab 中选择 Two Fluids,尽管空气是可压缩的,但是由于 Mach 数很低,可以看作是不可压缩流体。Fluids tab 中载入 fluid 2 的属性为 Air at 15 degrees,单击 Load Fluid 2 载入,展开左侧参数检查。运行,观察。(用上次的结果进行双流体模拟失败

38、?)需要指出,计算结果并不是物理上真实的,主要问题在于每个网格内只计算了一个速度。当两种流体密度差别较大,比如大于 10 倍时,因为同一网格中不同流体的流速差别较大,即同一网格内空气和水的速度有较大差别,这种混合速度计算方法就不精确,后果就是两种流体间的滑移条件没有精确模拟,可能导致流体界面运动模拟不正确。当两种流体的密度差别到一定程度时,双流体模型就不精确(但是对很多 CFD软件来说,这种双流体模型是计算自由表面的唯一方法)。为精确模拟自由表面,FLOW-3D 使用了 true VOF 方法,这种方法可以正确计算流体运动、保持界面清晰且不必计算空(空气)区域。Flow3D 学习2 命令行PE

39、EK 工具程序PREP3D 前处理器HYDR3D 水动力求解器FLSCON 后处理器runall=runpre;runhyd;runpostresall=respre;reshyd;respost命令行方式runpre ext1 ext2 对 prepin.执行前处理,输出文件后缀为,如果不存在则使用。如果二者都不存在则为 inp,为dat。runhyd 运行求解器,为输入和输出的后缀(runpre 输出的结果)。如果没有定义则使用。runpost 后处理,输入和输出后缀为,没有定义使用 dat。Runall 运行前面 3 个脚本。runbatch 运行中定义的一系列模拟,每个模拟的路径在一行

40、上定义,脚本结束后返回到执行路径。=Linux 下的例子为=/home/flow3d/examples/weir/prepin./home/joe/tesprob/prepin.inp./test1/prepin./test2/prepin.inplocal_directory/prepin.inp=end=runpre 和 runpost 运行会自动生成新文件,覆盖老文件,而 runhyd 和 runall必须在执行前删除结果文件。Analyze tab 可以生成需要的图形,有时需要生成的图形没有事先指定或者需要修改现有图形,可以编辑 flsinp.dat 或者修改 prepin.inp 重

41、新运行前处理生成新的 flsinp.dat,用这个新的 flsinp.dat 运行后处理生成新图形。flsinp.dat 在后处理中说明。求解器运行时可以进行后处理随时检查结果,用 runpost 运行后处理,图形可以用 pltfsi 或 flowplot(仅 win)。pltfsi 检查后处理结果 flsplt.*和前处理结果 preplt.*,flowplot 与 pltfsi类似,只是更友好(仅 win)。peek 可以在求解器运行时通过文件 HYdr3D_SIgnAL.dat 与求解器通讯,求解器时间步信息保存在 hd3msg.dat 中,peek 监视此文件,通过选项可以结束求解器、输出特定信息等,如果是热启动需要用 12 选项指定文件名称。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 职业教育

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服